[R] La commande RUN ne lance que des EXE ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
XcessiV
Niveau 4
Niveau 4
Messages : 53
Enregistré le : mar. 07 août 2007 14:05
Localisation : Grenoble
Status : Hors ligne

[R] La commande RUN ne lance que des EXE ?

#1

Message par XcessiV »

Bonjour tout le monde.

Est-ce moi ou la commande RUN ne fonctionne qu'avec des .exe ?
J'ai un vilain message qui me dit qu'il ne peux pas lancer le programme (sauf les .exe).

Voila ce que j'ai fait :

Code : Tout sélectionner

If Not IsAdmin() Then
    RunAsSet('coeadmin', $PWD)
    Dim $szDrive, $szDir, $szFName, $szExt
    $Res = _PathSplit(GuiCtrlRead($InputURL), $szDrive, $szDir, $szFName, $szExt)
    Run('"' & $Res[0] & '"', $szDrive & $szDir, @SW_MAXIMIZE)
    Exit
    RunAsSet()
Else
    Dim $szDrive, $szDir, $szFName, $szExt
    $Res = _PathSplit(GuiCtrlRead($InputURL), $szDrive, $szDir, $szFName, $szExt)
    Run('"' & $Res[0] & '"', $szDrive & $szDir, @SW_MAXIMIZE)
EndIf
Une idée ?
Modifié en dernier par XcessiV le mer. 29 août 2007 19:08, modifié 1 fois.
:) Merci à la AutoIt French Team pour son aide :)
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 »

Extrait de la doc de AutoIt :
Run ( "filename" [, "workingdir" [, flag[, standard_i/o_flag]]] )
filename : The name of the executable (EXE, BAT, COM, or PIF) to run.

ShellExecute ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )
filename : The name of the file to run (EXE, .txt, .lnk, etc).
Il semblerait que ShellExecute soit plus indiquer dans votre cas puisque vous voulez lancer autre chose qu'un EXE, BAT, COM, ou PIF.
Pensez à rajouter $PID = ShellExecute ..... pour avoir le PID de votre programme d'installation (Ca permet de le surveiller).

Utilisez la ligne Dim $szDrive, $szDir, $szFName, $szExt une seule fois, en début de votre code (Avant le IF).

La commande RunAsSet() ne peut être exécutée puisque elle ce trouve après le Exit !!

Utilisez @SW_HIDE au lieu de @SW_MAXIMIZE pour masquer l'installation de votre programme (En vue d'utiliser le progressBar d'attente).

Pourquoi faire la condition If Not IsAdmin() si c'est pour faire la même ligne de commande en non admin (Votre code après le else est le même que avant le else !!!) ?
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é".
XcessiV
Niveau 4
Niveau 4
Messages : 53
Enregistré le : mar. 07 août 2007 14:05
Localisation : Grenoble
Status : Hors ligne

#3

Message par XcessiV »

Tlem a écrit :Utilisez la ligne Dim $szDrive, $szDir, $szFName, $szExt une seule fois, en début de votre code (Avant le IF).
Ok.
Tlem a écrit :La commande RunAsSet() ne peut être exécutée puisque elle ce trouve après le Exit !!
Il me semblait que cette commande enlevait les droit d'admin si on les avait donnés auparavent, je me trompe ?
Tlem a écrit :Pourquoi faire la condition If Not IsAdmin() si c'est pour faire la même ligne de commande en non admin (Votre code après le else est le même que avant le else !!!) ?
Je voulais faire de sorte à ce que si l'user n'est pas admin bah on execute le programme en tant qu'admin et si il l'était déjà bah ne rien changer...
Comment auriez vous fait ?

Code : Tout sélectionner

Dim $szDrive, $szDir, $szFName, $szExt 
If Not IsAdmin() Then 
   RunAsSet('coeadmin', $PWD) 
EndIf
   $Res = _PathSplit(GuiCtrlRead($InputURL), $szDrive, $szDir, $szFName, $szExt) 
   Run('"' & $Res[0] & '"', $szDrive & $szDir, @SW_MAXIMIZE) 
   RunAsSet() 
   Exit
Quelque chose dans ce genre ?
:) Merci à la AutoIt French Team pour son aide :)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#4

Message par Tlem »

XcessiV a écrit :Il me semblait que cette commande enlevait les droit d'admin si on les avait donnés auparavent, je me trompe ?
Non, mais il faut le faire avant de sortir du script, comme vous l'avez corriger ci-dessus !
XcessiV a écrit :Comment auriez vous fait ?

Quelque chose dans ce genre ?
Absolument !

Il ne reste plus qu'a passer le RUN en SHELLEXECUTE, pour lancer autre chose que du COM, EXE , BAT ou PIF. :wink:
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é".
XcessiV
Niveau 4
Niveau 4
Messages : 53
Enregistré le : mar. 07 août 2007 14:05
Localisation : Grenoble
Status : Hors ligne

#5

Message par XcessiV »

Merci Tlem !

Vais tester ça de suite :)
:) Merci à la AutoIt French Team pour son aide :)
Répondre