Programme von Delphi aus schließen.....

Diskutiere Programme von Delphi aus schließen..... im Developer Network Forum im Bereich Hardware & Software Forum; Hi Webster! Stimmt. Die Geschichte kann man benutzen, wenn man NT-Dienste starten, stoppen, anhalten usw. will. Zum Beenden von ganzen...
  • Programme von Delphi aus schließen..... Beitrag #1
R

rastelli

Bekanntes Mitglied
Dabei seit
05.09.1999
Beiträge
177
Reaktionspunkte
0
Hi Webster!

Stimmt. Die Geschichte kann man benutzen, wenn man NT-Dienste starten, stoppen, anhalten usw. will. Zum Beenden von ganzen Applikation langt das nicht.
Um Applikationen auf dem normalen Wege zu beenden, müßte man rein theoretisch dem Programm die Botschaft senden, sich zu beenden. Also wahrscheinlich Applikations-Handle rauskriegen und dann eine Windows-Message verschicken - habe ich allerdings selbst noch nicht gemacht.
Eine zweite Möglichkeit wäre, das Modul mit Stumpf und Stiel zu entfernen. Und dazu habe ich Code da:

var modstruc: TModuleEntry;
ergebnis: integer;
name, handlex, groesse, count, verz: string;
zeile: integer;
size: longint;
begin
zeile := 1;
modstruc.dwSize := sizeOf(tmoduleentry); {Strukturgröße bestimmen}
{evtl. StringGrid vorbereiten, in das man dann die Werte kippt}
if ModuleFirst(@modstruc) then begin
repeat
with modstruc do begin
name := strPas(szModule);
handlex := inttostr(hmodule);
size := GlobalSize(hModule);
groesse := inttostr(size);
count := inttostr(wUsageFlags);
verz := strPas(szExePath);
end;
{jetzt evtl. die Werte ins StringGrid kippen - Zeile für Zeile}
until not ModuleNext(@modstruc);
end;
end;

So, damit kriegt man zumindest die Handles der geladenen Module raus - handlex!
Jetzt das Entfernen:

begin
if count > 1 then Application.Messagebox('Modul wird mehrfach genutzt!','Hinweis',64);
FreeLibrary(handlex);
end;

In erster Linie ist das Programm interessant, da sich damit bereits geladene DLLs rauswerfen lassen - aber eben nicht nur DLLs sondern so ziemlich alles. Bei DLLs muss man halt so oft das Modul freigeben, wie es in Benutzung ist (count).

Hoffe, es hilft.

CU Rastelli
 
  • Programme von Delphi aus schließen..... Beitrag #2
WEBSTER

WEBSTER

Bekanntes Mitglied
Dabei seit
25.11.1999
Beiträge
1.502
Reaktionspunkte
0
Ort
COLOGNE
Salute,

habe schon wieder mal ein kleines Prob.
Ich möchte gerne eine andere Exe von meinem Delphi-Programm aus schließen...(wenn sie gestartet wurde).

Habe folgendes gefunden:
http://www.chami.com/tips/delphi/031598D.html

klappt aber nicht, da diese Function nur für Prozesse geeignet ist.

Bitte um Hilfe.

Thnx
WEBSTER
 
  • Programme von Delphi aus schließen..... Beitrag #3
yks

yks

Bekanntes Mitglied
Dabei seit
21.01.1999
Beiträge
551
Reaktionspunkte
0
Ort
Hamburg
Also wenn die Applikation ein sichtbares Fenster hat/ist, geht das ganze etwas einfacher !

In C:

HANDLE hWnd;
hWnd = FindWindow( NULL, "Titel/Caption des App-Fensters");
if ( hWnd) SendMessage( hWnd, WM_CLOSE, 0, 0);

Das wars ! Am besten sich mal die Beschreibung zu FindWindow durcharbeiten.
Unter NT muß man sich nicht mal dann gedanken über Rechte machen !

...yks
 
  • Programme von Delphi aus schließen..... Beitrag #4
WEBSTER

WEBSTER

Bekanntes Mitglied
Dabei seit
25.11.1999
Beiträge
1.502
Reaktionspunkte
0
Ort
COLOGNE
Danke für eure Anworten, sie waren WIEDER mal sehr hilfreich.......

WEBSTER
 
Thema:

Programme von Delphi aus schließen.....

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben