[R] Mode administrateur pour programme

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Nao
Niveau 2
Niveau 2
Messages : 21
Enregistré le : mar. 31 janv. 2012 20:41
Status : Hors ligne

[R] Mode administrateur pour programme

#1

Message 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 :)
Modifié en dernier par Tlem le mer. 01 févr. 2012 10:17, modifié 4 fois.
Raison : Supression balise code AutoIt (réservée pour d'autres sections du forum) et ajout de la balise [R]
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#2

Message 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.
Cordialement,
TT22
Nao
Niveau 2
Niveau 2
Messages : 21
Enregistré le : mar. 31 janv. 2012 20:41
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#3

Message 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.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#4

Message 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:
Cordialement,
TT22
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#5

Message 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
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#6

Message 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: ).
Cordialement,
TT22
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#7

Message 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
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#8

Message 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 !
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é".
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Mode administrateur pour programme

#9

Message par TT22 »

Effectivement, je n'avais pas vu que c'était sur $CmdLineRaw :oops:
Cordialement,
TT22
Nao
Niveau 2
Niveau 2
Messages : 21
Enregistré le : mar. 31 janv. 2012 20:41
Status : Hors ligne

Re: [R] Mode administrateur pour programme

#10

Message 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: )
Répondre