Page 1 sur 1

[R] DllOpen et @SW_Show vraiment utile??

Posté : jeu. 06 mai 2010 19:57
par Drave
Salut a tous et a toute
je me suis poser une question :
Est-il vraiment utile de mettre DllOpen (user32.dll) avant d'utiliser _Ispressed
Ou encore est-il vraiment utile de mettre Guisetstate () avec la macro @SW_SHOW ??

Re: [..] DllOpen et @SW_Show vraiment utile??

Posté : jeu. 06 mai 2010 20:58
par Tlem
Au lieu de poser la question, pourquoi n'essayez-vous pas vos codes sans ces commandes. :roll:

Vous verrez que pour la première question, aucune touche n'est détectée et pour la deuxième, votre GUI ne s'affichera pas !!!

Re: [..] DllOpen et @SW_Show vraiment utile??

Posté : jeu. 06 mai 2010 21:17
par DJSIR
Non. Désolé de te contredire Tlem, mais au niveau du GUISetState(), sans @SW_SHOW sur une GUI ultra-simple et sans paramètres supplémentaires, ça fontionne.
Je pense que @SW_SHOW est réglé par défault.

Cdlt, DJSIR.

Re: [..] DllOpen et @SW_Show vraiment utile??

Posté : jeu. 06 mai 2010 21:21
par GMib
Tous les paramètres de Guisetstate sont optionnels, l'exemple dans l'aide l'utilise d'ailleurs sans paramètre.
le parametre dll de _Ispressed est optionnel aussi.

Pour repondre a la question :

Guisetstate : Je ne voi pas vraiment de raison technique pour mettre @SW_SHOW si ce n'est la lisibilité du code.
_Ispressed : L'utilité de mettre le parametre dll ici est de na pas ouvrir la dll a chaque instruction.
Si par exemple tu as 20 _ispressed dans ton script sans ce parametre, il va ouvrir et fermer la dll 20 fois, d'ou l'interet de faire un dllopen 1 seule fois au debut et le passer en parametre.
bien sur si il n'y a qu'un ou 2 _ispressed dans le script l'interet est limité.

Re: [..] DllOpen et @SW_Show vraiment utile??

Posté : jeu. 06 mai 2010 22:05
par Tlem
En ce qui concerne la commande GUISetState, je n'avais pas vu la question sous l'angle :
Faut-il écrire GUISetState() ou GUISetState(@SW_SHOW) puisque la réponse est écrite en clair dans la documentation :
[optional] @SW_SHOW = Shows a previously hidden window (default)
En fait j'avais compris la question dans le sens :
Faut-il utiliser la commande GUISetState après la création de la GUI.
Donc si j'ai bien mal interprété la question, comme je l'ai dit précédement, la réponse était dans la documentation de la commande et donc cette question n'aurait pas dût être posée. :P


En ce qui concerne la question du _Ispressed, toujours pareil, en lisant la documentation de la commande la réponse y est écrite :
Remarks :
If calling this function repeatidly, should open 'user32.dll' and pass in handle.
Voici le code de la fonction se trouvant dans le fichier Misc.au3 :

Code : Tout sélectionner

Func _IsPressed($sHexKey, $vDLL = 'user32.dll')
    ; $hexKey must be the value of one of the keys.
    ; _Is_Key_Pressed will return 0 if the key is not pressed, 1 if it is.
    Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
    If @error Then Return SetError(@error, @extended, False)
    Return BitAND($a_R[0], 0x8000) <> 0
EndFunc   ;==>_IsPressed
On peut voir que la variable $vDLL correspond à la dll 'user32.dll'.
Même si sur ce coup là, je me suis trompé, encore une fois, cette question n'aurait pas dut être posée à moins de chercher une autre explication.

Re: [..] DllOpen et @SW_Show vraiment utile??

Posté : ven. 07 mai 2010 11:49
par Drave
Ok merci c'est parfait