Event wenn Applikation/Process geswitched wird

28/02/2009 - 17:46 von Lorenz Buchberger | Report spam
Hallo *,

Ich muss herausfinden welche Applikation gerade aktiv ist und ein Event
bekommen, wenn der aktuelle Prozess geàndert wird, und wie die dann aktuelle
Applikation heisst. Ich hab schon mal geschaut aber ich müsste stàndig mit
der Process Methode pollen: Gibts da nicht irgend einen OS Hook oder so was
?

Viele Grüße

Lorenz
 

Lesen sie die antworten

#1 Frank Dzaebel
28/02/2009 - 18:13 | Warnen spam
Hallo Lorenz,

Ich muss herausfinden welche Applikation gerade aktiv ist und ein
Event bekommen, wenn der aktuelle Prozess geàndert wird, und wie die
dann aktuelle Applikation heisst.



Also Prozesse sind alle aktiv. Was Du meinst, ist wohl
der Prozess, dessen Fenster im Vordergrund ist.
Ein Beispiel wàre etwa:

[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowThreadProcessId(IntPtr hWnd, out int
lpdwProcessId);

int processID;
IntPtr lastWindow;

private void timer1_Tick(object sender, EventArgs e)
{
IntPtr window = GetForegroundWindow();
if (window == lastWindow) return;
lastWindow = window;
GetWindowThreadProcessId(lastWindow, out processID);
Process p = Process.GetProcessById(processID);
textBox1.AppendText(p.ProcessName + Environment.NewLine);
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen