Autor Beitrag
hiwa
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mi 22.04.09 10:34 
Grüsse in die Runde,
man kann ja bekanntlich für Forms Events für Start und Stopp definieren, und dort den
Grund für z.B. Beenden von dem Form abfrage: Bennden von Windows, der Benutzer hat den form beendet, usw.

Beispiel: private void FormClosed(object sender, FormClosedEventArgs e)


Ich suche aber nach solchen Events für Prozessen um sozusagen die Gründe für Beenden oder Starten von einem Prozess zu erfragen,
ob es z.B. durch autostart geschehen ist oder durch UserStart.

Könnt ihr mir da weiter helfen?

Danke
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 22.04.09 12:49 
Ein Kollege hat sich vor einiger Zeit damit beschäftigt. Du kannst das Ganze über WMI überwachen mit Hilfe eines WqlEventQueries:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
WqlEventQuery query = new WqlEventQuery("__InstanceCreationEvent"new TimeSpan(001), "TargetInstance isa \"Win32_Process\"");

            ManagementEventWatcher watcher = new ManagementEventWatcher();
            watcher.Query = query;
            watcher.Options.Timeout = new TimeSpan(70000);

            OnDebugMessage(String.Format("listening for Process-calls..."));
            watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived);
            watcher.Start();

Dieser Code erzeugt einen Handler der beim Starten von Programmen gefeuert wird, selbes sollte auch für das __InstanceDeletionEvent funktionieren.