Page 1 sur 1

Comment gérér les blancs dans les arguments d'une cmdline ?

Publié : ven. 09/mars/2007 9:13
par barnar

Code : Tout sélectionner

 #CRLF = Chr(13) + Chr(10)

Procedure.s getStdOut (exeFile.s, args.s)

 ;Le fichier exeFile doit se trouver dans le directory  %WINDIR%\system32 
  
  curDir.s     =   ""  
  flags         =  #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide
  numProg      =   RunProgram (exeFile , args, curDir, flags )
 
  resultat.s = ""
  ligne.s = "" 
  
  While ProgramRunning (numProg)
        ligne = ReadProgramString (numprog)
        If ligne <> ""
        resultat +  ligne + #CRLF
        EndIf
  Wend
  
  ProcedureReturn resultat 
EndProcedure

;---- MAIN()

args.s = "query  hklm\Software\Microsoft\Windows\CurrentVersion\Run"               ; arg1
;args.s = "query  hkcu\Software\Microsoft\Windows NT\CurrentVersion\devices"       ; arg2

resu.s = getStdOut ("reg.exe", args)
MessageRequester ("  ", resu, #PB_MessageRequester_Ok )
 

End

; IDE Options = PureBasic v4.02 (Windows - x86)
; CursorPosition = 4
; Folding = -
; EnableThread
Bonjour,
Dans le code ci-dessus tout va bien avec arg1 (voir dans 'MAIN()'), mais avec arg2 non. J'ai pensé que ça venait du blanc dans 'Windows NT' et j'ai essayé les techniques habituelles (sous-chaines, space(1), chr(39) etc,
en vain !
Quelqu'un peut-il m'aider ? Merci. : :oops:

Publié : ven. 09/mars/2007 12:05
par lionel_om
Met des double quotes (") pour entourer tes arguments :

Code : Tout sélectionner

truc.exe "c:\program files\..." "-coucou -hello"
Pour cela tu aura besoin de

Code : Tout sélectionner

Chr(34)
Lio :wink:

comment gérer les blancs dans une cmdline ?

Publié : sam. 10/mars/2007 20:14
par barnar
Merci lionel_om
OK j'ai compris
:P