Page 1 sur 1

[Ex] Shoot AutoIt3.exe project.....

Posté : lun. 19 nov. 2007 06:44
par arrkhan
Hi,

Comme tout codeur débutant, dés que je fait une modif' de mon script, je le ctrl+s et j'execute le .au3, sauf que comme je me plante souvent, que la GUI ne s'affiche pas, ou d'autres erreurs (heureusement pas encore de BSOD), je me retrouve vite avec plein d'instance AutoIt3.exe dans le Taskmgr, donc je m'étais fait un batch tout con pour tous les shooter d'un coup :

Code : Tout sélectionner

taskkill /f /im autoit3.exe
Puis j'ai réfléchi (eh oui, ca m'arrive), et me suis dit, quitte à coder avec AUtoIt, autant créer un .exe qui me fera la même chose que mon .bat, ainsi est né "ShootAutoIt3dotexe" ^^

Code : Tout sélectionner

#Include <Constantsdotau3>
#NoTrayIcon

Opt("TrayMenuMode",1)

$Shoot = TrayCreateItem("Shoot projets AutoIt3.exe")
TrayCreateItem("")
$ExitItem = TrayCreateItem("Quitter")

TraySetIcon("Shell32.dll",-218)
TraySetState()
TraySetClick(16)

While 1
    $msg = TrayGetMsg()
    If $msg = $exititem Then ExitLoop
    if $msg = $Shoot Then
        Run(@ComSpec & ' c/ ' & "", @SystemDir, @SW_HIDE)
        Send( " taskkill /f /im autoit3.exe{enter}" )
    EndIf
WEnd
Exit
Que voilà un beau p'tit code non ? J'ai pas réussi à faire la commande sur une seule ligne donc j'ai triché, et j'ai essayé avec ProcessClose mais il ne vire par défaut que l'instance avec le PID le plus haut, taskkill ne s'en soucie pas, il vire tout. L'exe crée une icone dans le systray pour un shootage rapide ^^

L'exe fonctionnera normalement sous WinXPPro et Vista, sous WinXPHome, il faudra "DL" Taskkill.exe et l'envoyer dans C:\WINDOWS\system32\

ImageTaskkill.exe<<=Lien de DL.

Edit: apparement les lien sous forme:

[url=http://arrkhan.free.fr/Forums/autoit/re ... skkill.exe][img]http://arrkhan.free.fr/Forums/autoit/system.png[\img]Taskkill.exe[\url]

ne fonctionnent pas, c'est dommage

Re-edit: ouh là suis fatigué (mouarf même pas vu, il est 7 heure ...) en fait je fermais mes balises par un backslash, ca fait 20 minutes que je me prend la tête ;)

Posté : lun. 19 nov. 2007 08:47
par Tlem
Sinon, si vous faites vos essais avec Scite4AutoIt, vous avez la commande : CTRL+Break pour arrêter le processus en cours. :P

Et même que si vous activer la directive

Code : Tout sélectionner

#Tidy_Parameters= /kv 0
ca vous fera une sauvegarde du script à chaque lancement (Mettre kv 5 pour ne garder que les 5 dernières ..)

Hummmm Scite4AutoIt moi j'aime. :D

Posté : lun. 19 nov. 2007 10:25
par ani
bonjour arrkhan

premiere erreur

Code : Tout sélectionner

Run(@ComSpec & ' c/ ' & "", @SystemDir, @SW_HIDE)
Send( " taskkill /f /im autoit3.exe{enter}" )
Indiquez plutôt ceux-ci

Code : Tout sélectionner

Run(@ComSpec & ' /c taskkill /f /im autoit3.exe', "", @SW_HIDE)

Posté : lun. 19 nov. 2007 17:34
par arrkhan
Ah oui belle erreur en effet, je n'avais testé mon script qu'avec @SW_SHOW, et du coup le fait qu'il soit sur deux lignes, même avec le 'c/' ne posait pas de problemes, j'ai mis @SW_HIDE au dernier moment et pas retester ... Honte sur moi :(.

D'ailleur a quoi sert le '/c', j'ai pas trouver dans l'aide ... ?

Posté : lun. 19 nov. 2007 19:04
par Tlem
En fait, la commande @ComSpec & ' /c' est la traduction de CMD /C qui revient à dire : Exécute la commande donnée par la chaîne de caractères puis termine