AProcess.CommandLine := 'ipconfig'; exécution et charset
Bonjour
Au clic de ce code, la fenêtre dos s'ouvre, mais reste ouverte et ne s'exécute pas.
1° /
à la fermeture de la fenêtre dos, le code s'exécute, comment automatiser cette exécution et la fermeture de la fenêtre ?
2° /
le texte dans le mémo, n'est pas lu avec le bon charset (notez que j'ai le même problème avec Delphi, et que malgré des explications calées, je n'ai rien compris et donc pas résolu ce problème) Comment faire ?
Cordialement
André
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
procedure TForm1.Button1Click(Sender: TObject);
var
AProcess: TProcess;
// Le programme commence ici.
begin
// On créé l'objet TProcess,
// et on l'assigne à la variable AProcess
AProcess := TProcess.Create(nil);
// On dit au nouveau AProcess quelle est la commande à exécuter
// Utilisons le compilateur de FreePascal
AProcess.CommandLine := 'ipconfig';
// Définissons une option pour indiquer que le programme est lancé.
// Cela assurera que notre programme n'attend pas que le programme lancé soit terminé.
// Nous allons aussi lui dire que nous voulons lire la sortie du fichier.
AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
// Maintenent que AProcess sait quelle ligne de commande il doit lancer, go!
AProcess.Execute;
// Le programme ne va pas plus loin tant que ppc386 n'a pas fini.
// Maintenant on lit dans le memo la sortie du programme.
Memo1.Lines.LoadFromStream(AProcess.Output);
// Maintenant on peut vider le TProcess.
AProcess.Free;
end; |