Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1173 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Argument a un programme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Argument a un programme

n°271053
kicest
Mais qui c'est ce kicest ?
Posté le 16-12-2002 à 23:21:03  profilanswer
 

bonjour,
 
je désire faire un programme VB, mais que celui-ci soit appelable en mode "interactif" ou en mode batch ... je m'explique :
 
1 Programme qui exécuté simplement ouvre un formulaire etc ....
 
ce meme programme avec des parametres qui s'exécute sans ouvrir de formulaire et renvoi une donnée.
 
exemple :
 
monprog.exe
ou
monprog.exe -B -val "toto"
ou -B pourrait indiquer "mode batch", et -val une valeur déclenchant un module dans VB.
 
Je ne sais pas du tout comment faire cela, et je ne sais pas non plus comment renvoyer a l'os une chaine de caractère qui est le résultat d'un traitement de mon programme.
 
Pourriez-vous m'aider ? Merci.


---------------
Dans la vie y'a pas de grands, y'a pas de petits, la bonne longueur pour les jambes, c est quand les pieds touchent bien par terre !
mood
Publicité
Posté le 16-12-2002 à 23:21:03  profilanswer
 

n°271065
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 16-12-2002 à 23:31:24  profilanswer
 

Extrait de l'aide :
 
Command, fonction
Renvoie la partie argument de la ligne de commande utilisée pour lancer
Microsoft Visual Basic ou un programme exécutable développé avec
Visual Basic.
 
Sinon tu peux utiliser l'API GetCommandLine


---------------
J'ai un string dans l'array (Paris Hilton)
n°271071
kicest
Mais qui c'est ce kicest ?
Posté le 16-12-2002 à 23:43:14  profilanswer
 

Harkonnen a écrit :

Extrait de l'aide :
 
Command, fonction
Renvoie la partie argument de la ligne de commande utilisée pour lancer
Microsoft Visual Basic ou un programme exécutable développé avec
Visual Basic.
 
Sinon tu peux utiliser l'API GetCommandLine


c'est nickel, c est exactement ce que je voulais, par contre, saurais tu comment renvoyer sur la sortie standard une chaine de caractères ... je ne suis pas programmeur, mais je fais un peu de script shell , et finalement c 'est executer un prog qui renvoi non pas un code retour mais une chaine de caractère , que je pourrais trapper par une commande d'emulation linux (grep , awk, cut, etc ...)
merci.


---------------
Dans la vie y'a pas de grands, y'a pas de petits, la bonne longueur pour les jambes, c est quand les pieds touchent bien par terre !
n°271087
drasche
Posté le 17-12-2002 à 00:33:35  profilanswer
 

Malheureusement VB ne possède rien pour faire de la sortie sur console en standard.  Donc impossible de faire une application DOS-style.  A moins que les API Windows ne viennent nous sauver encore une fois mais là, je ne sais pas.

n°271101
HappyHarry
Posté le 17-12-2002 à 01:53:54  profilanswer
 

Drasche a écrit :

Malheureusement VB ne possède rien pour faire de la sortie sur console en standard.  Donc impossible de faire une application DOS-style.  A moins que les API Windows ne viennent nous sauver encore une fois mais là, je ne sais pas.


 
exact, mais j'me souviens plus laquelle :D
 
faut aller farfouiller dans la MSDN y a un truc a faire pour ca, mais je sais plus quoi

n°271148
drasche
Posté le 17-12-2002 à 10:24:17  profilanswer
 

J'ai trouvé ceci: le code qui suit est dans un module avec la fonction Main() comme point d'entrée de l'application.  Le "problème" est qu'il crée une fenêtre console à lui.  Je l'ai trouvé sur une page web écrite en allemand et l'ai remanié un peu, sinon la doc officielle se trouve sur Q171654
 

Code :
  1. Option Explicit
  2. ' Alloue une console
  3. Private Declare Function AllocConsole Lib "kernel32" () As Long
  4. ' Libère une console
  5. Private Declare Function FreeConsole Lib "kernel32" () As Long
  6. ' stdin/stdout/stderr
  7. Private Declare Function GetStdHandle Lib "kernel32" _
  8.         (ByVal nStdHandle As Long) As Long
  9. Private Declare Function SetConsoleTextAttribute Lib "kernel32" _
  10.         (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) _
  11.         As Long
  12. Private Declare Function SetConsoleTitle Lib "kernel32" Alias _
  13.         "SetConsoleTitleA" (ByVal lpConsoleTitle As String) _
  14.         As Long
  15. Private Declare Function WriteConsole Lib "kernel32" Alias _
  16.         "WriteConsoleA" (ByVal hConsoleOutput As Long, ByVal _
  17.         lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, _
  18.         lpNumberOfCharsWritten As Long, lpReserved As Any) As Long
  19. Private Declare Function ReadConsole Lib "kernel32" Alias _
  20.         "ReadConsoleA" (ByVal hConsoleInput As Long, ByVal _
  21.         lpBuffer As String, ByVal nNumberOfCharsToRead As Long, _
  22.         lpNumberOfCharsRead As Long, lpReserved As Any) As Long
  23. Const STD_INPUT_HANDLE = -10&
  24. Const STD_OUTPUT_HANDLE = -11&
  25. Const STD_ERROR_HANDLE = -12&
  26. Const FOREGROUND_BLUE = &H1
  27. Const FOREGROUND_GREEN = &H2
  28. Const FOREGROUND_RED = &H4
  29. Const FOREGROUND_INTENSITY = &H8
  30. Const BACKGROUND_BLUE = &H10
  31. Const BACKGROUND_GREEN = &H20
  32. Const BACKGROUND_RED = &H40
  33. Const BACKGROUND_INTENSITY = &H80
  34. Const ENABLE_LINE_INPUT = &H2
  35. Const ENABLE_ECHO_INPUT = &H4
  36. Const ENABLE_MOUSE_INPUT = &H10
  37. Const ENABLE_PROCESSED_INPUT = &H1
  38. Const ENABLE_WINDOW_INPUT = &H8
  39. Const ENABLE_PROCESSED_OUTPUT = &H1
  40. Const ENABLE_WRAP_AT_EOL_OUTPUT = &H2
  41. Private hConsoleIn As Long
  42. Private hConsoleOut As Long
  43. Private hConsoleErr As Long
  44. Public Sub Main()
  45.     ' Création de la console
  46.     CreateConsole
  47.     ' Test de console en in/out
  48.     TestConsole
  49.     ' Fermeture de la console
  50.     UnLoadConsole
  51. End Sub
  52. Private Sub CreateConsole()
  53.     ' Création de la console
  54.     Call AllocConsole
  55.     Call SetConsoleTitle("VB Console" )
  56.     ' Récupère les flux (streams) standards
  57.     hConsoleIn = GetStdHandle(STD_INPUT_HANDLE)
  58.     hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE)
  59.     hConsoleErr = GetStdHandle(STD_ERROR_HANDLE)
  60. End Sub
  61. Private Sub ConsolePrint(ByRef strText As String)
  62.   ' Envoie strText vers la console (flux de sortie, stdout)
  63.   Call WriteConsole(hConsoleOut, strText, Len(strText), vbNull, vbNull)
  64. End Sub
  65. ' Lecture d'une chaîne depuis le flux d'entrées (stdin)
  66. Private Function ConsoleRead() As String
  67.     Dim strInput As String
  68.     ' Remplissage d'un espace fixe
  69.     strInput = Space$(256)
  70.     ' Lecture de la console
  71.     Call ReadConsole(hConsoleIn, strInput, Len(strInput), _
  72.                      vbNull, vbNull)
  73.     ' Renvoi des données pertinentes
  74.     ConsoleRead = Left$(strInput, InStr(strInput, Chr$(13)) - 1)
  75. End Function
  76. Private Sub UnLoadConsole()
  77.     ' Destruction de la console
  78.     Call FreeConsole
  79. End Sub
  80. ' Test de la console
  81. Private Sub TestConsole()
  82.     Dim strUserInput As String
  83.     ' Définition du mode texte
  84.     Call SetConsoleTextAttribute(hConsoleOut, FOREGROUND_RED Or _
  85.                                  FOREGROUND_GREEN Or _
  86.                                  FOREGROUND_BLUE Or _
  87.                                  FOREGROUND_INTENSITY Or _
  88.                                  BACKGROUND_BLUE)
  89.     ' Présentation de l'application
  90.     Call ConsolePrint(App.Title & vbCrLf)
  91.     ' Modification de l'attribut texte
  92.     Call SetConsoleTextAttribute(hConsoleOut, FOREGROUND_RED Or _
  93.                                  FOREGROUND_GREEN Or _
  94.                                  FOREGROUND_BLUE)
  95.     ' Demande d'info
  96.     Call ConsolePrint("Veuillez entrer votre nom: " )
  97.     ' Lecture d'une donnée sur le flux d'entrées standard (stdin)
  98.     strUserInput = ConsoleRead()
  99.     ' Traitement de la donnée par renvoi sur le flux de sortie (stdout)
  100.     If Not strUserInput = vbNullString Then
  101.         Call ConsolePrint("Bonjour, " & strUserInput & "!" & vbCrLf)
  102.     Else
  103.         Call ConsolePrint("Bonjour, anonyme!" & vbCrLf)
  104.     End If
  105.     ' Demande de frappe d'une touche
  106.     Call ConsolePrint("Veuillez appuyer sur une touche pour fermer l'application" )
  107.     ' Lecture de données sur le flux d'entrées standard (stdin)
  108.     Call ConsoleRead
  109. End Sub


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Argument a un programme

 

Sujets relatifs
besoin d'un tout petit programme :-/programme java lié à un site internet
Traduire un programme VBTraduire un programme VB
[JAVA] Ouvrir internet explorer depuis un programme JavaMesure du temps CPU d'une partie d'un programme
Execution d'un programme Cconnaitre l'etat de sorti d'un programme
Programme facile style Borland Turbo C++ Lite[urgent][C, Algo] programme pour demain
Plus de sujets relatifs à : [VB] Argument a un programme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR