[..] Aide pour changeur d'image dans dll

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
tytynono
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 08 mars 2010 19:12
Status : Hors ligne

[..] Aide pour changeur d'image dans dll

#1

Message par tytynono »

Bonjour a tous,j'ai fais un petit fichier bat qui remplace une image de shell32 par l'image choisi par l'utilisateur puis remplace shell32 par la shell32 modifiée, tout ça en fait pour changer l'image du panneau config et systeme de windows 7.
Mais le script marche pas j'ai plusieurs probleme:
1/je suis obligé de mettre le chemin complet, le probleme c'est que si l'utilisateur se trouve dans un autre chemin ça ne marchera pas, j'ai essayé @ScriptDir mais ça marche pas.
2/je n'arrive pas a lancer mon fichier bat , alors j'envisage d'intégrer ce qu'il y a sur le .bat mais le langage ne correspond pas (faut dire que j'ai encore beaucoup de mal avec autoit) je crois que le plus simple serait d'arriver a lancer mon fichier bat.
3/je n'arrive pas a lancer les commandes avec les boutons
4/je ne connais pas la commande pour fermer(quitter)
► Afficher le texteLe code
Merci d'avance :D
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#2

Message par SagePourpre »

Les macros ne doivent pas être misent entre guillemets.

Dans ton code, tu as mis :

Code : Tout sélectionner

Global $REPERTOIRE = "@scriptdir\" ; Le "\" final est important
La bonne syntaxe est :

Code : Tout sélectionner

Global $REPERTOIRE = @scriptdir & "\"

Pour quitter le script, la commande est

Code : Tout sélectionner

Exit



Pour la gestion des événements, il y'a deux méthodes.

Voici un script fonctionnant avec la première :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
Global $gui = GUICreate('titre',300,300,-1,-1)
$quitter = GUICtrlCreateButton('Quitter',250,250,50,50)
$Lancer_calculatrice = GUICtrlCreateButton('Calc.exe',0,0,100,30)





GUISetState() ; Équivalent de   GuiSetState(@SW_SHOW,$gui)



While 1
    Sleep(10)

    $msg = GUIGetMsg()
    Switch $msg
        Case $Lancer_calculatrice
            If ProcessExists('calc.exe') Then
            MsgBox(48,'Attention','Un exemplaire de la calculatrice fonctionne déjà')
        Else
            ShellExecute('calc.exe')
        EndIf

        Case $quitter, $GUI_EVENT_CLOSE   ; La virgule fait office de "ou" ici.  Dans le cas ou le bouton $quitter est pressé ou que tu cliques sur le X pour fermer la GUI... 
            Exit
    EndSwitch


WEnd
 

Personnellement, je préfère la deuxième méthode, que voici.

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
Opt('GuiOnEventMode', 1) ; Active la gestion des événements selon une autre méthode, rendant la fonction GuiGetMsg complétement inopérante.
Global $gui = GUICreate('titre', 300, 300, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, 'events', $gui)


$Lancer_calculatrice = GUICtrlCreateButton('Calc.exe', 0, 0, 100, 30)
GUICtrlSetOnEvent(-1, 'events') ; -1 par défaut récupère le contrôle du dessus. L'équivalent dans ce cas-ci de GuiCtrlSetOnEvent($Lancer_calculatrice,'events')
$quitter = GUICtrlCreateButton('Quitter', 250, 250, 50, 50)
GUICtrlSetOnEvent(-1, 'events')


GUISetState() ; Équivalent de   GuiSetState(@SW_SHOW,$gui)



While 1
    Sleep(100)
WEnd


Func events()
    Switch @GUI_CtrlId ; Last click GUI Control identifier. Only valid in an event Function. See the GUICtrlSetOnEvent function.
        Case $Lancer_calculatrice
            If ProcessExists('calc.exe') Then
                MsgBox(48, 'Attention', 'Un exemplaire de la calculatrice fonctionne déjà')
            Else
                ShellExecute('calc.exe')
            EndIf
        Case $quitter, $GUI_EVENT_CLOSE
            Exit


    EndSwitch
EndFunc   ;==>events
 
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#3

Message par SagePourpre »

Quelques astuces :

Si vous n'utilisez pas scITe4autoit comme éditeur pour l'écriture de vos scripts,
il vous le faut ABSOLUMENT.

Il facilitera l'élaboration de scripts par 600%

Vous pouvez chercher "scite4autoit" sur google pour le lien.

La version française est également disponible ici :

Code : Tout sélectionner

http://www.autoitscript.fr/forum/viewtopic.php?f=36&t=2571
Elle contient en prime de nombreux outils destinés à faciliter encore plus l'élaboration
de scripts.

De plus, lorsque vous tentez d'exécuter un script contenant des erreurs syntaxiques, une
fenêtre apparaît et pointe vers les lignes contenant des erreurs.



Pour ce qui est du fichier *.bat, vous devriez nous montrer son contenu afin que quelqu'un puisse
possiblement vous aider à créer son alternative autoit.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
tytynono
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 08 mars 2010 19:12
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#4

Message par tytynono »

Merci de votre aide SagePourpre, malgrés vos modifs j'ai toujours des erreurs
► Afficher le texte
Voici mon code modifié:
► Afficher le texte
J'ai installé scITe4autoit avec le pack complet, quand j'edite le script j'ai bien les couleur (voir image) par contre " lorsque vous tentez d'exécuter un script contenant des erreurs syntaxiques, une
fenêtre apparaît et pointe vers les lignes contenant des erreurs" j'ai pas.

Le contenu de mon bat est trés simple:
copy %windir%\System32\shell32.dll
ResHacker.exe -addoverwrite shell32.dll, shell32 1.dll, MonImage.bmp , bitmap, 633,
Replacer.cmd Script.txt

Par contre le fichier Replacer.cmd est plus long et m'a été gentilment prêté par l'admin de ce site

Merci de votre patience et de votre aide trés precieuse pour moi.
tytynono
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 08 mars 2010 19:12
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#5

Message par tytynono »

Ce script fonctionne (sans message d'erreur) , mis a part que les bouton n'y sont pas:
► Afficher le texte
Il me manquerait a savoir comment lancer les trois actions avec les bouton(traitement d'image,lancement du bat,exit)
Avec les boutons ça donnerait ça:
► Afficher le texte
Mais la j'ai l'erreur
Image
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#6

Message par ZDS »

[En attente]
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#7

Message par SagePourpre »

Je passe seulement en coup de vent ce matin et je n'ai pas réellement le
temps de fournir une réponse complète mais en observant votre script, deux
choses me saute immédiatement au visage.


1.
EndFunc Endfunc n'est pas valide.
Ce mot se place une fois pour clôturer une fonction.

Il est impossible qu'il se retrouve 2 fois comme dans votre exemple.


Dans ScITe, tapez CTRL+T

La mise en forme de votre script sera faite automatiquement.
Votre code en sera d'autant plus lisible.


ex :
sans mise en forme :

Code : Tout sélectionner

While 1
If FileExists('calc.exe') Then
MsgBox(0, '', '', 2)
EndIf
WEnd
 
Avec mise en forme :

Code : Tout sélectionner

While 1
    If FileExists('calc.exe') Then
        MsgBox(0, '', '', 2)
    EndIf
WEnd
 
Dans le deuxième exemple, on peut clairement voir à quel If le Endif appartient tandis que dans le premier
exemple, s'il y'a plusieurs If d'imbriqués, ça devient difficile de s'y retrouver et multiplie les risques d'erreurs.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
tytynono
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 08 mars 2010 19:12
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#8

Message par tytynono »

ZDS a écrit :[En attente]
Salut ZDS, tu as vu ton script m'as permis de démarrer, maintenant il me reste a gerer les boutons :? Merci encore et si tu pouvais m'expliquer comment gerer les actions avec les boutons se serait génial. :D
tytynono
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 08 mars 2010 19:12
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#9

Message par tytynono »

SagePourpre a écrit :Je passe seulement en coup de vent ce matin et je n'ai pas réellement le
temps de fournir une réponse complète mais ... ça devient difficile de s'y retrouver et multiplie les risques d'erreurs.
Merci SagePourpre, mais je débute et j'ai beaucoup de mal a saisir comment tout doit être lié.En fesant ctrl+t j'ai plein d'érreur mais je ne comprend pas ce qu'elles veulent dire :?
► Afficher le texte
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#10

Message par Tlem »

Je vous suggère vivement la lecture de l'utilisation des fonctions :
- Case
- If/ElseIf/EndIf
- Func/EndFunc

A première vue, dans le code que vous donnez, vous mélangez les divers commandes sans prendre en compte leur syntaxe !!!

Il y à dans la partie tutoriel de ce forum, de quoi satisfaire votre curiosité et votre manque d'information. Passez donc lire les quelques sujets traitant de la structure d'un script, puis les tutoriels liés au commandes cités. :roll:

Bonne lecture.
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é".
tytynono
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 08 mars 2010 19:12
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#11

Message par tytynono »

Tlem a écrit :Je vous suggère vivement la lecture de l'utilisation des fonctions :
- Case
- If/ElseIf/EndIf
- Func/EndFunc

A première vue, dans le code que vous donnez, vous mélangez les divers commandes sans prendre en compte leur syntaxe !!!

Il y à dans la partie tutoriel de ce forum, de quoi satisfaire votre curiosité et votre manque d'information. Passez donc lire les quelques sujets traitant de la structure d'un script, puis les tutoriels liés au commandes cités. :roll:

Bonne lecture.
Merci du conseil mais j'ai relu les tutos notemment "Construction d'un Script (Principe de base)."mais j'arrive pas a saisir est ce qu'une petite explication avec des exemples serait possible?reconnaissez que c'est pas simple pour un débutant .

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE <<c'est l'action du bouton1?ça doit fermer l'interface graphique si je remplace par $COMMANDE = @ComSpec & " /c " & "changer.bat" ça lancera mon .bat? Fin()

Case $Button1
MsgBox(64, "Info", "Vous avez cliqué le Bouton OK")

EndSwitch
WEnd

If/ElseIf/EndIf
if je pense que c'est par exemple pour si il y a une erreur ouvrir une boite de dialogue pour signaler, else c'est pour séparer deux action? endif avant chaque else
Func/EndFunc
fonction quand faut-il le mettre au début de l'action,EndFunc a la fin et pourquoi des fois il y a endswitch
Je suis en train de voir toutes les videos, ça m'aide beaucoup mais a cette allure il me faudra des années pour finir ce tout petit prog, j'aurais aimé juste le finir pour pouvoir me consacrer a plein temps a mon aprentissage.J'avais proposé(sur mon site) une version dos du prog mais cette version m'horripile et je veux pas la laisser mais les membres ne comprendraient pas si je supprimé l'outil.En bref un petit coup de main me permettrai d'avancer et de paser a autre chose.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#12

Message par Tlem »

tytynono a écrit :Merci du conseil mais j'ai relu les tutos notemment "Construction d'un Script (Principe de base)."mais j'arrive pas a saisir est ce qu'une petite explication avec des exemples serait possible?reconnaissez que c'est pas simple pour un débutant.
Avez-vous essayé de lire ceci :
http://www.siteduzero.com/tutoriel-3-22 ... utoit.html

$GUI_EVENT_CLOSE représente l'événement de fermeture de la fenêtre GUI. Donc ca n'a rien à voir avec le bouton1. :mrgreen:
tytynono a écrit :J'avais proposé(sur mon site) une version dos du prog mais cette version m'horripile et je veux pas la laisser mais les membres ne comprendraient pas si je supprimé l'outil.
Donnez le lien vers cet outil. Peut être que quelqu'un vous aidera plus facilement en voyant l'intégralité du script.
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é".
tytynono
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 08 mars 2010 19:12
Status : Hors ligne

Re: [..] Aide pour changeur d'image dans dll

#13

Message par tytynono »

Tlem a écrit : Avez-vous essayé de lire ceci :
http://www.siteduzero.com/tutoriel-3-22 ... utoit.html .
Super,merci :D
Tlem a écrit :Donnez le lien vers cet outil. Peut être que quelqu'un vous aidera plus facilement en voyant l'intégralité du script.
J'ai déja tout donné, l'outil se compose :
Image
-Du dossier images qui contient les images du panneau systeme win7 (pour remplacement)
-Le scipt que j'ai donné plus haut:
"Ce script fonctionne (sans message d'erreur) , mis a part que les bouton n'y sont pas:
► Afficher le texte
en précisant qu'il manquait plus qu'a faire l'interface(gui) que j'ai fait avec koda mais il manque la correspondance entre les boutons et les actions.

-Le fichier .bat que j'ai aussi donné plus haut:
copy %windir%\System32\shell32.dll
ResHacker.exe -addoverwrite shell32.dll, shell32 1.dll, MonImage.bmp , bitmap, 633,
Replacer.cmd Script.txt
-le fichier Replacer.cmd dont j'ai précisé qu'il n'etait pas de moi et qu'il m'avait été prêté par son auteur
-Reshaker qu'on ne présente plus
-Le script pour lancer l'action de replacer en loccurence le remplacement de shell32.

Voila si quelqu'un veut bien m'aider a finir le gui aprés je pourrais me consacrer a plein temps a mon apprentissage de autoit et dés que je serais un peu plus agueris je ferais un petit outils pour remplacer les bouton avancer/reculer de l'explorer et d'internet explorer.
Répondre