Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eine Anwendung schließt die andere ? (https://www.delphipraxis.net/57589-eine-anwendung-schliesst-die-andere.html)

Vader 23. Nov 2005 18:24


Eine Anwendung schließt die andere ?
 
hallo,

wie kann ich aus einer anwendung eine andere geöffnete anwendung schließen ?
mfg vader

Neutral General 23. Nov 2005 18:26

Re: Eine Anwendung schließt die andere ?
 
Delphi-Quellcode:
var hwnd : THandle;
hwnd:=FindWindow(nil,WindowCaption);
SendMessage(hwnd,WM_CLOSE,0,0);
WindowCaption ist die Caption von dem Fenster das du schließen willst..
Ansonsten selbsterklärend denke ich..

Vader 23. Nov 2005 18:51

Re: Eine Anwendung schließt die andere ?
 
hallo,

Zitat:

WindowCaption ist die Caption von dem Fenster das du schließen willst..
das versteh ich net, muß ich das "WindowCaption" mit meinen programmnamen ersetzen das
ich schließen will ?

Delphi-Quellcode:
var hwnd : THandle;
hwnd:=FindWindow(nil,[b]Digiuhr[/b]);
SendMessage(hwnd,WM_CLOSE,0,0);

mfg vader

ManuMF 23. Nov 2005 19:05

Re: Eine Anwendung schließt die andere ?
 
Yep.

Zitat:

Zitat von ManuMF
Wenn der Name des Fensters bekannt ist:
Delphi-Quellcode:
var Window : hWnd;

Window := FindWindow(nil, 'Name des Fensters');
if Window <> 0 then PostMessage(Window, wm_close, 1, 1);
Funktioniert aber nicht, wenn das Programm z.B. eine Abfrage beim Beenden anzeigt

Wenn der Dateiname des Programms bekannt ist:
Delphi-Quellcode:
uses TlHelp32;

// Funktion
function KillTask(const AExeName: string): boolean;
var
  p: TProcessEntry32;
  h: THandle;
begin
  Result := false;
  p.dwSize := SizeOf(p);
  h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0);
  try
    if Process32First(h, p) then
      repeat
        if AnsiLowerCase(p.szExeFile) = AnsiLowerCase(AExeName) then
          Result := TerminateProcess(OpenProcess(Process_Terminate,
                                                 false,
                                                 p.th32ProcessID),
                                     0);
      until (not Process32Next(h, p)) or Result;
  finally
    CloseHandle(h);
  end;
end;

// Aufruf
if not (KillTask('NameDesProgramms.exe') then
  {z.B.} showmessage('Programm konnte nicht beendet werden.');
Die harte Methode ;-) , von dsdt.info

Gruß,
ManuMF

Vader 24. Nov 2005 11:57

Re: Eine Anwendung schließt die andere ?
 
hallo,

danke hat funktioniert !

mfg vader


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz