Page 1 sur 1

[Ex] Protocole autoit: (pour URL)

Posté : mar. 08 avr. 2008 23:02
par MClaveau
'soir !

Un protocole-URL (comme mailto: callto: ftp: http: ), mais qui lance une commande. Il s'appelle autoit:


Installation en quatre étapes :


1): compiler ce script, avec le nom de fichier argraw.exe ; ensuite, le copier dans C:\

Code : Tout sélectionner

#NoTrayIcon
$arg=$CmdLineRaw
msgbox(0,"$CmdLineRaw",$arg, 20)
Exit

2): lancer ce script (c'est un script d'installation):

Code : Tout sélectionner

$name="autoit"
$command="C:\argraw.exe"

$tkey="HKEY_CLASSES_ROOT\"&$name
RegWrite($tkey)
sleep(10)
RegWrite($tkey,"","REG_SZ","URL: "&$name&" protocol")
sleep(10)
RegWrite($tkey,"URL Protocol","REG_SZ","")
sleep(10)

RegWrite($tkey&"\shell")
sleep(10)
RegWrite($tkey&"\shell\open")
sleep(10)
RegWrite($tkey&"\shell\open\command")
sleep(10)
RegWrite($tkey&"\shell\open\command","","REG_SZ",'"'&$command&'" %1')
sleep(10)

MsgBox(0,"Terminé","AutoIt protocol est prêt à fonctionner.",2)
Exit

3): Créer une page HTML, qui doit contenir cette ligne :

Code : Tout sélectionner

<a href='autoit: AAA bbb "CCC ddd eee" fff'>AutoIt_Protocol_Link</a>

4): Lancer cette page HTML dans Internet-Explorer ; puis cliquer sur le lien.



Conclusion: Maintenant, il est possible de lancer une commande sur un poste de travail, à partir d'un lien dans une page HTML ou HTA.
Il est juste nécessaire d'avoir installé, comme indiqué ci-dessus.

C'est juste un exemple (à adapter) pour montrer le principe de fonctionnement.









-

Re: [Ex] Protocole autoit: (pour URL)

Posté : jeu. 10 avr. 2008 06:18
par arrkhan
En effet, ca peut etre interressant, mais je n'arrive pas a lancer de commandes, y aurait il moyen d'avoir un tit exemple concret ? (ou alors suis pas bien reveillé ^^)

Re: [Ex] Protocole autoit: (pour URL)

Posté : lun. 14 avr. 2008 17:35
par Firefox2
Salut !

Je pense que c'est bien trouvé comme idée et que ça pourrait être utile mais il manque la vraie utilité qui serait de pouvoir vraiment exécuter le script passé en paramètre plutôt que de juste faire une simple MsgBox()

J'ai adapté le script à compiler en ça:

Code : Tout sélectionner

#NoTrayIcon
#include <GUIConstants.au3>
#include <Array.au3>

$com = $CmdLine
$com[1] = StringReplace($com[1], "autoit:", "", 1)
$arg = _ArrayToString($CmdLine, @LF, 1)
$arg = StringReplace($arg, "autoit:", "", 1)
$link = GUICreate("AutoIt Link", 330, 95)
GUICtrlCreateLabel("Souhaitez-vous vraiment éxécuter le script suivant ?", 40, 10)
$voir = GUICtrlCreateButton("Cliquer ici pour &afficher le script", 10, 30, 310)
$oui = GUICtrlCreateButton("&OUI", 10, 60, 150)
$non = GUICtrlCreateButton("&NON", 170, 60, 150)
GUISetState()

While Sleep(10)
    
    $msg = GUIGetMsg()
    
    Select
        
    Case $msg = $voir
        MsgBox(64, "Script", $arg)
        
    Case $msg = $oui
        GUIDelete()
        For $i = 1 To $com[0]
            Execute($com[$i])
        Next
        Exit
        
    Case $msg = $non
        Exit
        
    Case $msg = $GUI_EVENT_CLOSE
        Exit
        
    EndSelect
    
WEnd
 
Je trouve que c'est plus pratique ;)
(et les commandes seraient de la sorte autoit:"test('ah', 'oh')" "test2('re ah', 're oh')")

Sinon, bravo pour le script du registre :]

Re: [Ex] Protocole autoit: (pour URL)

Posté : lun. 14 avr. 2008 19:08
par tolf
Et si on veut désinstaller ce qui a été installé, comment fait-on SVP ?

Re: [Ex] Protocole autoit: (pour URL)

Posté : lun. 14 avr. 2008 19:31
par Firefox2
Je crois que c'est juste ça:

Code : Tout sélectionner

RegDelete("HKEY_CLASSES_ROOT\autoit")