<...zurück>

Reagieren auf Ereignisse

Unter eVB hat man ohne den Einsatz von API-Funktionen keine Möglichkeit auf Geräte-Ereignisse wie Ein- oder Ausschalten, Syncronisationserfolg, Netzwerkverbindungsstatus  u.s.w. zu reagieren. Eine Möglichkeit besteht in der Nutzung der Core-DLL-Funktion "CeRunAppAtEvent", die Applikationen bei Eintreffen eines bestimmten Ereignisses starten kann:

Deklarationsteil:

Public Const NOTIFICATION_EVENT_NONE = 0
Public Const NOTIFICATION_EVENT_TIME_CHANGE = 1
Public Const NOTIFICATION_EVENT_SYNC_END = 2
Public Const NOTIFICATION_EVENT_ON_AC_POWER = 3
Public Const NOTIFICATION_EVENT_OFF_AC_POWER = 4
Public Const NOTIFICATION_EVENT_NET_CONNECT = 5
Public Const NOTIFICATION_EVENT_NET_DISCONNECT = 6
Public Const NOTIFICATION_EVENT_DEVICE_CHANGE = 7
Public Const NOTIFICATION_EVENT_IR_DISCOVERED = 8
Public Const NOTIFICATION_EVENT_RS232_DETECTED = 9
Public Const NOTIFICATION_EVENT_RESTORE_END = 10
Public Const NOTIFICATION_EVENT_WAKEUP = 11
Public Const NOTIFICATION_EVENT_TZ_CHANGE = 12

Public Declare Function CeRunAppAtEvent Lib "Coredll" (ByVal AppName As String, ByVal WhichEvent As Long) As Long

Da Diese Funktion ausschließlich Programme ausführen kann, ist eine Interaktion mit einem laufenden Programm nicht so einfach. Eine Möglichkeit besteht in dem Setzen eines Registry-Schlüssels (durch das mittels CeRunAppAtEvent gestartete "Mini"-Programm), der durch ein laufendes Programm im Polling (z.B. durch einen Timer) ausgewert und dann zurückgesetzt wird.

Eine einmal vereinbarte Benachrichtigung kann durch erneutes Aufrufen der Funktion mit der Konstante "NOTIFICATION_EVENT_NONE" zurückgesetzt werden.

 

<...zurück>