![]() |
Dos-Konsole über ein Delphi Programm Buttonklick schließen?
Hallo,
mal eine ganz banale Frage. Wie kann ich die CMD über ein Delphiprogramm per Buttonklick schließen. Habe es wie folgt versucht:
Delphi-Quellcode:
Leider ohne Erfolg!
shellExecute(0, 'CLOSE', 'cmd.exe',nil,0,0);
Achso, geöffnet wurde diese wie folgt:
Delphi-Quellcode:
wobei proxy.exe das auszuführende Konsolenprogramm ist und Edit2.text die Parameter enthält.
shellExecute(0, 'open', 'Record\proxy.exe',PChar(edit2.text), nil, sw_show);
Oder anders augedrückt: wie kann man die Tastenkombiantion "STRG + C" an das geöffnete Konolenfenster übergeben?" |
Re: Dos-Konsole über ein Delphi Programm Buttonklick schließ
Hi,
schonmal die suche auspobiert ;) Luckie hat da in der CodeLib was gepostet, dürfte dir helfen: ![]() |
Re: Dos-Konsole über ein Delphi Programm Buttonklick schließ
Hallo, ich benutze für die Ausführung von Consolenprogrammen CreateProcess:
Starten:
Delphi-Quellcode:
Da CreateProcess eine Funktion ist, bekommt man einen boolschen Wert zurück, den man auswerten kann. Zum Beispiel, wenn man die Ausgabe per Pipes in ein Memo umleiten will.
var
ProcessPriority : integer; StartupInfo : TStartupInfo; ProcessInfo : TProcessInformation; ... CreateProcess( nil, PChar(CommandLine), nil, nil, True, ProcessPriority, nil, nil, StartupInfo, ProcessInfo); Durch ProcessInfo hast Du das Handle auf den Prozess und kannst ihn so abbrechen:
Delphi-Quellcode:
Anschließend wird der Prozess geschlossen:
TerminateProcess (ProcessInfo.hProcess, 0);
Delphi-Quellcode:
Die Variable ProcessInfo muss so deklariert werden, dass die Procedure/Function zum Erstellen und Abbrechen darauf zugreifen können.
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread); Für die ProcessPriority verwende ich zum Beispiel folgende Werte: Win2000/XP IDLE_PRIORITY_CLASS = $40; BELOW_NORMAL_PRIORITY_CLASS = $4000; NORMAL_PRIORITY_CLASS = $20; ABOVE_NORMAL_PRIORITY_CLASS = $8000; HIGH_PRIORITY_CLASS = $80; REALTIME_PRIORITY_CLASS = $100; Win9x/ME IDLE_PRIORITY_CLASS = $40; NORMAL_PRIORITY_CLASS = $20; HIGH_PRIORITY_CLASS = $80; REALTIME_PRIORITY_CLASS = $100; Bei StartupInfo kann man mit
Delphi-Quellcode:
zum Beispiel angeben, ob das Konsolenfenster versteckt oder als normales Fenster angezeigt werden soll.
StartupInfo.wShowWindow := SW_HIDE; // SW_SHOWNORMAL;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz