Beispiele zu Dynamischen Channels

<< Klicken um Inhaltsverzeichnis aufzurufen >>

Navigation:  Channels > Dynamische Channels >

Beispiele zu Dynamischen Channels

 

Beispiel 1: Dynamischer Channel für laufende Anwendungen

 

Dieses Beispiel zeigt, wie man alle Benutzer adressieren kann, welche momentan eine bestimme Anwendung verwenden (in diesem Beispiel: Notepad). Die Prozessliste wird hierbei mit dem eingetragenen Prozessnamen überprüft und identifiziert.

 


program ChannelScript;
var
// Deklaration der Variablen
Res: Boolean;
// wird fuer die Definition der Parameter und fuer das Resultat
// der Live-Abfrage verwendet
SType,SValue,SResult: String;
begin
// Setze den Typ der Abfrage
SType := 'diProcessRuns';
// Setze den Wert der Abfrage
SValue := 'notepad.exe';
// Fuehre die Abfrage aus und speichere das Resultat
SResult := DICV(SType,SValue);
// Ueberpruefe, ob das Resultat mit der gewuenschten Kondition uebereinstimmt
Res := SResult = '1';
// Wenn die gewuenschte Kondition uebereinstimmt, dann
If Res = True then begin
// editiere die Nachricht
SetInfoText('Notepad laeuft momentan auf ihrem System');
// Zeige die Nachricht an
StartInfo;
end;
end.

 


 

Beispiel 2: Dynamischer Channel für eine Website / Anwendungstitel

 

Dieses Beispiel zeigt, wie man mit einem Dynamischen Channel den Titel einer Anwendung bzw. eines Fensters überprüfen kann. In diesem Beispiel wird die Nachricht so lange angezeigt, wie auch der Titel des Fensters bzw. der Anwenung vorhanden ist. Zusätzlich wird die Nachricht erst dann gestoppt, wenn die Nachricht bereits angezeigt wurde, aber die Konditionen nicht mehr übereinstimmen.

 


program ChannelScript;
var
// Deklaration der Variablen
Res: Boolean;
// wird fuer die Definition der Parameter und fuer das Resultat der LiveAbfrage verwendet
SType,SValue,SResult: String;
begin
// Setze den Typ der Abfrage
SType := 'diTitleExists';
// Setze den Wert der Abfrage, diTitelExists erlaubt die Verwendung von Wildcards
// jeder Titel einer Anwendung / eines Fensters das uebereinstimmt
SValue := '*das*soziale*netzwerk*';
// fuehre die Abfrage aus und speichere das Resultat
SResult := DICV(SType,SValue);
// Ueberpruefe, ob das Resultat mit der gewuenschten Kondition uebereinstimmt
Res := SResult = '1';
// wenn die Info aktuell / bereits angezeigt wurde aber die Konditionen false sind,
// dann stoppe die Info
If ((InfoRan = true) OR (InfoRuns = true)) and (Res = false) then
StopInfo
else
// falls die gewuenschte Kondition uebereinstimmt
If Res = True then begin
// editiere die Nachricht
SetInfoText('Verwendung: *das*soziale*netzwerk* verstoesst gegen die Arbeitsrichtlinien. Bitte beenden Sie die Anwendung.');
// Steuere die Anzeige der Nachricht, die Nachricht wird so lange angezeigt,bis der
// Benutzer die Anwendung schließt
RestartInfo;
end;
end.

 


 

Beispiel 3: Einen Response von einem Dynamischen Channel senden

 

In diesem Beispiel verwenden wir einen Dynamischen Channel um zu überprüfen, ob ein bestimmter Eintrag in der Konfigurationsdatei Infoclient.ini vorhanden ist. Der Benutzer wird hierbei über den laufenden Monitoring-Prozess benachrichtigt und das Ergebnis des Monitoring-Prozesses wird als response zum Infoserver zurück gesendet. Der Monitorung-Prozess soll nur einen statischen Wert zurück liefern, deshalb sollte dieser nur ein mal ausgeführt werden. Entweder wählt man den Typ "Statisch" bei einem Dynamischen Channel aus oder es wird im Channelscript so eingestellt (Wie in diesem Beispiel).

 


program ChannelScript;

var

// Deklaration der Variablen

Res: Boolean;

// wird fuer die Definition der Parameter und fuer das Resultat der LiveAbfrage verwendet

SType,SValue,SResult,FileName,SectionItem: String;

begin

// Anfangskondition: Die Nachricht wurde noch nicht angezeigt

If ((InfoRan = false) AND (InfoRuns = false)) Then begin

// Setze den Typ der Abfrage

SType := 'diInifileValue';

// Setze den Pfad und den Dateinamen

FileName := 'C:\Program Files\Cordaware\Infoband\Infoclient.ini';

// Setze die Sektion [General] und den Eintrag Serverlist fuer die Abfrage

SectionItem := 'General=Serverlist';

// Verbinde FileName und SectionItem fuer einen gueltigen Abfragewert

SValue := FileName + ';' + SectionItem;

// Fuehre die Abfrage aus

// Die Abfrage holt sich den Wert aus dem Eintrag "Serverlist" in der [General] Sektion

// wenn der Eintrag nicht vorhanden ist oder keinen Wert besitzt, dann ist das Resultat ein leerer String

// wenn der Eintrag vorhanden ist und einen Wert besitzt, dann ist das Resultat der Wert

SResult := DICV(SType,SValue);

// Das Resultat der Abfrage wird als Response im Spaltenname 'Serverlist' eingetragen

SendResponse(SResult,'Serverlist');

// editiere die Nachricht

SetInfoText('Monitoring wird durchgefuehrt - bitte haben Sie Geduld');

// Benachrichtige den Benutzer, InfoRuns wird zu TRUE gesetzt <-Vorkondition!!!

StartInfo;

end;

end.