sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 24 oct. 2004 à 16:31
Pour le clignottement Il faudrai ke tu joue avec le DC a mon avis...
Je viens de faire un test dessiner via le dc sur le bureau dessine sur les icônes ce qui est pas très cool ^^
Sinon je sais ke le bureau est une bête fenêtre de type ListView. J'ai deja vu sur ce site un code permettant de changer le fond d'un listview je te conseil de t'y interesser.
Un des plug-in de WinAmp utilise une autre methode. Il met le bureau d'une certaine couleur et remplace ensuite tout les pixel de l'ecran de cette couleur par la couleur du pixel si l'image etait afficher. tu devrai te renseigner sur cette technique (on appelle ça l'overlaying il me semble)...ça peut être fort instructif si tu te lance fais moi signe ;)
Voilà j'espere que ça pourrait t'aider... Bonne chance je suis toujours la si t'as des questions ;)
zavier666
Messages postés266Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention30 avril 20091 24 oct. 2004 à 14:03
A la base, je voulais mettre des videos en fond de bureau, mais je n'arrive pas a en extraire les image en temps réel, alors je me suis rabbatu sur des images, cependant, cela ne resout toujours pas mon prob de clognotement
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 24 oct. 2004 à 12:24
zavier666>>Quel OS possedes-tu ? Jai deja vu fonctionner un gif animé en theme de bureau sous win98.
Et ne prend pas la mouche comme ça, les commentaires ne sont pas vraiment mechant, juste un peu trop synthétiques.
Quant a moi je ne parle pas du code car je ne l'ai pas regarder. Je dis juste pourquoi réinventer la roue. Mais bon si le gif animé ne fonctionne pas sur ton bureau, pourquoi pas.
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 23 oct. 2004 à 15:37
le gif animé fonctionne chez moi...
zavier666
Messages postés266Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention30 avril 20091 23 oct. 2004 à 15:33
Enfin bref, tout cela pour dire que je pensais que ce site était la pour entre autre aider les plus faibles en programmation à s'améliorer en donnant des conseils, je n'ai vu qu'un commentaire constructif sur cette source, le reste, on peut le mettre à la poubelle,
c'est facile de critiquer les choses qui nous semblent évidente!!!!!!!!
Mon but en mettant des sources est de donner des idées, permettre à ceux qui galèrent pour faire un truc de trouver une solution, là je me suis dit que si kelk1 voulait faire une animation en fond de buro, il trouverait une partie de la solution ici!!!!!!!!!!!!!!!!!
zavier666
Messages postés266Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention30 avril 20091 23 oct. 2004 à 15:27
De plus, j'ai essayé de mettre un gif animé en theme de bureau, cela ne marche pas!!!!!
zavier666
Messages postés266Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention30 avril 20091 23 oct. 2004 à 15:26
Il s'agissait d'un premier jet, afin de savoir s'il était possible d'avoir une animation comme papier peint, la question posée était simplement de savoir si quelqu'un savait coment je pourrait faire pour enlever le clignotement!!!!!!!!!!!!!!!!!!!!
J'ai fait cela en speed et comme je l'ai dit en empruntant une portion de code (que je ne comprenait pas totalement )
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 23 oct. 2004 à 14:43
Outre le clignotement, le code est pas très très beau...Ne m'en veux pas je vais essaier d'être constructif.
1) dans changeur_Timer:
i = i + 1
If i 6 Then i 0
met plutôt
i = (i + 1) mod 6
2) dans lancer_Click:
Call changerimage
i = 0
l'inverse ne serai pas plus logique ?
3) Pourquoi utilise tu i comme nom de variable ??? comment appellera tu une variable pour une boucle For si tu dois etendre ton programme ? de plus c'est pas très explicite pour une variable portant sur tout le module de ta form.
4) Les déclaration
Public Declare Function SystemParametersInfoA Lib "user32" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
' API pour le Papier-Peint:
' -------------------------
Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
sont identique !!! sauf que t'as fait un alias pour l'une d'elle
5) dans ton module :
Public X As Long
Public Sub SauveChaine(Hkey As Long, strpath As String, strValue As String, strdata As String)
Dim keyhand As Long
Dim r As Long
X = RegCreateKey(Hkey, strpath, keyhand)
X = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
X = RegCloseKey(keyhand)
End Sub
Pourquoi declare tu X comme membre publique ? pourquoi le declare-tu tout court je dirai meme! la procedure :
Public Sub SauveChaine(Hkey As Long, strpath As String, strValue As String, strdata As String)
SystemParametersInfo SPI_SETDESKWALLPAPER, 0&, App.Path & "\img\Photo" & i & ".bmp", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
End Sub
Pourquoi indente tu 2 fois les 2 premiere ligne et utilise l'instruction Call (Qui est tout à fait facultative mais à le merite d'eclaircir le code) et la 3eme sans indentation et sans le Call.
(
8) Chacun ces goût mais ça fait pas très propre les noms de procedure en minuscule..surtout quand tu melange des procedure avec des majuscule minuscule et puis d'autre tt en minuscule. Idem pour les nom de contrôles. Prefixe les nom par le type de controle. Par exemple pour le bouton "lancer", nomme le "cmdLancer" ou "btnLancer". Idem pour ta form "fondecrananime", "frmFondEcranAnime". C'est beaucoup plus agreable a relire.
)
ça fait pas mal de chose a ameliorer pour un si petit programme...
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 21 oct. 2004 à 17:48
Bof, çà ne mérite quand même pas 1/10.
Il a essayé d'utiliser l'API SystemParametersInfo. C'est déjà pas mal.
Mais c'est sûr que le procédé pour faire clignoter les images n'est pas génial ...
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 20 oct. 2004 à 20:07
bouv > Cool , lol je savais meme pas qu'on pouvais mettre un gif animé comme background :P
En t-k sa bouffe les ressource par exemple :-S
Je m'abstien de noter puisque la source est déja a 1
YoMan64
PhPKoDe.Com
cs_yvesyves
Messages postés561Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention11 octobre 2010 20 oct. 2004 à 16:55
un gifs animés aurait fait l'affaire....
l'ecran "clignote"
tu devrais revoir ta source.
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 19 oct. 2004 à 19:48
j'aimerai bien te donner une note mais moi ca marche pas , l'ecran clignote bien mais y a rien en fond d'ecran(peut etre a cause de ma resolution 1248x1024)
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 19 oct. 2004 à 19:45
Moi j'ai une solution. Désolé de te decevoir mais c'est loin d'etre une premiere mondiale.
Tu défini ton gif animé directement comme papier peint de ton bureau. Et voila, l'animation sera sur ton bureau, pas de clignotement, moins de ressources, c'est parfait et cela fonctionne depuis Win98 (pas sure sur la 1ere edition mais testé sur la 2eme).
24 oct. 2004 à 16:31
Je viens de faire un test dessiner via le dc sur le bureau dessine sur les icônes ce qui est pas très cool ^^
Sinon je sais ke le bureau est une bête fenêtre de type ListView. J'ai deja vu sur ce site un code permettant de changer le fond d'un listview je te conseil de t'y interesser.
Un des plug-in de WinAmp utilise une autre methode. Il met le bureau d'une certaine couleur et remplace ensuite tout les pixel de l'ecran de cette couleur par la couleur du pixel si l'image etait afficher. tu devrai te renseigner sur cette technique (on appelle ça l'overlaying il me semble)...ça peut être fort instructif si tu te lance fais moi signe ;)
Voilà j'espere que ça pourrait t'aider... Bonne chance je suis toujours la si t'as des questions ;)
24 oct. 2004 à 14:03
24 oct. 2004 à 12:24
Et ne prend pas la mouche comme ça, les commentaires ne sont pas vraiment mechant, juste un peu trop synthétiques.
Quant a moi je ne parle pas du code car je ne l'ai pas regarder. Je dis juste pourquoi réinventer la roue. Mais bon si le gif animé ne fonctionne pas sur ton bureau, pourquoi pas.
23 oct. 2004 à 15:37
23 oct. 2004 à 15:33
c'est facile de critiquer les choses qui nous semblent évidente!!!!!!!!
Mon but en mettant des sources est de donner des idées, permettre à ceux qui galèrent pour faire un truc de trouver une solution, là je me suis dit que si kelk1 voulait faire une animation en fond de buro, il trouverait une partie de la solution ici!!!!!!!!!!!!!!!!!
23 oct. 2004 à 15:27
23 oct. 2004 à 15:26
J'ai fait cela en speed et comme je l'ai dit en empruntant une portion de code (que je ne comprenait pas totalement )
23 oct. 2004 à 14:43
1) dans changeur_Timer:
i = i + 1
If i 6 Then i 0
met plutôt
i = (i + 1) mod 6
2) dans lancer_Click:
Call changerimage
i = 0
l'inverse ne serai pas plus logique ?
3) Pourquoi utilise tu i comme nom de variable ??? comment appellera tu une variable pour une boucle For si tu dois etendre ton programme ? de plus c'est pas très explicite pour une variable portant sur tout le module de ta form.
4) Les déclaration
Public Declare Function SystemParametersInfoA Lib "user32" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
' API pour le Papier-Peint:
' -------------------------
Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
sont identique !!! sauf que t'as fait un alias pour l'une d'elle
5) dans ton module :
Public X As Long
Public Sub SauveChaine(Hkey As Long, strpath As String, strValue As String, strdata As String)
Dim keyhand As Long
Dim r As Long
X = RegCreateKey(Hkey, strpath, keyhand)
X = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
X = RegCloseKey(keyhand)
End Sub
Pourquoi declare tu X comme membre publique ? pourquoi le declare-tu tout court je dirai meme! la procedure :
Public Sub SauveChaine(Hkey As Long, strpath As String, strValue As String, strdata As String)
Dim keyhand As Long
Dim r As Long
RegCreateKey(Hkey, strpath, keyhand)
RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
RegCloseKey(keyhand)
End Sub
serait identique...
6) la constante Public Const ERROR_SUCCESS = 0& est inutile...Mais c'est un detail
7) dans
Sub changerimage()
Call SauveChaine(HKEY_CURRENT_USER, "Control Panel\Desktop", "WallpaperStyle", "0")
Call SauveChaine(HKEY_CURRENT_USER, "Control Panel\Desktop", "TileWallpaper", "0")
SystemParametersInfo SPI_SETDESKWALLPAPER, 0&, App.Path & "\img\Photo" & i & ".bmp", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
End Sub
Pourquoi indente tu 2 fois les 2 premiere ligne et utilise l'instruction Call (Qui est tout à fait facultative mais à le merite d'eclaircir le code) et la 3eme sans indentation et sans le Call.
(
8) Chacun ces goût mais ça fait pas très propre les noms de procedure en minuscule..surtout quand tu melange des procedure avec des majuscule minuscule et puis d'autre tt en minuscule. Idem pour les nom de contrôles. Prefixe les nom par le type de controle. Par exemple pour le bouton "lancer", nomme le "cmdLancer" ou "btnLancer". Idem pour ta form "fondecrananime", "frmFondEcranAnime". C'est beaucoup plus agreable a relire.
)
ça fait pas mal de chose a ameliorer pour un si petit programme...
21 oct. 2004 à 17:48
Il a essayé d'utiliser l'API SystemParametersInfo. C'est déjà pas mal.
Mais c'est sûr que le procédé pour faire clignoter les images n'est pas génial ...
20 oct. 2004 à 20:07
En t-k sa bouffe les ressource par exemple :-S
Je m'abstien de noter puisque la source est déja a 1
YoMan64
PhPKoDe.Com
20 oct. 2004 à 16:55
l'ecran "clignote"
tu devrais revoir ta source.
19 oct. 2004 à 19:48
19 oct. 2004 à 19:45
Tu défini ton gif animé directement comme papier peint de ton bureau. Et voila, l'animation sera sur ton bureau, pas de clignotement, moins de ressources, c'est parfait et cela fonctionne depuis Win98 (pas sure sur la 1ere edition mais testé sur la 2eme).
Bonne prog
++