[R] DllOpen et @SW_Show vraiment utile??

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Drave
Niveau 4
Niveau 4
Messages : 53
Enregistré le : lun. 27 avr. 2009 09:47
Status : Hors ligne

[R] DllOpen et @SW_Show vraiment utile??

#1

Message 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 ??
Modifié en dernier par Drave le ven. 07 mai 2010 11:50, modifié 1 fois.
Un pti clique svp sa fait beaucoup pas de mal !
http://mon-zoo.jeuxcherche.com/myzoo.php?pseudo=drave
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message 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 !!!
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

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

#3

Message 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.
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
GMib
Niveau 4
Niveau 4
Messages : 57
Enregistré le : sam. 23 janv. 2010 12:39
Status : Hors ligne

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

#4

Message 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é.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#5

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Drave
Niveau 4
Niveau 4
Messages : 53
Enregistré le : lun. 27 avr. 2009 09:47
Status : Hors ligne

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

#6

Message par Drave »

Ok merci c'est parfait
Un pti clique svp sa fait beaucoup pas de mal !
http://mon-zoo.jeuxcherche.com/myzoo.php?pseudo=drave
Répondre