Démarrage du programme par programme.exe -mode

cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 13 nov. 2003 à 07:20
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 13 nov. 2003 à 18:48
Bonjour tout le monde !

Je suis en train de faire un programme et en fait, il faut qu'il est 2 modes de démarrages. Le mode normal qui se démarrage quand on double clique par exemple 2 fois sur le fichier exe et l'autre qui est lancé par exemple par démarrer\exécuter et qui ce lance de la sorte : programme.exe -mode
J'ai déja vu sur plusieurs logiciels et jeux (notament max payne qui peut se lancer pour activer les codes je crois par maxpayne.exe -developer), mais j'ai encore jamais vu de programmes VB sur codes sources de la sorte :'( C'est pour cela que je vais vous demander de l'aide. Je voudrai en fait quand mon prog et lancé par -mode qu'il lance par exemple form2 au lieu de form1
Voila, si vous avez une idée faites moi signe et merci d'avance ;-)

@Z3RtY25 ==

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 nov. 2003 à 07:56
Il faut prendre en compte les paramètres de la ligne de commande lorsque ton prog est lancé par un shell.

Il existe des sources parlant de cà sur ce site !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
13 nov. 2003 à 07:58
ds ton form load tu ajoute et tt premier:

dim Commandes() as String
Commandes = split(Command$ , " ")
if ubound(Commandes) then
'tu as des commandes derriere l'EXE
'pour les lire: Commandes(0) , Commandes(1) , ....
' dans ton exemple le '-mode' se trouverai dans Commandes(0)
'vu que c'est le premier paramatre :)
Else
'aucun paramatre de command
End If

Par contre attention, dans mon exemple toutes les commandes doivent etre separée entre des espace.
Deplus sous win95 le Command$ renvoi tout ce ki suit l'EXE mais entre guillement donc verifie avant si dvt ou derriere le COmmand$ recup que tu na pas de guillement (chr$(34)) si oui alors vire les !

Bouyaka !
0
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
13 nov. 2003 à 07:59
Ah vi aussi, sur le site il ya je crois assez d'exemple ...
Mais c'est pas du tout cuit, il faut chercher un peu dans les sources ...

Bouyaka !
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
13 nov. 2003 à 11:28
Salut vous 2

Bin en fait j'en avais jamais vu par hasard je veux dire, mais j'ai pas pu chercher car je ne savai comment sa s'appelai.

lumesh , excuse moi de t'embeter mais je suis débutant et je comprend pas vraiment comment regler ton truc :'(

Puis, tu me rajoute un truc sur windows 95 qui m'a encore plus perturbé, mais j'ai pas besoin de trucs pour windows 95 car mon prog serai pour xp et peut etre windows 2000 (je suis pas encore sur)

Merci pour votre etre vs 2

@Z3RtY25 ==
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
13 nov. 2003 à 14:45
Je reprends le script de Lumesh

Ici on a un tableau qui va contenir tous tes paramètres passés en ligne de commande
dim Commandes() as String

Là tu récupère dans ton tableau tous les paramètres tapés dans la ligne de commande, le espace (" ") est traité comme le séparateur d'argument
Commandes = split(Command$ , " ")

Là on utilise ubound pour ne pas différencier majuscule/minuscule, si tu dois faire le distinguo, ne mets pas ubound
if ubound(Commandes) then

Dans cette partie tu est sûr que tu as des paramètres dans ta ligne de commande (Ubound(Commande)>0), tu peux accéder individuellement à ceux-ci en faisant Commande(0), Commande(1), ..., jusqu'à Commande(Ubound(Commande))

Else

Dans cette partie tu sais qu'aucun argument n'a été passé.

End If

J'espère que mon explication de code te suffira.
0
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
13 nov. 2003 à 18:28
Là on utilise ubound pour ne pas différencier majuscule/minuscule, si tu dois faire le distinguo, ne mets pas ubound
if ubound(Commandes) then

Non pas tout a fait ..
Ubound( tablo , x) permet de donner le nombre delement dans la variable tablo de la Xeme colone.

Dans notre cas Ubound( tablo ) retourne Le nombre delement dans le tablo sachant kil sera tjrs a une colone donc pas besoin de specifier la colone a traiter .

Bouyaka !
0
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
13 nov. 2003 à 18:37
pour windows 95 je mexplique:

la variable Command$ retourne une chaine de caractere avec tout les parametre entrés apres le nom du prog.
Sous windows chaque parametre doit etre separé par un espace (le plus courant).
Exemple: dans prog.exe param1 param2
bah Command$ retournera : param1 param2
MAis sous windows95 le Command$ retournera pour les meme param: "param1 param2" cad dans la chaine de caractere retournée tu auras le chr(34) cad les guillemets placée avant et apres la chaine retournée.

Voila la suptilité de la chose. Pourquoi je ne sait pas vraiment ....

Pour la variables Commandes() :

cette variable definit comme elle l'est, est un tableau a X dimensions (tableau dynamique) definit en string.
Le split permet de separer tous les element dune chaine de caractere separé par un ou des caractere de separation (ouh la que de repetition ;)) ..
Exemple:
Dim A() as string
A = split("chaine1 chaine2 chaine3", " ")
bah ds ce cas on aura:
A(0) => chaine1
A(1) => chaine2
A(2) => chaine3

Voila voilou jespere que nous avons avec PhilippeE ete le plus clair possible pour toi :)

Bouyaka !
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
13 nov. 2003 à 18:48
A oui, sa va un chouilla mieu, c'est bon j'ai compris maintenant meme si j'aurai pu comprend avec le code de lumesh qui m'a completement paumé avec son histoire de win95 lol

Merci à vous les gars, bonne prog

@Z3RtY25 ==
0
Rejoignez-nous