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

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

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

#1

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

#2

Message 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
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é".
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#3

Message 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)
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

#4

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

#5

Message 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
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é".
Répondre