au pire, tu créés un .bat et tu le balances à ShellExecute() ...
la viper
bien je me suis jamais servi de ShellExecute mais ca doit etre l'equivalent de system sous C ..
maintenant au niveau perf il ne doit pas y avoir bcp de difference.
l'avantage de system, c que tu peux executer des commandes dos sans te soucier de savoir si c command.com ou cmd.exe
la viper
b
antp
la viper a écrit a écrit :
c est du C pure .. oui ca fonctionne sous NT mais evidement .. la chose la plus recommandée c est CreateProcess... le reste c'est plus ou moins du caca
ha ok, c'est du C, mais en C++ Win32 est-ce que ça ne pose pas de problème ? Je n'ai jamais utilisé cette fonction en fait.
Et vu que moi en general je fais du Delphi je dois de toute façon utlise ShellExecute qui, je pense, est aussi bien que CreateProcess. La différence c'est que CreateProcess tu t'occupes du process créé (savoir quand il a fini, etc...), tandis que ShellExecute tu lances un truc dont tu ne t'occupes plus après (et je le trouve bcp plus simple à utiliser, y a qu'une ligne avec peu de paramètres).
Dans les fichiers d'aides de Borland il disent de ne pas utiliser WinExec, mais rien à propos de CreateProcess plutôt que ShellExecute.
[edtdd]--Message édité par antp--[/edtdd]
glopman
merci a tous les 2
à mon avis command.com est assez aleatoire sous NT parce que je l'avais tenter sans grand resultats (enfin ça c'est peut etre de ma faute aussi remarquez...)
mais encore merci
la viper
c est du C pure .. oui ca fonctionne sous NT mais evidement .. la chose la plus recommandée c est CreateProcess... le reste c'est plus ou moins du caca
antp
system ça fonctionne en NT et 2k ?
ce ne serait pas une de ces fonctions qu'il ne vaut mieux ne plus utiliser, un peu comme WinExec, pcq ça date de l'API Win3.1 ?
la viper
?!?
system("dir d:\>> d:\liste.txt" );
fonctionne tres tres bien .. :D
pas besoin de lancer command.com ou cmd.exe
antp
bhen vu que comme tu le dis c'est une commande DOS et non pas un programme, tu dois lancer command.com (sous win9x) ou cmd.exe (sous winNT/2K)
donc programme à lancer = "command.com"
paramètres (je suis pas sûr qu'on peut les mettre dans la même chaine que le programme à lancer, sinon c'est le paramètre suivant du shellexecute) = "/c dir d:\ >> d:\liste.txt"
donc un truc du genre:
ShellExecute(0,"","command.com","/c dir d:\\ >> d:\\liste.txt", etc...);
si tu veux que la fenêtre DOS reste ouverte après exécution, c'est /k au lieu de /c.
Pour le choix entre command.com et cmd.exe, je ne sais pas trop command tu peux t'y prendre, mais il doit y avoir moyen de faire ça facilement.
Je pense que command.com peut marcher à tous les coups, mais je n'ai pas de NT4 ou de XP sous la main pour tester...
[edtdd]--Message édité par antp--[/edtdd]
glopman
Bon je sais je suis pas aidé mais bon j'ai une question stupide à vous poser : comment faire pour lancer une commande dos du style:
dir d:\ >> d:\liste.txt
Parce que les fonctions ShellExecute sont bien gentilles mais elle ne font pas ça...