2009-05-19 6 views

Antwort

2

Wenn Sie von dem Host (Desktop) werden überprüft, gibt es 2 Möglichkeiten, die ich kenne: über einen Prozess auslösen und über eine COM Schnittstelle.

  1. AutoStartOnConnect
    Es gibt einen Registrierungsschlüssel unter HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows CE Services genannt AutoStartOnConnect. Oder Sie könnten natürlich einen ähnlichen Wert bei HKEY_CURRENT_USER verwenden. Installieren Sie einen Zeichenfolgenwert unter diesem Schlüssel mit einem beliebigen Namen. Die Daten für diesen Wert sollten die Befehlszeile einer Anwendung sein, die ausgeführt wird, wenn das Gerät eine Verbindung herstellt. Wenn Sie eine Anwendung benachrichtigen möchten, die bereits ausgeführt wird, können Sie eine kleine exe schreiben, die Ihre laufende App benachrichtigt, mit der das Gerät verbunden ist. Fügen Sie den Pfad zu dieser kleinen exe in den Wert unter dem AutoStartOnConnect-Schlüssel ein.
  2. IDccMan/IDccManSink
    Ihre App kann ein COM-Objekt auf dem Desktop registrieren, das für verschiedene Geräteereignisse aufgerufen wird. Dies erfordert P/Invoke und Interop, aber es ist nicht zu schwierig. Der openNETCF-Quellcode enthält C# -Wrapper für diese Schnittstellen.
1

Sie könnten RAPI verwenden. Sehen Sie sich die RAPI-Kommunikationsbibliothek unter OpenNETCF an. Dies hilft, wenn Sie von der Host-Seite testen.

3

Wenn Sie es aus dem Gerät tun:

static public bool IsConnectedToCradle 
{ 
    get { return SystemState.CradlePresent; } 
} 

PS: FWIW, in Windows Mobile Terminologie, die 'Terminal' in der Regel das 'Gerät' genannt wird.

Verwandte Themen