AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 Question multiple[Résolu]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Question multiple[Résolu]   2007-01-26, 17:10

Quel difference y a t'il entre les deux versions (la 3.2.2.0 et la 3.2.1.4(beta)) ?
y a un fichier supplémentaire dans la version beta (Toggle AU3 Beta.au3) et niveau installation y a une difference de 40 mo, çà fait un peu boucoup.


Après avoir lu une partie de l'aide (avec boucoup de difficulté), y a certaine fonction comme le SetMenuColor qui permet d'attribuer une couleur sur un menu et le sous-menu, je me demandais comment on procéder pour que cette fonctionne marche sur le traymenu et ceux de l'interface gui. j'ai bien essayé le bidouillage c'est pas bon pour débuter a mon avis.


Dans la partie sound il font appel a la dll mci elle li pas le format mp3?


Comme je débute dans la programmation et le reste j'en parle pas , les fonction du logiciel autoitscript se limite a quoi exactement, car j'ai pas trop bien suivit pour mettre d'autre langage comme lua, ou faire une dll, ou meme la partie #compiler pas évident.


fini

*repart lire l'aide*
car global const et global et dim et tout, jamais vu, faudra apprendre le jargon et api truc.


Dernière édition par le 2007-02-03, 23:42, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Michel Claveau
Membre avancé


Nombre de messages : 61
Date d'inscription : 24/10/2006

MessageSujet: Re: Question multiple[Résolu]   2007-01-26, 20:56

Bonsoir !

Tous les détails des nouveautés des différentes bêtas sont là :
[url=http://www.autoitscript.com/forum/index.php?showtopic=19717]http://www.autoitscript.com/forum/index.php?showtopic=19717[/url]

Sinon, entre une version "normale" et une "bêta", il faut savoir que la bêta contient du code de déboguage, ce qui entraîne une taille légèrement supérieure, pour les versions compilées, ainsi qu'une vitesse d'exécution un peu moindre.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: Question multiple[Résolu]   2007-01-26, 21:12

[quote]Dans la partie sound il font appel a la dll mci elle li pas le format mp3?[/quote]

Meuh si ! Pour un debut je te conseil de ne pas regarder le fonctionnement des fonctions. Regarde plutot comment elles s'utlisent !

Pour la limite tous ce que j'ai voulu faire je l'ai fait. En rajoutant les "Include" (Ensemble de nouvelles fonctions ) que tu peux trouver sur le site officiel et si tu programmes toi meme de nouvelle fonction les limites sont repoussés.


Pour le jargon sa viendra...Global $variable sert à annoncer que cette variable gardera la meme valeur dans tous le programme . Dim $variable ne gardera la valeur que dans une fonction.

[u]Exemple:[/u]
[code]Global $var=0
test()
Msgbox(0,"valeur ? 2 ",$var)

func test()
Local $var=1
Msgbox(0,"valeur ?",$var)
endfunc[/code]

Je declare $var =0 pour tout mon programme et $var =1 pour ma fonction.

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Michel Claveau
Membre avancé


Nombre de messages : 61
Date d'inscription : 24/10/2006

MessageSujet: Re: Question multiple[Résolu]   2007-01-26, 21:15

Re !

Pour apprendre un autre langage, Lua est intéressant, mais, AMHA, trop inspiré du C. Et puis, il n'est pas fait pour réaliser des DLL, mais plutôt pour être embarqué.

Sinon, il y a une autre catégorie de langages, que je trouve très importante : les langages dynamiques.

Avec les langages dynamiques, on ne raisonne pas en termes de compilation, de DLL, d'exécutables, de rapidité d'exécution ; mais plutôt en termes de modifications à la volée, d'introspection, de rapidité de développement.

Mon préféré : Python. Mais, à regarder aussi : Ruby, TCL, Lisp, Dylan, Self, Perl, Lua, Scheme, etc.

Les 3 plus connus sont Python, Perl et Ruby. Mon avis :
Perl est très difficile à lire. Il me semble en perte de vitesse. On attend toujours (depuis longtemps) Perl-6.
Ruby est très proche, structurellement de Python, avec une syntaxe moins lisible (avis personnel). Il est un peu plus orienté object que Python. Il a du mal à évoluer.
Python est le plus lisible ; relativement à Ruby, il bénéficie d'énormes librairies, (dont certaines spécifique au monde Windows). Il évolue constamment, d'une manière très communautaire.


Si l'on compare ces langages à AutoIt, ils sont infiniment plus évolués, mais n'ont pas les facilités pratiques d'AutoIt

Ainsi, AutoIt a plein d'astuces, pour automatiser la souris, les touches, les process, les fenêtres, etc.

Par contre, avec Python (par exemple), on peut :
- manipuler des listes, des dictionnaires,
- passer n'importe quoi en paramètres des fonctions,
- les fonctions sont des objets, on peut en faire ce qu'on veut, y compris les passer en paramètre d'autres fonctions,
- les chaînes de caractères sont illimitées,
- les entiers sont de précision illimitées,
- les chaines de caractères littérales multilignes sont acceptées,
- gestion complète et native d'Unicode,
- multi-threading,
- programmation orientée objets "à classes" très complète (avec héritage multiple, méta-classes, etc.),
- on peut très bien exécuter du code contenu dans une chaîne, surcharger une fonction, et même déboguer la chaîne de caractère !
- etc.

Attention : il n'y a pas de GUI dédié, dans Python (même si TCL/TK est inclu en standard) ; certains préfèrent, car ça laisse le choix.


Enfin, je sais très bien utiliser Python depuis AutoIt! Les fonctions Python devenant des fonctions AutoIt.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-01-26, 21:32

ok voodoo j'ai pas suivit mais ca va venir (on me dit de pas réinventer la roue, t'aurai pas un exemple pour lire un mp3 )

merci michel mais pour moi c'est pas evident meme si j'ai l'impression que tout se ressemble.

donc avec autoitscript on ne peut réaliser de dll ?

et dans le scite qui est dispo vous avez quoi comme langage ajouté(ou de bonus).
car j'ai tout d'origine, pour le moment je lit la documentation avant de tester pour pas voir trop de error meme cette partie je vois qu'on doit s'en occuper

comme je débute vaut mieux avoir tout de dispo.

le site en anglais j'ai du mal faut m'excuser déjà le help humhum enfin bon ca me permettra d'apprendre un nouveau dialecte humain.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Crad-Vador
Membre


Nombre de messages : 23
Age : 30
Localisation : Clermont-Ferrand
Date d'inscription : 04/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-01-28, 16:10

C'est normal quand tu débute d'avoir des erreurs. C'est plutot quand tu n'a pas d'erreur à la compilation qu'il faut s'inquieter (sois tu es un véritable génie, soit ton programme fera tout sauf ce que tu lui a demandé de faire). C'est en faisant des erreurs - beaucoup - que l'on apprend.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.crad-vador.net
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-01-28, 17:06

j'ai lancé trois fois scite4autoit

1. pour le setmenucolor (je voulais attribuer le hmenu au traymenu et au menu de l'interface et j'ai pas réussi, j'ai bien vu l'erreur, j'ai essayé avec des + = , () $ et plop rien, j'ai préféré arreté. (trop de temp je le note pas pour pas etre trop ridicul )

2. une autre fois c'etait pour la question de rémi pour le retour d'une valeur (même que j'avais mal compris la question ^__^, j'ai essayé-).

3. et une troisieme pour tester trois script.


j'espere réaliser quelque chose d'ici peu
Grand merci .


au niveau de la police d'écriture, me demandait si on pouvait attribuer le format géométrique comme celui-ci ▼ (car j'ai pas trouvé :§ )


Quand on cree les differentes partie, l'interface et les fenetres on peut toutes les appeler $gui ou faut leur indiquer a chacune $gui_about, $gui_radio, ect ?


encore merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: Question multiple[Résolu]   2007-01-30, 21:29

[quote:5e44="ani"]j'ai lancé trois fois scite4autoit

1. pour le setmenucolor (je voulais attribuer le hmenu au traymenu et au menu de l'interface et j'ai pas réussi, j'ai bien vu l'erreur, j'ai essayé avec des + = , () $ et plop rien, j'ai préféré arreté. (trop de temp je le note pas pour pas etre trop ridicul )

2. une autre fois c'etait pour la question de rémi pour le retour d'une valeur (même que j'avais mal compris la question ^__^, j'ai essayé-).

3. et une troisieme pour tester trois script.


j'espere réaliser quelque chose d'ici peu
Grand merci .


au niveau de la police d'écriture, me demandait si on pouvait attribuer le format géométrique comme celui-ci ▼ (car j'ai pas trouvé :§ )


Quand on cree les differentes partie, l'interface et les fenetres on peut toutes les appeler $gui ou faut leur indiquer a chacune $gui_about, $gui_radio, ect ?


encore merci[/quote]

Salut,
pour les différentes parties de l'interface tu n'est pas forcé d'attribuer leur id (identificateur) à une variable si tu ne compte pas utiliser l'id d'un contrôle précis (par exemple pour effacer un texte, ou une image (GUICtrlDelete()). Imaginons que tu ai trois textes (label),si tu fais ça:
[code]$gui=GUICrlCreateLabel(..)
$gui=GUICrlCreateLabel(..)
$gui=GUICrlCreateLabel(..)[/code]
alors quand tu fera GUICtrlDelete($gui),ça t'effacera juste le dernier texte.

Pourquoi? Ben parceque le guictrldelete efface le control (ici le label) dont le numéro (ou l'id) est stocké dans $gui.

Pour ce signe: '▼ ',tu veux l'afficher où?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-01-31, 01:29

d'accord en faite j'ai essayé de cette manière (sans succès) j'ai encore a lire pour bien assimiler.

[code]dim $gui[3]
$gui[0] = guicreate("Aide", 400, 250, -1, -1)
$gui[1] = guicreate("Config", 400, 250, -1, -1)
$gui[2] = guicreate("Radio", 400, 250, -1, -1)

for $i = 0 to 2
_effet($gui[$i])
Next

while 1
sleep(500)
WEnd

Func _effet($i)
for $x = 1 to 255 step 5
WinSetTrans("","",$x)
Next
EndFunc
[/code]

ca donne un petit effet une sorte de flash, j'ai commencé à 1 au lieu de 0 pour garder un effet de transparence, ca pourrait servir d'alerte ou d'évènement (exemple si vous écoutez de la music ou jouez en réseau vous ne verrais peut être pas la petite popup qui s'affiche au niveau du systray ou même pour les malentendant.
Au niveau du step j'aime le 5 et 15.

de la je voudrai leur assigner un effet de transition ( à toute les interfaces) soit avec animatewindow (dll user32) ou avec le winsetTrans, donc j'ai essayé avec une variables

la documentation :
Référence sur for next et winsettrans

pour $i, commencer à 1 et terminer à 255 (step augmente une valeur numérique, ajoutant ici 5 à chaque boucle)

[code]
for $i = 1 to 255 step 5
winsettrans("","",$i)
next
[/code]


un autre exemple est celui-ci je voudrais savoir comment on peut attribuer cette fonction a la fois TrayItemGetHandle et au GuiCtrlGetHandle

[code]
;==================SetMenuColor======================================
; Fonction permetant de rajouter de la couleur Au menu et sous-menu
; fonctionne sur les systèmes d'exploitation datant du 98 à XP
;On fera appel
; Global Const $MIM_APPLYTOSUBMENUS = 0x80000000
; Global Const $MIM_BACKGROUND = 0x00000002
;Pour le traymenu on ajoute l'options suivante
; Opt("TrayMenuMode",1)
;====================================================================
Func SetMenuColor($nMenuID, $nColor)
If @OSVersion = "WIN_95" Or @OSVersion = "WIN_NT4" Then Return
$hMenu = TrayItemGetHandle($nMenuID)
;$hMenu = GUICtrlGetHandle($nMenuID)

$hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor)
$hBrush = $hBrush[0]

Local $stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
DllStructSetData($stMenuInfo, 2, BitOr($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
DllStructSetData($stMenuInfo, 5, $hBrush)

DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr", DllStructGetPtr($stMenuInfo))
$stMenuInfo = 0
EndFunc
[/code]


pour le caractère géometrique, c'est pour le bouton du player au niveau du play j'aurai mis le symbole fleche vers la droite et pour le stop le rond noir,

le bouton précèdent <
le bouton suivant >
le bouton pause ||

Comment on retire le contour des touches (les petit pointillé) sur un slider c'est pas top :§

comme dans le programme on utilise souvent les dll peut-on faire ceux-ci :

$user = dllopen("user32.dll")
$gdi = dllopen("gdi32.dll")
$ ....

dllclose("$user")
dllclose("...")

Ou vaut mieux juste le faire en dllcall ?

quand on crée une variables faut la vider ? (je sais pas, si on va me comprendre, là)


comme je suis encore a la lecture (wingethandle), j'ai essayé le script avec notepad (j'ai notepad2) et bizarrement çà fonctionner pas, donc j'ai regardé de plus prêt et voici :

Title: * Sans titre - Notepad2
Class: Notepad2
Size: X: -4 Y: -4 W: 808 H: 580
>>>>>>>>>>> Mouse Details <<<<<<<<<<<
Window: X: 344 Y: 481
Cursor ID: 5
>>>>>>>>>>> Pixel Color Under Mouse <<<<<<<<<<<
RGB: Hex: 0xFFFFFF Dec: 16777215
>>>>>>>>>>> Control Under Mouse <<<<<<<<<<<
Size: X: 2 Y: 28 W: 796 H: 475
Control ID: 64259
ClassNameNN: Scintilla1

quesque la classnameNN scintilla1 fait là ? c'est edit1 normalement non?
ou j'ai envoyé un nouveau nom dans notepad(je sait pas comment j'ai fait si c'est le cas)?


j'ai telement de question .. je posterai avec titre et avec les difficulté rencontré encore merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: Question multiple[Résolu]   2007-01-31, 22:39

Pour le caractère spéciale regarde dans la table ASCII fournit dans le fichier d'aide.

Pour la .dll:
[quote]If a dll filename is given then the DLL is automatically loaded and then closed at the end of the call.[/quote]
En français:la DLL est lancé puis après l'utilisation fermée.

Les autres commandes servent à controller le chargement de la DLL et sa fermeture( ce n'est pas ton cas je crois).

En cherchant vite 'notepad2 scintilla' sur google:
[quote][b]Notepad2[/b] is based on the [b]Scintilla[/b] editing component[/quote]
ça parle de soi^^.

Pour SetMenuColor() ça m'a l'air de bien marcher, je ne comprends pas ce que tu veux dire par "attribuer cette fonction à.." une autre, désolé.

Sinon je trouve ton effet "" (faudrait penser à lui donner un nom :p) réussi, et donc tu veux que l'effet de transparence se répercute sur toutes les fenêtres?

Sinon quand je fais l'effet sur le bureau sans fenêtre agrandie au maximum,mon fond d'écran devient noir et des parties de la barre des tâches deviennent transparent (winXP).
Je suis obligé de relancer explorer.exe pour y remédier .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-02-01, 01:12

pour l'effet oui si on le laisse à 1 on a un effet de transparence met pas à 0 puis c'est beau explorer avec un effet

pour rétablir faudrai peut être ajouter la valeur de la variable à 255 genre $i="255" pas encore essayé vu que je débute

sinon y a l'effet avec fade-in et fade-out ou encore opacité avec brush(gdi) (doc chez microsoft)

j'utilise celui-ci pour le lancement, maintenant je cherche a y mettre un bouton cocher pour activer ou désactiver l'effet

[code]DllCall($user, "int", "AnimateWindow", "hwnd", $gui, "int", 2500, "long", 0x00080000)[/code]

ps: le fade-out il est pas beau les coins sont noir et non transparent (fade-out:0x0009000)

[code]global const $AW_FADE_IN = 0x00080000
global const $AW_FADE_OUT = 0x00090000
$gui=guicreate("Un titre", 400, 300)
$user = dllopen("user32.dll")
;if
DllCall($user, "int", "AnimateWindow", "hwnd", $gui, "int", 2500, "long", 0x00080000)
DllCall($user, "int", "AnimateWindow", "hwnd", $gui, "int", 2500, "long", 0x00090000)
dllclose($user)[/code]

mais si je crée la fonction sur l'evenemet quitter ($GUI_EVENT_CLOSE)
comme suit y plus ce fond noir c'est du a quoi?

[code]
Select
Case $GMsg = $GUI_EVENT_CLOSE
_Quitter()
endselect

Func _quitter()
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $gui, "int", 5000, "long", 0x00090000)
Exit
EndFunc[/code]

pour l'evenement (le petit flash) je voudrai qu'il s'active sur la fenêtre du premier plan , genre si on est sur internet l'effet ce fait. tu vois quoi avec le petit bouton coder la case pour activer ou non ?

en + l'effet n'était pas voulu, vu que je voulais seulement que les interface gui1/2/3 ont cette effet lors de l'appel
met c'est pas comme çà :§
y a plus qu'a faire dans le config le start stop et step pour définir les parametre, va être dure çà

idem pour le fade-in effet sur tel fenetre avec une durée de x seconde.


Pour le setmenucolor en faite l'effet s'ajuste juste sur le TrayItemGetHandle et pas sur le GuiCtrlGetHandle meme si j'ajoute comme çà

[code]$hMenu = TrayItemGetHandle($nMenuID)
$hMenu = GUICtrlGetHandle($nMenuID)
[/code]

là y a plus de couleur

j'indique pourtant la fonction setmenucolor("lemenuitem",la couleur)

Pour le code ascii il n'y est pas, c'est pour çà que je posé la question
suis deg d'avance si y a vraiment pas.



héhé notepad2 voilà d'ouvient tout çà. google c'est pas trop mon ..j'ai l'impression d'obtenir tout le temp les meme pages :/ , pour le moment suis à lire les aides de plein de truc pour pas trop me perdre ( tout windows et son site ) et l'autoit-help . et pas évident pour un nouveau.


merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-02-01, 05:20

[code]
$gui=guicreate("Un titre", 400, 300, -1, -1)
GUISetState(@SW_SHOW, $gui)

for $i = 0 to 1
_effet()
Next

while 1
sleep(500)
WEnd

Func _effet()
for $x = 1 to 255 step 5
WinSetTrans("","",$x)
Next
EndFunc
[/code]


bon bein je trouve pas vais aller dormir un peu
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: Question multiple[Résolu]   2007-02-03, 17:28

[code]#include <GUIConstants.au3>

$gui=guicreate("Un titre", 400, 300, -1, -1)

$x=0
WinSetTrans("Un titre","",$x)
GUISetState()


_effet()


while 1
$msg = GUIGetMsg()

If $msg = $GUI_EVENT_CLOSE Then ExitLoop

WEnd

Func _effet()
for $x = 0 to 250 step 5
sleep(100)
WinSetTrans("Un titre","",$x)
Next
WinSetTrans("Un titre","",250)
EndFunc
[/code]

Voila pour l'effet ! n'oubliez pas que le processeur est extrement rapide.

@Ani: Ton passage f[i]or $i = 0 to 1 / next [/i]ne sert pas a grand chose... essaye pas de m'embrouillez avec des boucles inutile chenapan. Et dans la deuxieme boucle le processeur excute la boucle trop rapidement donc => [b]sleep() [/b]et enfin il faut placer la fenetre au debut en mode invisible et ne pas oubliez de mettre le titre de la fenetre dans la fonction[b] WinSetTrans() !
[/b]Et ne pas mettre sleep(500) dans la boucle principale ! un sleep(1) suffit largement !
[center]

[/center]

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-02-03, 18:23

j'essaie pas d'embrouiller c'est un paramètre qui servira + tard pour des alertes exemple ou autres chose .

ok je prend note au niveau du sleep et de la fenetre

merci voodoo

derniere question concerne le setmenucolor dans le help il donne un exemple de fonction soit pour le traymenu ou le guimenu mais pas pour les deux, help help si pas c'est rien


merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: Question multiple[Résolu]   2007-02-03, 21:04

[b]Setmenucolor()[/b] je n'ais pas la fonction, ni dans l'aide de scite ni dans les exemples de fonctions...

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-02-03, 21:37

faut faire la recherche sur GuiCtrlGetHandle ou sur TrayItemGetHandle sinon au lancement du help aller sur la tabulation 'recherche' et taper setmenucolor et normalement y a trois choix disponible en tout cas dans la derniere version elle y est.


merci d'avance
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: Question multiple[Résolu]   2007-02-03, 21:58

On ne peut aps utiliser la meme fonction ! donc il faut par exemple appeller l'autre fonction [b]setmenucolor2()
[/b][code]#include <GUIConstants.au3>
#include <Constants.au3>
Global Const $MIM_APPLYTOSUBMENUS = 0x80000000
Global Const $MIM_BACKGROUND = 0x00000002
opt("TrayMenuMode", 1) ; Don't show the default tray context menu


TraySetIcon("shell32.dll", 21)
TraySetToolTip("This is just a small example to show that colored tray menus" & @LF & "are easy possible under Windows 2000 and higher.")

$OptionsMenu = TrayCreateMenu("Options")
$OnTopItem = TrayCreateItem("Always On Top", $OptionsMenu)
TrayItemSetState(-1, $TRAY_CHECKED)
$RepeatItem = TrayCreateItem("Repeat Always", $OptionsMenu)
TrayCreateItem("")
$AboutItem = TrayCreateItem("About")
TrayCreateItem("")
$ExitItem = TrayCreateItem("Exit Sample")

SetMenuColor(0, 0xEEBB99) ; BGR color value, '0' means the tray context menu handle itself
SetMenuColor($OptionsMenu, 0x66BB99); BGR color value

$hGui = GUICreate("My GUI", 300, 200)

$FileMenu = GUICtrlCreateMenu("&File")
$OpenItem = GUICtrlCreateMenuItem("&Open", $FileMenu)
$SaveItem = GUICtrlCreateMenuItem("&Save", $FileMenu)
GUICtrlCreateMenuItem("", $FileMenu)

$OptionsMenu = GUICtrlCreateMenu("O&ptions", $FileMenu)
$ViewItem = GUICtrlCreateMenuItem("View", $OptionsMenu)
GUICtrlCreateMenuItem("", $OptionsMenu)
$ToolsItem = GUICtrlCreateMenuItem("Tools", $OptionsMenu)

GUICtrlCreateMenuItem("", $FileMenu)
$ExitItem = GUICtrlCreateMenuItem("&Exit", $FileMenu)

$HelpMenu = GUICtrlCreateMenu("&?")
$AboutItem = GUICtrlCreateMenuItem("&About", $HelpMenu)

$EndBtn = GUICtrlCreateButton("End", 110, 140, 70, 20)

SetMenuColor2($FileMenu, 0xEEBB99) ; BGR color value
SetMenuColor2($OptionsMenu, 0x66BB99); BGR color value
SetMenuColor2($HelpMenu, 0x99BBEE) ; BGR color value

GUISetState()

While 1
$Msg = GUIGetMsg()

Switch $Msg
Case $EndBtn, $GUI_EVENT_CLOSE
ExitLoop

Case $AboutItem
Msgbox(64, "About...", "Colored menu sample")
EndSwitch
WEnd

Exit


; Apply the color to the menu
Func SetMenuColor2($nMenuID, $nColor)
; Minimum OS are Windows98 and 2000
If @OSVersion = "WIN_95" Or @OSVersion = "WIN_NT4" Then Return

$hMenu = GUICtrlGetHandle($nMenuID)

$hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor)
$hBrush = $hBrush[0]

Local $stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
DllStructSetData($stMenuInfo, 2, BitOr($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
DllStructSetData($stMenuInfo, 5, $hBrush)

DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr", DllStructGetPtr($stMenuInfo))

; release Struct not really needed as it is a local
$stMenuInfo = 0
EndFunc




; Apply the color to the menu
Func SetMenuColor($nMenuID, $nColor)
; Minimum OS are Windows98 and 2000
If @OSVersion = "WIN_95" Or @OSVersion = "WIN_NT4" Then Return

$hMenu = TrayItemGetHandle($nMenuID) ; Get the internal menu handle

$hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor)
$hBrush = $hBrush[0]

Local $stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
DllStructSetData($stMenuInfo, 2, BitOr($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
DllStructSetData($stMenuInfo, 5, $hBrush)

DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr", DllStructGetPtr($stMenuInfo))
EndFunc
[/code]

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Question multiple[Résolu]   2007-02-03, 23:41

le truc de fou ... ca utilise la même structure,

je me disait encore y a la soluce devant toi ani cherche cherche et tombe pas dans le piege de tout assemblé (les deux script ensemble)

Je comprend plus ... si ca repete tout le temps la meme fonction çà risque de planter (vais laisser çà en attente)

merci voodoo
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Question multiple[Résolu]   Aujourd'hui à 10:38

Revenir en haut Aller en bas
 
Question multiple[Résolu]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Retourner si x est multiple de y
» [Résolu]Question bete et méchante
» [Résolu] Mot de passe smtp
» [Résolu] MSN vérolé
» [ Résolu ] Controle parental Orange

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: