[R] Fonctionnement de RunAsInvoker

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
stevanovich
Niveau 3
Niveau 3
Messages : 33
Enregistré le : dim. 17 janv. 2010 07:47
Localisation : Bretagne
Status : Hors ligne

[R] Fonctionnement de RunAsInvoker

#1

Message par stevanovich »

Bonjour,

J'ai une application externe qui nécessite des droits administrateurs pour fonctionner, hors, visiblement, ce serait un bug ou une erreur de prog, bref, un problème récurrent et connu.

Je souhaite lancer cette appli via autoit sans faire appel à #requireadmin .

Avec un fichier noelevate.bat voici la syntaxe :

Code : Tout sélectionner

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start " " %1"
 
lorsque je dépose le raccourcis de l'application à lancer dans ce fichier .bat, cette dernière s'execute sans réclamer l'élévation des droits .

Je m'inspire des exemples sur le net pour créer un exe avec autoit
dont voici les posts : https://www.autoitscript.com/forum/topi ... ec-syntax/

Code : Tout sélectionner

$cmd = @Comspec & ' /min /C set __COMPAT_LAYER=RunAsInvoker & start "" "C:\Schneider Electric\Rapsodie V1.67\std\exe\Rapsody1_67FRA.exe"'
RunWait($cmd)
 
L'application ne s'execute pas correctement , elle réclame des fichiers dll non trouvés ...
Ou est l'erreur ?

J'ai l'impression qu'il faudrait pouvoir mettre l'option RunAsInvoker dans le process autoit ... et non dans le RunWait()

Merci à vous.
Modifié en dernier par stevanovich le mer. 23 déc. 2015 16:38, modifié 1 fois.
Cordialement.
----------------------------
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Fonctionnement de RunAsInvoker

#2

Message par orax »

Tu peux faire aussi comme ça (mais c'est pour l'ensemble du script que cette variable d'environnement sera changée) :

Code : Tout sélectionner

EnvSet("__COMPAT_LAYER", "RUNASINVOKER")
Run("C:\Schneider Electric\Rapsodie V1.67\std\exe\Rapsody1_67FRA.exe")
Mais si ça ne marche pas c'est que le logiciel doit se lancer avec des droits administrateur.

Une façon de vérifier que le code fonctionne est de faire la même chose avec regedit.

Code : Tout sélectionner

EnvSet("__COMPAT_LAYER", "RUNASINVOKER")
Run("regedit")
Regedit doit se lancer sans demander d'élévation des droits mais on ne peut pas modifier les parties nécessitant des droits administrateur.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
stevanovich
Niveau 3
Niveau 3
Messages : 33
Enregistré le : dim. 17 janv. 2010 07:47
Localisation : Bretagne
Status : Hors ligne

Re: [..] Fonctionnement de RunAsInvoker

#3

Message par stevanovich »

Merci Orax !!!

Code : Tout sélectionner

EnvSet("__COMPAT_LAYER", "RUNASINVOKER")
ShellExecute("C:\Schneider Electric\Rapsodie V1.67\std\exe\Rapsody1_67FRA.exe")
Fonctionne nickel avec ShellExecute , vérifié sur un poste sans droits admin.

Merci, merci merci merci !!! :D
Cordialement.
----------------------------
Répondre