Dienstag, 6. Februar 2007

Windows Mobile Device Center Managed API - Registry auslesen

Mit der neuen API lässt sich auch die Registry bearbeiten. Die folgende Konsolenanwendung zeigt, wie sich aus einem Windows Mobile 5 Smartphone die Besitzerinformationen auslesen lassen. Hierzu muss ein neues Konsolenprogramm im Visual Studio 2005 erstellt werden, welchem erneut die Referenz zur Assembly Microsoft.WindowsMobile.RAPI hinzugefügt werden muss. Diese befindet sich im Ordner %Windows%\WindowsMobile.


using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

using Microsoft.WindowsMobile.Rapi;



namespace ConsoleRegistryRead

{

class Program

{

static void Main(string[] args)

{

try

{

if (RapiManager.Instance.Devices.Count<=0)

{

Console.WriteLine("Verbindung kann nicht hergestellt werden,"+

"da kein Gerät mit dem Computer verbunden ist.");

return;

}

CERegistryKey currentuser = CERegistry.CurrentUser
(RapiManager.Instance.Devices[0].Session);

// Wenn keine Besitzerinformationen existieren,

// dann existiert auch der Unterschlüssel 'Owner' nicht

if (currentuser.OpenSubKey("ControlPanel").OpenSubKey("Owner") != null)

{

// Bei dem abgefragten Feld handelt es sich um ein Bytearray,

// in dem alle Informationen zugleich abgelegt sind

string ownername =

(string)currentuser.OpenSubKey("ControlPanel").OpenSubKey
("Owner").GetValue("Name");

string owneremail =

(string)currentuser.OpenSubKey("ControlPanel").OpenSubKey
("Owner").GetValue("E-mail");

if (ownername == null)

{

Console.WriteLine("Keine Besitzerinformationen vorhanden.");

return;

}

Console.WriteLine("Besitzerinformationen:");

Console.WriteLine("======================");

Console.WriteLine("Name: " + ownername);

Console.WriteLine("E-Mail: " + owneremail);

}

else

Console.WriteLine("Es wurden keine Besitzerinformationen gesetzt.");

Console.ReadLine();

}

catch (RapiException re)

{

Console.WriteLine("Beim Herstellen einer Verbindung ist ein Fehler
aufgetreten!\n"
+

re.Message);

Console.ReadLine();

}



}

}

}