AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dos-Konsole über ein Delphi Programm Buttonklick schließen?
Thema durchsuchen
Ansicht
Themen-Optionen

Dos-Konsole über ein Delphi Programm Buttonklick schließen?

Ein Thema von mlspider · begonnen am 5. Mär 2005 · letzter Beitrag vom 6. Mär 2005
 
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Dos-Konsole über ein Delphi Programm Buttonklick schließ

  Alt 6. Mär 2005, 10:47
Hallo, ich benutze für die Ausführung von Consolenprogrammen CreateProcess:

Starten:
Delphi-Quellcode:
var
  ProcessPriority : integer;
  StartupInfo : TStartupInfo;
  ProcessInfo : TProcessInformation;

...

CreateProcess(
    nil,
    PChar(CommandLine),
    nil,
    nil,
    True,
    ProcessPriority,
    nil,
    nil,
    StartupInfo,
    ProcessInfo);
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.

Durch ProcessInfo hast Du das Handle auf den Prozess und kannst ihn so abbrechen:
TerminateProcess (ProcessInfo.hProcess, 0); Anschließend wird der Prozess geschlossen:
Delphi-Quellcode:
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
Die Variable ProcessInfo muss so deklariert werden, dass die Procedure/Function zum Erstellen und Abbrechen darauf zugreifen können.

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

StartupInfo.wShowWindow := SW_HIDE; // SW_SHOWNORMAL; zum Beispiel angeben, ob das Konsolenfenster versteckt oder als normales Fenster angezeigt werden soll.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 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-2025 by Thomas Breitkreuz