ToDo: Kontrolle

OLE-Schnittstelle für andere Programme

Allgemeine Funktionen

Task-/Auftrags-Funktionen

RAS-Funktionen

News-Funktionen

Sonstige Funktionen

Für die OLE-/COM-/DCOM-Schnittstelle stellt der Hamster ein Objekt mit dem Klassennamen „Hamster.App“ bereit.

Beispiele für die Nutzung:

Perl:

use Win32::OLE;
my $Hamster = Win32::OLE->new("Hamster.App");
print $Hamster->ControlGetInfo;
undef $Hamster;

Delphi:

uses comobj;
var Hamster: Variant;
Hamster := CreateOleObject( 'Hamster.App' );
writeln( Hamster.ControlGetInfo );
Hamster := Unassigned;

VBScript (Windows Script Host):

Set Hamster = Wscript.CreateObject( "Hamster.App" )
Wscript.Echo Hamster.ControlGetInfo
Wscript.DisconnectObject Hamster

Visual Basic Classic:

Dim Hamster as Object
Set Hamster = CreateObject( "Hamster.App" )
MsgBox Hamster.ControlGetInfo
Set Hamster = Nothing

Allgemeine Funktionen

ControlGetInfo: String

Liefert die Hamster-Version und den Pfad zurück.

ControlGetPath: String

Liefert den Hauptpfad zurück

ControlGetHscPath: String
ControlGetHsmPath: String
ControlGetLogsPath: String
ControlGetServerPath: String
ControlGetGroupsPath: String
ControlGetMailsPath: String
ControlGetNewsOutPath: String
ControlGetMailsOutPath: String
ControlGetNewsErrPath: String

Liefert den absoluten Pfad (d. h. inkl. Laufwerks- und Pfadangabe) für Skriptdateien („hsc“), Moduldateien („hsm“), Protokolldateien (Logs), Serververzeichnisse, Newsgruppenverzeichnisse, Mailverzeichnisse, ausgehende Artikel, ausgehende Mails, bzw. Newsfehlerverzeichnisse zurück.

ControlGetVersion: String

Liefert die Version zurück (z. B. „2.1.0.11“).

ControlSetLogin( <Identifier>: String; <Username>: String; <Password>: String )

Setzt temporär den Namen und das Passwort für eine DFÜ-Netzwerkverbindung. Der <Identifier> muss mit dem entsprechenden Namen des DFÜ-Netzwerkeintrages exakt übereinstimmen – inklusive Groß-/Kleinschreibung. Wird ein Fragezeichen für das Passwort verwendet, fragt der Hamster das Passwort erst bei Bedarf ab. Außerdem kann anstelle des Benutzernamen auch eine im Passwort-Menü definierte Variable verwendet werden, das Passwort ist dann als Leerstring anzugeben.

ControlMessage( <Msg>: Integer; <Param>: Integer ): Integer

Löst verschiedene Ereignisse im Hamster aus, die alternativ auch per Menü steuerbar sind.
<Msg> <Param> Wirkung
1 Zeit in ms bis Programmende
(100 – 32600 ms)
Hamster beenden (siehe Anmerkung 1)
2 0 = Zähler+Log, 1 = Zähler,
2 = Log, 3 = Fehlerliste
Setzt Zähler und Log-Anzeige zurück
3 0 = Stop, 1 = Start,
2 = Neustart, 3 = Status
Start/Stop lokaler NNTP-Server (siehe Anmerkung 2)
4 0 = Stop, 1 = Start,
2 = Neustart, 3 = Status
Start/Stop lokaler POP3-Server (siehe Anmerkung 2)
5 0 = Stop, 1 = Start,
2 = Neustart, 3 = Status
Start/Stop lokaler SMTP-Server (siehe Anmerkung 2)
6 0 = Verstecken, 1 = Anzeigen Anzeigen/Verstecken des Hauptfensters
7 0 = Verstecken, 1 = Anzeigen Anzeigen/Verstecken des Tray-Icons
8 (ignoriert) Menü: Online/Alle Aufträge beenden
9 0 = Test, 1 = Laden Konfiguration erneut laden (siehe Anmerkung 3)
10 (ignoriert) „IPAccess.hst“ erneut laden
11 0 = Stop, 1 = Start,
2 = Neustart, 3 = Status
Start/Stop lokaler Remote-Control-Server (siehe Anmerkung 2)
12 1 = Öffnen, 0 = Schließen,
2 = Status
Öffnet, schließt oder liefert den Status des Browsers für die Hamsterverzeichnisse (siehe Anmerkung 4)
13 1 = Öffnen, 0 = Schließen,
2 = Status
Öffnet, schließt oder liefert den Status des Skriptdialogs (siehe Anmerkung 4)
14 0 = Stop, 1 = Start,
2 = Neustart, 3 = Status
Start/Stop lokaler IMAP-Server (siehe Anmerkung 2)
15 1 = Öffnen, 0 = Schließen,
2 = Status
Öffnet, schließt oder liefert den Status des Killfilelogdialogs (siehe Anmerkung 4)
16 1 = Öffnen, 0 = Schließen,
2 = Status
Öffnet, schließt oder liefert den Status des Ladeauftragsdialogs (siehe Anmerkung 4)
17 1 = Öffnen, 0 = Schließen,
2 = Status
Öffnet, schließt oder liefert den Status des Mail-Killfilelog-Dialogs (siehe Anmerkung 4)

Anmerkung 1: Die Funktion ControlMessage(1,<Param>) ist ein Hack, da das COM-Modell eigentlich nicht vorsieht, dass ein Client einen Server beendet, welchen er nicht selbst aktiviert hat. Die Variable <Param> hat den Gültigkeitsbereich 100–32600 ms. Innerhalb dieser Verzögerungszeit muss der aufrufende Client seine Verbindung zum Server gelöst haben. Für Werte kleiner 100 ms werden automatisch 100 ms angenommen.

Anmerkung 2 zu <Msg> = 3–5, 11, 14: Die Rückgabewerte für <Param> = „3“ sind 0 = aus und 1 = an.

Anmerkung 3 zu <Msg> = 9: <Param> = „1“ führt nur dann zum Laden der Konfiguration, wenn alle Konfigurationsfenster geschlossen sind (Rückgabewert der Funktion: 1/True). Andernfalls wird nichts ausgeführt (Rückgabewert: 0/False). Bei <Param> = „0“ (Test) wird grundsätzlich nichts ausgeführt, sondern nur die entsprechenden Rückgabewerte ermittelt. Damit kann getestet werden, ob das Laden gegebenenfalls möglich ist (d. h. die Konfiguration geschlossen ist).

Anmerkung 4 zu <Msg> = 12, 13, 15–17: <Param> = „2“ ermöglicht die Abfrage, ob das jeweilige Fenster offen (Rückgabewert 1 = True) oder geschlossen ist (Rückgabewert 0 = False). Bei <Msg> 15–17 und <Param> = „1“ wartet „ControlMessage“, bis der Dialog wieder geschlossen wird.

Übrige Rückgabewerte:
0OK; Befehl ausgeführt
1Fehler; Befehl fehlerhaft
2Unbekannter Parameter
3GPF, Fließkommafehler

ControlGetStatus( <Status>: Integer; <Parameter>: Integer ): Integer

Liefert Auskünfte über den momentanen Zustand des Hamsters.

ControlGetStatus(1,n) meldet, ob der lokale Server „n“ gestartet ist.

Für n gilt:
1Lokaler NNTP-Server
2Lokaler POP3-Server
3Lokaler SMTP-Server
4Lokaler IMAP-Server
5Lokaler ReCo-Server

Rückgabewert ist 1, wenn der Server aktiv ist.

ControlGetStatus(2,n) meldet die Anzahl der am lokalen Server „n“ offenen Verbindungen.

Für n gilt:
1Lokaler NNTP-Server
2Lokaler POP3-Server
3Lokaler SMTP-Server
4Lokaler IMAP-Server
5Lokaler ReCo-Server

Rückgabewert ist die Anzahl der offenen Verbindungen.

ControlGetStatus(3,n) gibt Auskunft über angekommene/wartende News & Mails.

Für n gilt:
1Neue Artikel
2Geladene Artikel
3Bekannte (History-gefilterte) Artikel
4Gelöschte Artikel
5Zu versendende Artikel
6Neue E-Mails
7Zu versendende E-Mails
8Per Message-ID nachgeladene Artikel
9Anzahl der Fehlerzeilen im Log
10Anzahl der Warnungszeilen im Log

Der Rückgabewert enthält die entsprechenden Anzahl der Mails oder Artikel.

ControlGetStatus(4,n) gibt Auskunft über die momentan aktiven Loglevel.

Für n gilt:
1Loglevel für Anzeige
2Loglevel für Speichern in Log-Datei

Vordefinierte Werte:

LOGID_ERROR  = 0x8000
LOGID_WARN   = 0x4000
LOGID_SYSTEM = 0x0800
LOGID_INFO   = 0x0080
LOGID_DETAIL = 0x0040
LOGID_DEBUG  = 0x0008
LOGID_STATUS = 0x0004

Der Rückgabewert enthält „OR“-verknüpft das oder die aktiven Loglevel.

ControlRunScript( <Scriptname>: String; <Scriptparameter>: String; <Warten>: Bool ): Integer

Startet ein hs2-Skript. Der Parameter <Warten> legt fest, ob auf das Ende des auszuführenden Skriptes gewartet werden soll. Das aufgerufene Skript kann die übergebenen Parameter mit den Funktionen paramstr und paramcount auswerten. Der Rückgabewert ist noch unbenutzt. Siehe hierzu auch die Erläuterungen zu dem hs2-Befehl RunScript

Hinweis: Aktivitäten des OLE-Servers wirken sich direkt auf die Reaktionsgeschwindigkeit des Hamsters (besonders des Hauptfensters) aus. Bei <Warten> = „true“ sind daher während der Skriptausführung keine Menüeingaben o. ä. möglich. Nach Möglichkeit sollte diese Option mit „false“ benutzt werden.

ControlAddLog( <String>: String; <X>: Integer )

Fügt einen Text in das Log ein. <X> kennzeichnet den Typ der Eintragung:
1Debug
2Detail
3Info
4System
5Warning
6Error
7Status, d. h. Eintrag im Statusfenster „Aufträge (Threads)“

ControlChangePassword( <AccountName>: String; <OldPassWord>: String; <NewPassWord>: String ): Integer

Ändert das Passwort für einen lokalen Benutzer.

Rückgabewert:
0Fehler im alten Passwort
1Passwort geändert
2Fehler beim Ändern

Task-/Auftrags-Funktionen:

ControlIsIdle: Bool

Liefert TRUE (=wahr) zurück, wenn der Hamster unbeschäftigt ist. Aktive Skripte und Verbindungen mit den lokalen Servern werden hierbei nicht berücksichtigt.

ControlWaitIdle( <WaitTimeout>: Integer ): Bool

Die Funktion ControlWaitIdle wartet, bis entweder das Timeout erreicht ist, oder kein Auftrag mehr im Hamster aktiv ist. Wird 0 oder, sofern definiert, „HAM_WAITIDLE_INFINITE“ für das Timeout verwendet, kehrt die Funktion nur dann zurück, wenn kein Auftrag im Hamster mehr aktiv ist. Die Verbindungen mit den lokalen Servern werden hierbei nicht berücksichtigt.

HAM_WAITIDLE_INFINITE = 0

ControlThreadCount: Integer

Liefert die Anzahl der aktiven Aufträge zurück. Die Aufträge für die lokalen Server werden hierbei nicht berücksichtigt.

ControlFlush: Integer

Speichert alle ungesicherten Daten (z. B. History) auf die Festplatte. Dies ist besonders nach dem Import von Artikeln zu empfehlen.

ControlRunPurge( <PurgeOptions>: Integer ): Integer

Startet einen Auftrag zum Aufräumen der Hamsterdaten. Der Parameter <PurgeOptions> legt fest, was aufzuräumen ist. Er ist bit-orientiert und kann durch logisches ODER gebildet werden, so dass man mit einem einzigen Befehl eine beliebige Kombination von Aufräumaufträgen starten kann (Bit0=1=Artikel, Bit1=2=News-History-Einträge, Bit2=4=Killfile-Protokoll, Bit3=8=Mail-History-Einträge):

HAM_PURGEOPT_DONEWS     = 0x01
HAM_PURGEOPT_DOHISTORY  = 0x02
HAM_PURGEOPT_DOKILLS    = 0x04
HAM_PURGEOPT_DOMHISTORY = 0x08
HAM_PURGEOPT_MAILINLOG  = 0x10
HAM_PURGEOPT_MAILOUTLOG = 0x20
HAM_PURGEOPT_NEWSOUTLOG = 0x40
HAM_PURGEOPT_RASDIALLOG = 0x80
HAM_PURGEOPT_DOALL      = 0xFF

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunPurgeGroup( <GroupName>: String ): Integer

Mit dieser Funktion kann man das Aufräumen auf eine einzelne Gruppe beschränken.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunRebuildHistory: Integer

Startet das Erneuern der History-Dateien („.\Groups\Hist*.dat“). Diese Funktion sollte aus Sicherheitsgründen nur benutzt werden, wenn der Hamster ansonsten unbeschäftigt ist (siehe Funktion ControlWaitIdle) und außerdem gerade keine Mails eingehen (lokale Server deaktivieren).

ControlRunRebuildGlobalLists( <Options>: Integer ): Integer

Erneuert die globalen Listen (das heißt z. B. erneuert die Liste der Gruppenbeschreibungen). Der Parameter <Options> wird zur Zeit nicht benutzt, sollte aber sicherheitshalber mit Null belegt werden.

ControlRunMail( <ServerList>: String ): Integer

Startet einen Auftrag zum Mailaustausch für die im Parameter <ServerList> angegebenen SMTP- und POP3-Server. Ist der Parameter leer, werden alle verfügbaren Server gestartet, ansonsten müssen die Server in der Form „Servername1,Port1;Servername2,Port2; …“ angegeben werden.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunFetchMail( <Server>: String; <Port>: String; <Benutzer>: String; <Passwort>: String; <DestUser>: String ): Integer

Startet einen Auftrag zum Abholen der E-Mails bei einem POP3-Server. Für <Benutzer> kann auch eine im Passwort-Menü definierte Variable verwendet werden, <Passwort> bleibt dann leer (in den Beispielen: „$7“). Für <DestUser> kann ein lokaler Benutzer angegeben werden, welcher die E-Mails erhalten soll, ansonsten wird der in den POP3-Server-Einstellungen festgelegte Benutzer genommen. Zusätzlich zum lokalen Benutzer kann, durch ein Komma getrennt, auch ein Abschnitt in der Mailfilter-Datei „Mailfilt.hst“ angegeben werden, andernfalls wird der in den POP3-Server-Einstellungen festgelegte Abschnitt genommen.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunSendMail( <Server>: String; <Port>: String; <FromSelection>: String ): Integer

Startet einen Auftrag zum Senden der E-Mails zu einem SMTP-Server. Enthält der Parameter <FromSelection> eine Auswahl, das heißt, ist er nicht leer, werden nur E-Mails versendet, deren „!MAIL FROM:“-Header dem Regulären Ausdruck in diesem Parameter entspricht (siehe auch die FAQ „Hamster und Reguläre Ausdrücke“).

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunSendMailAuth( <Server>: String; <Port>: String; <Benutzer>: String; <Passwort>: String; <FromSelection>: String ): Integer

Startet einen Auftrag zum Senden der E-Mails zu einem SMTP-Server unter Benutzung des SMTP-AUTH-Verfahrens. Für <Benutzer> kann auch eine im Passwort-Menü definierte Variable verwendet werden, <Passwort> bleibt dann leer (im Beispiel: „$42“). Enthält der Parameter <FromSelection> eine Auswahl, das heißt, ist er nicht leer, werden nur E-Mails versendet, deren „!MAIL FROM:“-Header dem Regulären Ausdruck in diesem Parameter entspricht (siehe auch die FAQ „Hamster und Reguläre Ausdrücke“).

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunFetchMailTLS( <Server>: String;, <Port>: String;, <Benutzer>: String;, <Passwort>: String;, <Destuser>: String; <SSLMode>: Integer; <SSLVerify>: Integer; <SSLCaFile>: String ): Integer

Startet einen Auftrag zum Abholen der E-Mails bei einem POP3-Server. Für <Benutzer> kann auch eine im Passwort-Menü definierte Variable verwendet werden, <Passwort> bleibt dann leer. Für <Destuser> kann ein lokaler Benutzer angegeben werden, welcher die E-Mail erhalten soll, ansonsten wird der im Menü „Einstellungen“ konfigurierte Benutzer verwendet. Zusätzlich zum lokalen Benutzer kann, durch ein Komma getrennt, auch ein Abschnitt in der Mailfilter-Datei „Mailfilt.hst“ angegeben werden, bei fehlender Angabe wird auch hier wieder auf das Menü „Einstellungen“ zugegriffen.

Hinweis: Um SSL in Verbindung mit dem Hamster nutzen zu können, werden zwei zusätzliche DLL-Dateien benötigt; mehr dazu siehe in der SSL-FAQ.

Der Parameter <SSLMode> gibt an, ob und wie SSL/TLS verwendet wird:
0SSL/TLS abgeschaltet
1SSL/TLS auf separatem Port (sPOP3/POP3s)
3SSL/TLS, wenn möglich
4SSL/TLS wird erzwungen

Der Parameter <SSLVerify> regelt die Überprüfung der fremden Server-Zertifikate:
0Zertifikatsüberprüfung abgeschaltet
1Zertifikatsüberprüfung, falls Zertifikat vorgelegt
2Zertifikatsüberprüfung immer
3Zertifikatsüberprüfung immer und Vergleich des Serverzertifikats mit lokaler Kopie

Mit <SSLCaFile> kann eine Datei zur Zertifikatsüberprüfung angegeben werden. Dabei wird der Standard-Wert (Menü „Einstellungen“ → „Grundeinstellungen“ → „SSL“ → „Datei mit Zertifikaten zwecks Überprüfung“) überschrieben.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunSendMailTLS( <Server>: String; <Port>: String; <From-Select>: String; <SSLMode>: Integer; <SSLVerify>: Integer; <SSLCaFile>: String ): Integer

Startet einen Auftrag zum Senden der E-Mails zu einem SMTP-Server. Ist der Parameter <From-Select> nicht leer, werden nur E-Mails versendet, deren „!MAIL FROM:“-Header dem Regulären Ausdruck in diesem Parameter entspricht (siehe auch die FAQ „Hamster und Reguläre Ausdrücke“).

Hinweis: Um SSL in Verbindung mit dem Hamster nutzen zu können, werden zwei zusätzliche DLL-Dateien benötigt; mehr dazu siehe in der SSL-FAQ.

Der Parameter <SSLMode> gibt an, ob und wie SSL/TLS verwendet wird:
0SSL/TLS abgeschaltet
1SSL/TLS auf separatem Port (sPOP3/POP3s)
3SSL/TLS, wenn möglich
4SSL/TLS wird erzwungen

Der Parameter <SSLVerify> regelt die Überprüfung der fremden Server-Zertifikate:
0Zertifikatsüberprüfung abgeschaltet
1Zertifikatsüberprüfung, falls Zertifikat vorgelegt
2Zertifikatsüberprüfung immer
3Zertifikatsüberprüfung immer und Vergleich des Serverzertifikats mit lokaler Kopie

Mit <SSLCaFile> kann eine Datei zur Zertifikatsüberprüfung angegeben werden. Dabei wird der Standard-Wert (Menü „Einstellungen“ → „Grundeinstellungen“ → „SSL“ → „Datei mit Zertifikaten zwecks Überprüfung“) überschrieben.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunSendMailAuthTLS( <Server>: String; <Port>: String; <Benutzer>: String; <Passwort>: String; <From-Select>: String; <SSLMode>: Integer; <SSLVerify>: Integer; <SSLCaFile>: String ): Integer

Startet einen Auftrag zum Senden der E-Mails zu einem SMTP-Server unter Benutzung des SMTP-Auth-Verfahrens. Für <Benutzer> kann auch eine im Passwort-Menü definierte Variable verwendet werden, <Passwort> bleibt dann leer. Ist der Parameter <From-Select> nicht leer, werden nur E-Mails versendet, deren „!MAIL FROM:“-Header dem Regulären Ausdruck in diesem Parameter entspricht (siehe auch die FAQ „Hamster und Reguläre Ausdrücke“).

Hinweis: Um SSL in Verbindung mit dem Hamster nutzen zu können, werden zwei zusätzliche DLL-Dateien benötigt; mehr dazu siehe in der SSL-FAQ.

Der Parameter <SSLMode> gibt an, ob und wie SSL/TLS verwendet wird:
0SSL/TLS abgeschaltet
1SSL/TLS auf separatem Port (sPOP3/POP3s)
3SSL/TLS, wenn möglich
4SSL/TLS wird erzwungen

Der Parameter <SSLVerify> regelt die Überprüfung der fremden Server-Zertifikate:
0Zertifikatsüberprüfung abgeschaltet
1Zertifikatsüberprüfung, falls Zertifikat vorgelegt
2Zertifikatsüberprüfung immer
3Zertifikatsüberprüfung immer und Vergleich des Serverzertifikats mit lokaler Kopie

Mit <SSLCaFile> kann eine Datei zur Zertifikatsüberprüfung angegeben werden. Dabei wird der Standard-Wert (Menü „Einstellungen“ → „Grundeinstellungen“ → „SSL“ → „Datei mit Zertifikaten zwecks Überprüfung“) überschrieben.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlNewMail ( <EnvelopeFrom>: String; <EnvelopeTo>: String; <Mailtext>: String ): Integer

Mit dieser Funktion wird eine neue E-Mail erstellt. Als <EnvelopeFrom> muss die E-Mail-Adresse des Absenders bzw. der Name des Accounts angegeben werden. <EnvelopeTo> muss die E-Mail-Adresse bzw. den Accountnamen des Empfängers enthalten, es können mehrere Empfänger, jeder mit Semikolon getrennt, angegeben werden. <Mailtext> muss die komplette E-Mail, also mit Mailheadern und Body entsprechend RFC2881/RFC2882, in einer Variablen enthalten.

Achtung: Wer diesen Befehl nutzt, sollte sein Skript gründlich lokal austesten, bevor er eine E-Mail ins Internet versendet.

Rückgabewert: 1, wenn die E-Mail ordnungsgemäß gespeichert werden konnte, andernfalls 0.

ControlRunNewsPost( <ServerList>: String ): Integer

Startet einen Auftrag zum Versenden von Artikeln an einen oder mehrere Newsserver. Ist die Serverliste leer, werden alle verfügbaren Newsserver verwendet, ansonsten müssen die Server in der Form „Servername1,Port1;Servername2,Port2; …“ angegeben werden. Ab Hamster-Version 1.3.19 sollte diese Funktion nicht mehr verwendet werden. Sie wurde durch die Funktionsgruppe „Newsjobs*“ ersetzt.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

ControlRunNewsPull( <ServerList>: String ): Integer

Startet einen Auftrag zum Abholen von Artikeln bei einem oder mehreren Newsservern. Ist die Serverliste leer, werden alle verfügbaren Newsserver verwendet, ansonsten müssen die Server in der Form „Servername1,Port1;Servername2,Port2; …“ angegeben werden. Ab Hamster-Version 1.3.19 sollte diese Funktion nicht mehr verwendet werden. Sie wurde durch die Funktionsgruppe „Newsjobs*“ ersetzt.

Rückgabewert:
1OK/gestartet
<>1nicht gestartet

NewsJobsClear: Integer

Löscht die Jobliste.

NewsJobsPullDef( <ServerList>: String ): Integer

Fügt die Ladeaufträge für Artikel automatisch der Jobliste zu, welche mit den in der Serverliste angegebenen Servern verknüpft sind. Ist die Serverliste leer, werden alle verfügbaren Newsserver verwendet, ansonsten müssen die Server in der Form „Servername1,Port1;Servername2,Port2; …“ angegeben werden.

Rückgabewert: Anzahl der hinzugefügten Pull-Jobs.

NewsJobsPostDef( <ServerList>: String ): Integer

Fügt die Sendeaufträge für Artikel automatisch der Jobliste zu, welche mit den in der Serverliste angegebenen Servern verknüpft sind. Ist die Serverliste leer, werden alle verfügbaren Newsserver verwendet, ansonsten müssen die Server in der Form „Servername1,Port1;Servername2,Port2; …“ angegeben werden.

Rückgabewert: Anzahl der hinzugefügten Post-Jobs.

NewsJobsPull( <Servername>: String; <REGroupSelect>: String ): Integer

Fügt einzelne Ladeaufträge für Artikel der Jobliste zu, welche mit dem angegebenen Server und den zu der Gruppenselektion passenden Gruppen verknüpft sind. Ist die Gruppenselektion leer, werden alle für den angegebenen Server verfügbaren Gruppen verwendet. (Siehe auch die FAQ „Hamster und Reguläre Ausdrücke“.)

Rückgabewert: Anzahl der hinzugefügten Pull-Jobs.

NewsJobsPost( <Servername>: String; <REGroupSelect>: String; <REMessageSelect>: String ): Integer

Fügt einzelne Sendeaufträge für Artikel der Jobliste zu, welche mit dem angegebenen Server und den zu der Gruppenselektion passenden Gruppen verknüpft sind. Ist die Gruppenselektion leer, werden alle verfügbaren Newsgruppen verwendet. Der Reguläre Ausdruck in <REMessageSelect> kann zur erweiterten Auswahl verwendet werden: Nur wenn die dort angegebene RegExp auf den Header des Artikels zutrifft, wird er auch versandt (siehe auch die FAQ „Hamster und Reguläre Ausdrücke“).

Rückgabewert: Anzahl der hinzugefügten Post-Jobs.

NewsJobsFeed( <Server>: String; <REGroupSelect>: String ): Integer

Fügt einzelne Aufträge zum Austausch von Artikeln mit anderen Servern der Jobliste zu, welche mit dem Server <Server> und den in <REGroupSelect> angegebenen Gruppen realisierbar sind. Ist die Gruppenselektion leer, werden alle verfügbaren Gruppen verwendet, andernfalls nur solche, die zum Regulären Ausdruck in <REGroupSelect> passen (siehe auch die FAQ „Hamster und Reguläre Ausdrücke“).

Achtung! Diese Funktion ist nur für den Artikelaustausch von Servern untereinander bestimmt und nicht für den gewöhnlichen Artikelaustausch mit den Providern geeignet. Es wird bei diesem Befehl die Funktionalität des IHAVE-Kommando (RFC 977) verwendet.

Rückgabewert:
<0Fehler
>=0Anzahl der hinzugefügten Newsjobs

NewsJobsStart( <ServerList>: String ): Integer

Startet die Abarbeitung der Jobliste für die in der Serverliste angegebenen Server. Wenn die Serverliste leer ist, werden alle in der Serverliste eingetragenen Server für die Abarbeitung der Jobliste herangezogen, ansonsten müssen die Server in der Form „Servername1,Port1;Servername2,Port2; …“ angegeben werden.

Rückgabewert: Anzahl der gestarteten Threads.

ControlNewsJobsGetCounter: Integer

Liefert die Anzahl in der Auftragsliste vorhandenen Einträge.

ControlNewsJobsGetServer( <Index>: Integer ): String

Liefert den Servernamen eines Eintrages der Auftragsliste.

ControlNewsJobsGetParam( <Index> : Integer ): String

Liefert den Parameter eines Eintrages der Auftragsliste. Der Parameter ist vom Typ des Eintrages abhängig.

ControlNewsJobsGetType( <Index> : Integer ): Integer

Liefert den Typ des Eintrages.

Rückgabewert: Jobtyp:

JOBTYPE_INVALID  = 0
JOBTYPE_SRVINFOS = 1
JOBTYPE_NEWSPOST = 2
JOBTYPE_GETBYMID = 3
JOBTYPE_NEWSPULL = 4
JOBTYPE_NEWSFEED = 5

ControlNewsJobsGetPriority( <Index> :Integer ): Integer

Liefert die Priorität eines Eintrages der Auftragsliste zurück.

Standardrückgabewert für die jeweiligen Typen (s. „ControlNewsJobsGetType“):
JOBPRIO_SRVINFOSMaxInt-1 (2147483646)
JOBPRIO_NEWSPOSTMaxInt-2 (2147483645)
JOBPRIO_GETBYMIDMaxInt-3 (2147483644)
JOBTYPE_NEWSPULLPriorität entspricht der Anzahl der Artikel in der Gruppe
JOBPRIO_NEWSFEEDMaxInt-4 (2147483643)

ControlNewsJobsSetPriority( <Index>: Integer; <Priority>: Integer ): Integer

Setzt die Priorität für einen Eintrag in der Auftragsliste.

Vorgesehene Werte für <Priority> (vgl. „ControlNewsJobsGetType“) :
JOBPRIO_SRVINFOSMaxInt-1 (2147483646)
JOBPRIO_NEWSPOSTMaxInt-2 (2147483645)
JOBPRIO_GETBYMIDMaxInt-3 (2147483644)
JOBTYPE_NEWSPULLPriorität entspricht der Anzahl der Artikel in der Gruppe
JOBPRIO_NEWSFEEDMaxInt-4 (2147483643)

ControlNewsJobsAdd( <Server>: String; <Type>: Integer; <Parameter>: String; <Priority>: Integer ): Integer

Fügt der Auftragsliste einen Eintrag hinzu. Zu <Type> siehe „ControlNewsJobsGetType“.

Vorgesehene Werte für <Priority>:
JOBPRIO_SRVINFOSMaxInt-1 (2147483646)
JOBPRIO_NEWSPOSTMaxInt-2 (2147483645)
JOBPRIO_GETBYMIDMaxInt-3 (2147483644)
JOBTYPE_NEWSPULLPriorität entspricht der Anzahl der Artikel in der Gruppe
JOBPRIO_NEWSFEEDMaxInt-4 (2147483643)

ControlNewsJobsDelete( <Index> )

Löscht einen einzelnen Job an der Position <Index> aus der Jobliste.

Rückgabewert: 0

RAS-Funktionen:

RasDial( <ConnectionID>: String; <Username>: String; <Password>: String ): Bool

Stellt eine DFÜ-Netzwerkverbindung mit dem DFÜ-Namen <ConnectionID> her. Der Name muss einem Eintrag im Telefonbuch des DFÜ-Netzwerkes exakt entsprechen. Sind <Username> und <Password> leer, werden die Voreinstellungen aus den lokalen Einstellungen des Hamsters bzw. die zuletzt per „ControlSetLogin“ gesetzten Einstellungen verwendet.

Wurde die Verbindung erfolgreich hergestellt, wird „TRUE“, andernfalls „FALSE“ zurückgeliefert.

RasHangup

Schließt die aktuelle DFÜ-Netzwerkverbindung.

RasIsConnected: Bool

Falls eine DFÜ-Netzwerkverbindung besteht, wird „TRUE“, andernfalls „FALSE“ zurückgeliefert.

RasLastError: Integer

Liefert den (letzten) Fehlerstatus des DFÜ-Netzwerkes zurück.

RasGetConnection: String

Liefert den Namen der DFÜ-Verbindung zurück.

RasGetIP: String

Liefert die IP-Adresse der DFÜ-Verbindung zurück.

RasListEntries: String

Liefert die Namen aller zur Verfügung stehenden DFÜ-Verbindungen zurück.

News-Funktionen

NewsGrpCount: Integer

Liefert die Anzahl der im Hamster verfügbaren Newsgruppen zurück.

NewsGrpName( <GroupIndex>: Integer ): String

Liefert den Namen einer Newsgruppe zu Ihrem Index zurück.

Hinweis: Die Zählung der Indizes beginnt bei Null und endet mit NewsGrpCount-1.

NewsGrpIndex( <GroupName>: String ): Integer

Liefert den Index einer Newsgruppe oder -1 bei einer unbekannten Newsgruppe zurück.

Hinweis: Die Zählung der Indizes beginnt bei Null und endet mit NewsGrpCount-1.

NewsGrpOpen( <GroupName>: String ): Integer

Öffnet eine Newsgruppe. Das zurückgelieferte Handle dient dann dem weiteren Zugriff auf die geöffnete Gruppe. Trat ein Fehler beim Öffnen der Newsgruppe auf, wird ein negativer Wert zurückgeliefert.

Hinweis: Newsgruppen müssen im Skript immer explizit geschlossen werden (mit „NewsGrpClose“), da das Skriptende oder das Schließen des Hamsterobjektes die Gruppe nicht automatisch schließen und somit ein Speicherleck entsteht.

NewsGrpClose( <GroupHandle>: Integer )

Schließt eine Newsgruppe. <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

Hinweis: Newsgruppen müssen im Skript immer explizit geschlossen werden, da das Skriptende oder das Schließen des Hamsterobjektes die Gruppe nicht automatisch schließen und somit ein Speicherleck entsteht.

ControlAddGroup ( <GroupName>: String ): Integer

Legt eine neue lokale Gruppe mit dem Namen <GroupName> an.

Rückgabewert:
1OK/angelegt
-1nicht gestartet

ControlDelGroup ( <Groupname>: String )

Löscht eine Gruppe mit dem Namen <GroupName> und alle möglicherweise vorhandenen Pulls für diese Gruppe.

Rückgabewert:
1OK/gelöscht
-1nicht gelöscht

ControlAddPull ( <Server>: String; <GroupName>: String ): Integer

Legt einen neuen Ladeauftrag an. Falls die Gruppe vorher noch nicht existierte, wird sie automatisch angelegt.

Rückgabewert:
1OK/angelegt
-1nicht gestartet

ControlDelPull ( <Server>: String; <GroupName>: String ): Integer

Löscht einen Ladeauftrag.

Rückgabewert:
1OK/gelöscht
-1nicht gelöscht

NewsGrpXOver( <GroupHandle>: Integer; <Anfang>: Integer; <Ende>: Integer ): String

Der Befehl gibt aus einer Gruppe den XOver der Artikel von <Anfang> bis <Ende> zurück. Die Gruppe ist die dem <GroupHandle> zugeordnete. Dieser <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

Der XOver beinhaltet (in der gegebenen Reihenfolge):

ArtikelNummer

Subject

From

Datum

Message-ID

References

Artsize

Lines

X-Ref

X-Hamster-Info

Der Trenner zwischen diesen ist #9 (Tab).

CR (#10), LF (#13) und bereits vorhandene Tabs (#9) werden jeweils durch ein Leerzeichen (#32) ersetzt.

NewsArtCount( <GroupHandle>: Integer ): Integer

Liefert die Anzahl der Artikel in einer Gruppe zurück. <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

NewsArtNoMin( <GroupHandle>: Integer ): Integer

Liefert die niedrigste noch vorhandene Artikelnummer zurück. <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

NewsArtNoMax( <GroupHandle>: Integer ): Integer

Liefert die höchste bislang vorhandene Artikelnummer zurück. <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

NewsArtText( <GroupHandle>: Integer; <Artikelnummer>: Integer ): String

Liefert den Artikeltext inklusive Header zu der gewünschten Artikelnummer zurück. Ist der Rückgabe-String leer, so ist der Artikel nicht vorhanden. <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

NewsArtTextExport( <GroupHandle>: Integer; <Artikelnummer>: Integer ): String

Liefert den Artikeltext inklusive Header zu der gewünschten Artikelnummer im Exportformat zurück. Das Exportformat bewirkt, dass noch eine Zusatzzeile mit einigen wenigen Informationen aus dem normalen Header dem Artikel vorangestellt wird. Das entspricht dem MBox-Format. Ist der Rückgabe-String leer, so ist der Artikel nicht vorhanden. <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

NewsArtXOver( <GroupHandle>: Integer; <Artikelnummer>: Integer ): String

Der Befehl gibt den XOver des Artikels mit der <Artikelnummer> zurück aus der Gruppe, die dem <GroupHandle> zugeordnet ist. Dieser <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

Dieser beinhaltet (in der gegebenen Reihenfolge):

ArtikelNummer

Subject

From

Datum

Message-ID

References

Artsize

Lines

X-Ref

X-Hamster-Info

Der Trenner zwischen diesen ist #9 (Tab).

CR (#10), LF (#13) und bereits vorhandene Tabs (#9) werden jeweils durch ein Leerzeichen (#32) ersetzt.

NewsGrpNameByHandle( <GroupHandle>: Integer ): String

Gibt den Namen der angegebene Newsgruppe, die dem <GroupHandle> entspricht. (Der <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.)

NewsGrpInformation( <GroupHandle>: Integer ): String

Diese Funktion gibt Informationen über die durch den <GroupHandle> selektierte Newsgruppe zurück. Dieser <GroupHandle> ist der vorher durch „NewsGrpOpen“ zurückgelieferte Wert.

Die Ausgabe ist wie ein „XOver“ codiert (CR [#10], LF [#13] und Tabs [#9] werden jeweils durch ein Leerzeichen (#32) ersetzt; jeder Wert ist mit #9 [Tab] getrennt).

Diese Informationen werden (in der aufgeführten Reihenfolge) zurückgegeben:

Description

pull.limit

purge.articles.keepdays

postserver

type

pullserver

GroupName

NewsScoreListFor( <GroupName>: String ): String

Liefert die Scoreliste für eine Gruppe zurück

NewsScoreTest( <GroupName>: String; <ArtText>: String; var <MatchLog>: String ): Integer

Liefert den Scorewert für einen Artikel zurück, den er in der bezeichneten Gruppe mit den aktuellen Einstellungen im Scorefile erhalten würde. Die Variable <MatchLog> enthält anschließend alle auf den Artikel zutreffenden Zeilen aus dem Scorefile.

NewsLocateMID( <Message-ID>: String; var <Groupname>: String; var <ArticleNo>: Integer ): Bool

Liefert „TRUE“ zurück, wenn ein Artikel mit der angegebenen Message-ID in der History vorhanden ist. Der Gruppenname und die Artikelnummer innerhalb der Gruppe werden in die Variablen <Groupname> und <ArticleNo> geschrieben.

NewsLocateMID2( <Message-ID>: String; var <Groupname>: Variant; var <ArticleNo>: Variant ): Bool

Liefert TRUE zurück, wenn ein Artikel mit der angegebenen Message-ID in der History vorhanden ist. Der Gruppenname und die Artikelnummer innerhalb der Gruppe werden in die Variablen <Groupname> und <ArticleNo> geschrieben.

Spezialausfertigung zur Verwendung im WSH/VBS!

NewsDeleteByMID( <Message-ID>: String ): Bool

Löscht den Artikel mit der angegebenen Message-ID. Liefert bei erfolgreichem Löschen „TRUE“ zurück.

NewsImport( <ArticleText>: String; <OverrideGroups>: String; <IgnoreHistory>: Bool; <MarkNoArchive>: Bool ): Bool

Importiert den Artikel in den Hamster und liefert im Erfolgsfalle „TRUE“ zurück. Der Artikeltext im Parameter <ArticleText> muss aus einem Headerblock, einer Leerzeile und dem Textbody bestehen. Im Headerblock müssen mindestens der „Date“-, der „From“- und der „Subject“-Header enthalten sein. Der Newsgroups-Header ist dann nötig, wenn der Parameter <OverrideGroups> leer ist. Dieser Parameter erlaubt es, statt der eigentlichen Zielgruppe(n) eine beliebige Gruppe als Ziel für den Artikel festzulegen.

Ist die Gruppe unbekannt, wird der Artikel in der dafür zuständigen internen Gruppe gespeichert. Ist der Parameter <IgnoreHistory> „TRUE“, wird der Artikel auch dann importiert, wenn er bereits der History bekannt ist.

Ist der Parameter <MarkNoArchive> „TRUE“, wird der Artikel im Header „X-Hamster-Info“ mit „NoArchive=1“ gekennzeichnet.

Nach dem Importieren der Artikel empfiehlt es sich, die Funktion „ControlFlush“ zum Sichern der Daten auf die Festplatte aufzurufen.

Sonstige Funktionen

ControlGetProcessIdentifier: String

Liefert den Mutexstring des aktuellen Hamsters zurück.

XCounter( <Nummer>: Integer ): Integer

Liefert den Inhalt der Fußzeilenvariablen <Nummer> zurück.

ClearXCounter( <von_Nummer>: Integer; <bis_Nummer>: Integer ): Integer

Löscht den Inhalt der Fußzeilenvariablen von <von_Nummer> bis zu <bis_Nummer>.

SetXCounter( <Nummer>: Integer; <Wert>: Integer ): Integer

Verändert den Inhalt der Fußzeilenvariablen <Nummer> zu <Wert>.

DecXCounter(<Nummer>: Integer; <Wert>: Integer): Integer

Verringert Inhalt der Fußzeilenvariablen <Nummer> um <Wert>.

IncXCounter( <Nummer>: Integer; <Wert>: Integer ): Integer

Erhöht den Inhalt der Fußzeilenvariablen <Nummer> um <Wert>.

ControlRotatelog

Ein neues Logfile wird angelegt.

hs2AsyncCommand( <Command>: String )

Aufruf von Skriptbefehlen, die nicht als OLE-Befehl verfügbar sind. Ein direkter Rückwert der aufgerufenen hs2-Funktion ist nicht möglich.

DecodeMIMEHeaderString( <Text>: String; <Charset>: String ): String

Liefert die dekodierte Version einer gemäß MIME base64- oder quoted-printable-kodierten Zeichenkette zurück. Die Variable <Charset> liefert, falls vorhanden, den Zeichensatz zurück, mit dem der String kodiert war. Der Rückgabewert enthält nach erfolgreicher Dekodierung den 8-Bit-Zeichencode an Stelle der ehemals MIME-kodierten 7-Bit-Zeichenkette. Die Bedeutung der zurückgegebenen Zeichenkette ist von der Variable <Charset> abhängig und muss nicht mit dem Windows-Zeichensatz übereinstimmen.

DecodeBase64( <Text>: String ): String

Decodiert base64-kodierte Texte.

DecodeQP( <Text>: String ): String

Decodiert quoted-printable-kodierte Texte.