Der Hamster unterstützt Event-Objekte. Man kann diese Objekte z. B. für Programme und Skripte benutzen, welche Artikel und E-Mails nach dem Download nachbearbeiten.
Ein Event setzt sich jeweils aus dem Mutex und dem eigentlichen Eventnamen zusammen:
Mutex+"<Eventname>">
Siehe auch die Erläuterungen zu den Hamster-Mutex-Objekten.
Folgende Events werden unterstützt:
| <Eventname> | Bedeutung |
| evtHamster.IsIdle | Signalisiert, dass keine Prozesse im Hamster aktiv sind und der Hamster unbeschäftigt (idle) ist, siehe auch Hinweis. |
| evtHamster.StopScript | Signalisiert, dass ein Abbruch der Skript-Bearbeitung gefordert wird. |
| _main | Globales Ereignis, das von der Existenz des Hamsters kündet. |
| _mailin | Eine E-Mail wurde vom Remote-Server empfangen. |
| _mailout | Eine E-Mail mit externem Ziel wurde vom lokalen Server empfangen. |
| _mailinternal | Eine E-Mail mit internem Ziel wurde vom lokalen Server empfangen. |
| _newsout | Ein Artikel wurde vom lokalen Server empfangen. |
| _rasconnected | Eine RAS-Verbindung ist aufgebaut worden. |
| _rashangup | Eine RAS-Verbindung wurde getrennt. |
| _purge | Der Hamster putzt sich. |
Hinweis: Verbindungen zu den lokalen Servern werden nicht als aktiver Auftrag betrachtet.
Beispiele für die praktische Nutzung:
Perl:
use Win32::Event; # Pfad und Name des Hamsters: C:\Programme\Online\Hamster\hamster.exe $mutex = "mutexHamster.App.c__programme_online_hamster_hamster_exe"; $evtHamsterIsIdle = Win32::Event->open($mutex."evtHamster.IsIdle") or die "Zugriff auf Event fehlgeschlagen: $!\n"; # Start Hamster-Tasks $evtHamsterIsIdle->wait();
Delphi:
uses windows; var evtHamsterIsIdle: THandle; // Pfad und Name des Hamsters: C:\Programme\Online\Hamster\hamster.exe const Mutex = 'mutexHamster.App.c__programme_online_hamster_hamster_exe'; evtHamsterIsIdle := OpenEvent(SYNCHRONIZE, False, Mutex+'evtHamster.IsIdle'); // Start Hamster-Tasks WaitForSingleObject(evtHamsterIsIdle, INFINITE); CloseHandle(evtHamsterIsIdle);
Visual Basic Classic:
Private Const INFINITE = &HFFFF
Private Const SYNCHRONIZE = &H100000
Private Declare Function OpenEvent Lib "kernel32" Alias "OpenEventA" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal lpName As String) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
' Pfad und Name des Hamsters: C:\Programme\Online\Hamster\hamster.exe
Private Const Mutex ="mutexHamster.App.c__programme_online_hamster_hamster_exe"
Dim evtHamsterIsIdle As Long, res As Long
evtHamsterIsIdle = OpenEvent(SYNCHRONIZE, False, Mutex+"evtHamster.IsIdle")
' Start Hamster-Tasks
res = WaitForSingleObject(evtHamsterIsIdle, INFINITE)
res = CloseHandle(evtHamsterIsIdle)