Ein Kollege hat mich gestern gefragt ob ich einen Ersatzt für GetActiveWindow()  kenne, da dieser Api Call in Windows Mobile 6.1 nicht mehr funktioniert. Die übliche suche in Google brachte eher bescheidene Ergebnisse. Aber immerhin ein Forum das uns auf die richtige Spur gebracht hat. Laut diesem Post ist GetForGroundWindow() die Version die man verwenden soll.

Meine Tests haben ergeben das GetActiveWindow schon auch in Windows Mobile 6.1 funktioniert – aber nur einen Wert liefert wenn die aktuelle Applikation ein aktives Formular hat. In der MSDN steht bei GetActiveWindow: “The return value is the handle to the active window attached to the calling thread’s message queue. Otherwise, the return value is NULL. ”

Folgender Code:

Hide();
Debug.WriteLine(“Form hidden”);
Debug.WriteLine(string.Format(“GetActiveWindow {0}”, GetActiveWindow()));
Debug.WriteLine(string.Format(“GetForegroundWindow {0}”,GetForegroundWindow()));
Show();
Debug.WriteLine(“Form shown”);
Debug.WriteLine(string.Format(“GetActiveWindow {0}”, GetActiveWindow()));
Debug.WriteLine(string.Format(“GetForegroundWindow {0}”, GetForegroundWindow()));

 

liefert also:

Form hidden
GetActiveWindow 0
GetForegroundWindow 2080886352
Form shown
GetActiveWindow 2080896288
GetForegroundWindow 2080896288