Page 1 sur 1
[R] Mode administrateur pour programme
Posté : mar. 31 janv. 2012 22:09
par Nao
Bonjour/Bonsoir,
Je souhaite faire en sorte que lorsque je lance mon programme avec un raccourci de type :
"C:\Dossier\programme.exe" -admin
Une form normalement caché apparaisse ( elle me servira en tant qu' administrateur de mon logiciel )
► Afficher le texteMon problème :
Mais je n'y arrives pas

.
J'ai été aidé dans un autre post qui a été dans la poubelle du au fait qu'il n'a pas respecté les règles j'ai donc du créer le mien pour être aider.
L'exemple que l'on ma donné ( ma base pour faire ce que je veux )
Code : Tout sélectionner
If UBound($CmdLine) = 1 Then
MsgBox(16,"Erreur","Aucun paramètres !")
Exit
Else
$Param = ""
For $i = 1 To UBound($CmdLine)-1 Step 1
$Param&="Paramètre "&$i&" : "&$CmdLine[$i]&@CRLF
Next
MsgBox(64,"Info",$Param)
EndIf
Mon script :
Code : Tout sélectionner
If UBound($CmdLine) = 1 Then
MsgBox(16,"Erreur","Aucun paramètres !")
Exit
ElseIf $CmdLine = '-admin' Then
MsgBox(64,"Info","Mode Administrateur")
Else
$Param = ""
For $i = 1 To UBound($CmdLine)-1 Step 1
$Param&="Paramètre "&$i&" : "&$CmdLine[$i]&@CRLF
Next
MsgBox(64,"Info",$Param)
EndIf
Pouvez-vous s'il vous plait me dire ou je me suis tromper et me corriger

.
Merci d'avance pour m'avoir aidé

.
Solution ( trouver par moi

)
Code : Tout sélectionner
If UBound($CmdLine) = 1 Then
MsgBox(16,"Erreur","Aucun paramètres !")
Exit
ElseIf $CmdLine[1] = '-admin' Then
MsgBox(64,"Info","Mode Administrateur")
Else
$Param = ""
For $i = 1 To UBound($CmdLine)-1 Step 1
$Param&="Paramètre "&$i&" : "&$CmdLine[$i]&@CRLF
Next
MsgBox(64,"Info",$Param)
EndIf
Il me manquait le
[1] sur la ligne
ElseIf $CmdLine = '-admin'
Then qui me donne
ElseIf $CmdLine[1] = '-admin'
Then
Merci a ceux qui ont chercher

Re: [..] Mode administrateur pour programme
Posté : mar. 31 janv. 2012 22:19
par TT22
Dabord :
Tlem a écrit :@matwachich et TT22 :
Merci d'être vigilant aux non respect des règles de présentation du forum.
Donc, je te dis que la coloration syntaxique est interdite dans ce forum :
http://www.autoitscript.fr/forum/viewto ... =35&t=1609
Sinon pour ton problème, est-ce que ça te convient :
► Afficher le texte
Code : Tout sélectionner
$Admin = ""
If UBound($CmdLine) = 1 Then
$Admin = False
Else
For $i = 1 To UBound($CmdLine)-1 Step 1
If $CmdLine[$i] = "-admin" Then
$Admin = True
ExitLoop
EndIf
Next
If $Admin = "" Then
$Admin = False
EndIf
EndIf
If $Admin = False Then
MsgBox(16,"Erreur","Vous n'êtes pas en mode administrateur !")
ElseIf $Admin = True Then
MsgBox(64,"Erreur","Vous êtes en mode administrateur !")
EndIf
Il recherche -admin dans tous les paramètres.
Donc, même si le script est lancé avec les paramètres "
123 456 789 -admin 101112" étant donné que -admin est un des paramètres, le script sera en mode admin.
Re: [..] Mode administrateur pour programme
Posté : mar. 31 janv. 2012 22:23
par Nao
Merci
TT2 le tient est bcp mieu

merci beaucoup et oui mon post est une coloration syntaxique

( mais il est parti d'une aide pur car je ne savais rien au début donc je n'ai fais que remettre ce qui était dans le post qui est à la poubelle )
Tlem peut-tu s'il te plait mettre se post dans une autre catégorie ou si il ne te plait pas à la poubelle

merci d'avance
edit: correction d'une faute qui modifie le sens de la phrase.
Re: [..] Mode administrateur pour programme
Posté : mar. 31 janv. 2012 22:39
par TT22
Nao a écrit :Tlem peut-tu s'il te plait mettre se post dans une autre catégorie ou si il ne te plait pas à la poubelle

merci d'avance

Pourquoi, c'est bien une demande d'aide que tu as fait ? Donc, elle est à sa place dans ce forum "Aide Générale"
Et puis pourquoi le supprimer ? Si on le laisse, il pourra peut-être servir à d'autres

Re: [..] Mode administrateur pour programme
Posté : mar. 31 janv. 2012 22:47
par matwachich
@T22: Pourquoi diable tu fais un UBound sur $CmdLine, alors que le nombre d'éléments du array est stocké dans l'élément 0??? (comme pour la plupart des Array, ce qui rend les codes plus claires)
Code : Tout sélectionner
Global $str = ""
Switch $CmdLine[0]
Case 0
MsgBox(0, "", "Aucun paramètre")
Case Else
For $i = 1 To $CmdLine[0]
$str &= $i & "- " & $CmdLine[$i] & @CRLF
Next
MsgBox(0, "", "Il y a " & $CmdLine[0] & " pramètre(s), qui sont:" & @CRLF & $str)
EndSwitch
PS: si on ne veut vérifier la présence que d'un seul paramètre (-admin) il vaut mieux faire:
Code : Tout sélectionner
If StringInStr($CmdLineRaw, "-admin") Then ; actions si le paramètre est présent
que de se casser la tête avec le Array $CmdLine
Re: [..] Mode administrateur pour programme
Posté : mar. 31 janv. 2012 23:25
par TT22
@ matwachich : Si j'utilise un Ubound, c'est parceque c'est la première chose qui m'es venu à l'ésprit.
Et je n'avais jamais fait de StringInStr dans un Array (je ne savais même pas Ue c'était possible).
Et puis, ta méthode n'est pas parfaite, si un paramètre est "C:\Users\TT22\-administrateur\", il te diras qu'il y a quand même un paramètre -admi

(mais je dis surtout ça pour avoir raison

).
Re: [..] Mode administrateur pour programme
Posté : mer. 01 févr. 2012 02:02
par matwachich
Pour le coup du -admin, je dois avouer que on peut y être confronté (même si tu le dis rien que pour avoir raison, il y a du vrai!

)
Sinon, le StringInStr ce n'est pas sur un Array, mais sur un String
$CmdLine est un array
$CmdLineRaw est un String qui contient toute la commande passée au programme
Et oui, un StringInStr sur un array n'est pas possible!
Ciao!

Re: [..] Mode administrateur pour programme
Posté : mer. 01 févr. 2012 07:53
par Tlem
Votre discussion n'a pas réellement de sens, car lorsque l'on doit utiliser des paramètres, il est évident que ceux-ci doivent être balisés pour être reconnu comme tel.
Dans un système avec paramètres, les paramètres sont précédés généralement par :
- - Un espace non inclut entre guillemets.
- Le caractère / ou \ ou - précédé d'un espace
Et se termine par un espace
non inclut entre guillemets.
A partir du moment ou cette convention est respectée, il ne peut y avoir de doute sur ce qui est ou n'est pas un paramètre !
Re: [..] Mode administrateur pour programme
Posté : mer. 01 févr. 2012 07:55
par TT22
Effectivement, je n'avais pas vu que c'était sur $CmdLineRaw

Re: [R] Mode administrateur pour programme
Posté : mer. 01 févr. 2012 17:20
par Nao
Matwachich merci beaucoup

tu as fais mieux que
TT2 car c'est vrai que je compte pour le moment n'utilisé qu'un paramètre ( -admin ) qui ne sera pas dans le nom d'un dossier ou de fichier donc je n'ais pas besoin de tout vérifier parfaitement.
Merci à vous de m'avoir aidé 
, je vous souhaite une bonne journée, bonne fin de journée ou une bonne nuit ( cela dépend du moment ou vous lirez ce message

)