AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mitkriegen wann eine andere Anwendung geschlossen wird?
Thema durchsuchen
Ansicht
Themen-Optionen

Mitkriegen wann eine andere Anwendung geschlossen wird?

Ein Thema von phlux · begonnen am 3. Aug 2005 · letzter Beitrag vom 4. Aug 2005
Antwort Antwort
Seite 2 von 2     12   
Robert Marquardt
(Gast)

n/a Beiträge
 
#11

Re: Mitkriegen wann eine andere Anwendung geschlossen wird?

  Alt 4. Aug 2005, 10:10
Das Schoene mit so einem Hook ist das er im Kontext/Adressraum der jeweiligen Applikation ausgefuehrt wird, also funktioniert GetModuleFileName(0, ...).
Von der Hook-DLL zu deiner Applikation uebermittelt man am bequemsten den Text mit WM_COPYDATA. Den Fensterhandle hat man beim Starten des Hooks mit uebergeben und er muss genauso wie der Hook-Handle aufgehoben werden.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#12

Re: Mitkriegen wann eine andere Anwendung geschlossen wird?

  Alt 4. Aug 2005, 11:13
Zitat von phlux:
Richtig, wie in der Fragestellung formuliert: _andere_ Anwendung
Na dann nimm doch 0, verbietet doch niemand, oder?

Zitat von phlux:
Okay wenn ich 0 nehme hooke ich alle threads, wie finde ich dann heraus welcher Thread der passende der Anwendung ist?
Du bist lustig, wir wissen exakt nichts über deine Zielanwendung, sollen nun aber Tips abgeben ...
Robert hat doch schon einen guten Tip gegeben. Da der Hook jeweils im Kontext der Anwendung aufgerufen wird, kannst du bequem die API so aufrufen, als wärst du (du bist's ja) in dem Prozeß. Was will man mehr?

Zitat von phlux:
kann ich eventuell herausfinden welches fenster zu welchem thread gehört?
Die Zuordnung Thread->Fenster kann nicht funktionieren. Wieso? Weil ein Thread logischerweise mehrere Fenster haben kann. Andererseits funktioniert Fenster->Thread sehr gut über MSDN-Library durchsuchenGetWindowThreadProcessId()!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#13

Re: Mitkriegen wann eine andere Anwendung geschlossen wird?

  Alt 4. Aug 2005, 11:50
Ich habe seit Jahren einen globalen WH_SHELL-Hook am Laufen, der einer Tray-Applikation sagt welches Programm gerade im Vordergrund ist.
Entsprechend werden unterschiedliche Tastenbelegungen fuer ein Geraet benutzt.
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#14

Re: Mitkriegen wann eine andere Anwendung geschlossen wird?

  Alt 4. Aug 2005, 12:08
Zitat von phlux:
Mein Programm soll mit kriegen, wann eine x-beliebige von mir festgelegte Anwendung geschlossen wird, weiß jemand wie ich das realisieren kann?
Edit: Das einzige was mir/der Anwendung bekannt ist, ist ein Handle auf ein Fenster...
Da gibt es viele Lösungswege. Wenn diese Anwendung nur aus einem Fenster besteht, könntest du dir mit GetWindowThreadProcessId die ProcessId und mit OpenProcess den ProcessHandle holen. Anschließend wartest du mit WaitForSingleObject bis der Prozess beendet worden ist. Das Ganze könntest du dann in einen Thread auslagern.

Delphi-Quellcode:
var
  AppHWnd: HWND;
  ProcessId: DWORD;
  ProcessHandle: THandle;
begin

  {...}

  if IsWindow(AppHWnd) then
  begin
    if GetWindowThreadProcessId(AppHWnd, @ProcessId) <> 0 then
    begin
      ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
      if ProcessHandle <> 0 then
      begin
        WaitForSingleObject(ProcessHandle, INFINITE);
        // Prozess wurde beendet
        CloseHandle(ProcessHandle);
      end;
    end;
  end;

  {...}

end;
AppHWnd ist in diesem Fall das Fensterhandle der Fremdanwendung.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#15

Re: Mitkriegen wann eine andere Anwendung geschlossen wird?

  Alt 4. Aug 2005, 17:58
Alles klar, danke. Jetzt habe ich genügend Informationen um mich alleine zurecht zu finden
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:43 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