problème avec shellexecute

problème avec shellexecute - Delphi/Pascal - Programmation

Marsh Posté le 13-08-2008 à 23:04:27    

Bonsoir,
 
J'ai un problème avec l'instruction shellexecute.
 
En gros je voudrais que le programme ouvre l'invite de commande, mette la commande et l'execute, le tout automatiquement sans avoir à cliquer sur "invite de commandes" à taper manuellement la commande + ENTREE.
 
J'utilise ceci :

Code :
  1. ShellExecute(0, 'open', 'cmd.exe', PChar('ExtractShortPathName(EncExe) +current_job.cmdenc+ " -o NUL "+JobData.Input'),0,SW_SHOWDEFAULT);


 
Le souci est qu'il ouvre la fenêtre dos et qu'il ne fait rien après.
 
Une chose aussi : j'aimerais qu'il laisse la commande visible lors de l'action.
 
En gros la ligne de commande à copier donnerait ceci :

Code :
  1. F:\x264-CLI_r928\x264.exe --progress --thread-input -B 1378
  2. -p 1 --stats "statsfile.pass" -A "p8x8,b8x8" -b 2 --direct auto --subme 5
  3. --me "hex" -o NUL 1.avs


 
avec  
 
"ExtractShortPathName(EncExe)" qui est "F:\x264-CLI_r928\x264.exe"
 
"current_job.cmdenc" qui est "--progress --thread-input -B 1378  
-p 1 --stats "statsfile.pass" -A "p8x8,b8x8" -b 2 --direct auto --subme 5
--me "hex""
 
"JobData.Input" qui est "1.avs"

Reply

Marsh Posté le 13-08-2008 à 23:04:27   

Reply

Marsh Posté le 17-08-2008 à 19:15:35    

Déjà faut pas mettre les quotes autour des fonctions et variables :D Et les chaînes plus loin avec des quotes simples au lieu des doubles

 


PChar('ExtractShortPathName(EncExe) +current_job.cmdenc+ " -o NUL "+JobData.Input')

 

->

 

PChar(ExtractShortPathName(EncExe) +current_job.cmdenc+ ' -o NUL '+JobData.Input)

 

Et puis il faut un param en plus pour cmd.exe pour lui dire que ce qui suit est la commande à exécuter :

 

PChar('/c ' + ExtractShortPathName(EncExe) +current_job.cmdenc+ ' -o NUL '+JobData.Input)

 

(ou /k si tu veux que la fenêtre de commande reste ouverte)


Message édité par antp le 17-08-2008 à 19:16:34

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed