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 :

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
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 :D

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

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 :P (mais je dis surtout ça pour avoir raison :lol: ).

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! :D )

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! :D

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 :oops:

Re: [R] Mode administrateur pour programme

Posté : mer. 01 févr. 2012 17:20
par Nao
Matwachich merci beaucoup :D 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é :D , 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 :wink: )