Windows Mobile

Ein Windows Mobile ABC: E wie ExitWindowsEx

Zum Abmelden eine Benutzers, Neustart oder Herunterfahren eines Windowsrechners verwendet man die Funktion ExitWindowsEx.
Seit Windows Mobile 5 gibt es diese Funktion auch auf Windows Mobile.
Die Funktion hat zwar dieselbe Signatur, nimmt aber nicht alle Parameter an.
So ist der zweite Parameter nicht das „dwReason“ Flag sondern vorerst „dwReserved“ und wird ignoriert.
Der erste Parameter bestimmt was die Funktion durchführen soll.
Da es auf Windows Mobile keine richtigen Benutzerprofile gibt entfällt das „EWX_LOGOFF“ Flag zum abmelden des Benutzers.
Bleiben eigentlich nur noch „EWX_REBOOT“ um einen Warmstart durchzuführen und „EWX_POWEROFF“ um das Gerät auszuschalten.
Aber Halt!
Ohne einen kleinen Stolperstein wäre dies ja eine ziemlich langweilige API.
Der „EWX_POWEROFF“ zum ausschalten des Gerätes funktioniert nicht auf Windows Mobile Professional oder Classic.
Nur Windows Mobile Standard lässt sich damit ausschalten.
Eine andere offizielle Möglichkeit einen Pocket PC auszuschalten gibt es leider nicht.
Gut, die Verwendung einer solchen Funktion ist vermutlich auch eher begrenzt aber durchaus vorstellbar.
Wenn man nicht gerade eine Lösung für alle Geräte dieser Welt haben möchte gibt es auf den meisten Geräten aber irgendeine Möglichkeit.
Manche Geräte unterstützen beispielsweise die Windows CE Funktion „PowerOffSystem“.
Andere Hersteller liefern mit ihren Geräten DLLs aus die die Programme der Hersteller für gerätespezifische Funktionen verwenden. Oftmals exportieren diese DLLs Funktionen mit dementsprechenden Namen, und mit einer kleinen Recherche findet man ggf. auch die benötigten Parameter.
Aber wie alle nicht offiziell Dokumentierten APIs sind solche Funktionen immer mit Vorsicht zu behandeln.
Erstens weiß man nie genau was die Funktion wirklich macht und zweitens steht man ohne Support und Garantien da.
 
– Patrick

Ein Gedanke zu “Ein Windows Mobile ABC: E wie ExitWindowsEx

  1. Tja, warum einfach, wenn’s auch kompliziert geht😉 Mit DeviceIoControl() kann man übrigens auch ganz nette Dinge machen, aber auch hier ist zu großer Sorgfalt zu raten! Ohne entsprechend "privilegierten Zugriff" auf ein WM5 (oder höher) Gerät ist diese Funktion aber beinahe "ungefährlich" …. (z.B. für das Auslesen der Geräte-ID braucht man schon ein Zertifikat ….)

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s