AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Benachrichtigung wenn Prozess gestartet wurde
Thema durchsuchen
Ansicht
Themen-Optionen

Benachrichtigung wenn Prozess gestartet wurde

Ein Thema von diabox · begonnen am 2. Jun 2012 · letzter Beitrag vom 15. Jul 2012
 
Benutzerbild von diabox
diabox

Registriert seit: 13. Sep 2006
61 Beiträge
 
Delphi 2010 Professional
 
#1

Benachrichtigung wenn Prozess gestartet wurde

  Alt 2. Jun 2012, 16:32
Hallo,

ich grübele jetzt seit einiger Zeit daran, wie mein Programm benachrichtigt werden kann, wenn ein bestimmter Prozess (mit Fenster) gestartet wurde.
Dabei sind mir bisher folgende Lösungen unter gekommen:

Überwachung nach EXE:
  • wiederholtes Prüfen, ob sich der Prozess in der Liste aktiver Prozesse befindet:
    CreateToolhelp32Snapshot alle X Sekunden aufrufen und nach szExeFile prüfen.
    Fazit: Doch recht hohe CPU-Last.
  • Beanspruchung der WMI "EventWatching", "Win32_ProcessStartTrace":
    Mit der WMI bin ich ehrlich gesagt noch etwas überfordert und das ist vielleicht auch etwas überdimensioniert.
    Fazit: Neuland

Überwachung nach Fenster:
  • wiederholtes Prüfen, ob sich ein bekannter Fenstername in der Liste der Fenster befindet:
    EnumWindows alle X Sekunden aufrufen und mit GetWindowTitle den Fenstertitel prüfen.
    Fazit: Zwar geringere CPU-Last, aber bestimmt nicht ideal.
  • Benachrichtigung beim "Auftauchen" eines Fenster (SetWinEventHook/SetWindowsHookEx):
    Mit SetWinEventHook habe ich noch nicht gearbeitet, aber das scheint ähnlich wie SetWindowsHookEx zu arbeiten:
    Callback in jedem neuen Prozess der prüft, ob es sich um Prozess X handelt. (Leider wird die Callback-Funktion auch bei anderen Events ausgeführt)
    Fazit: Jeden Prozess mit der Prüfung "belästigen" scheint mir auch nicht ideal.
  • Benachrichtigung beim Erstellen eines Prozess mit Fenster mit eigenem Hook (Registry: AppInit_DLLs):
    Fazit: Wieder sind viele zu Prozesse betroffen.


Das wären so die Ideen, die ich habe. Fällt euch noch etwas anderes ein?

Danke und schönes Wochenende!
Wer zweifelt, detoniert nicht!'
Dieter Nuhr
  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 20:12 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