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.

 


 

Beispiel 4: Dynamischer Channel für einen Countdown in einer Info

 

Dieses Beispiel zeig ein Script, mit welchem Sie einen Countdown in Ihrem Laufband bzw. Pop-up anzeigen lassen können.

Hier Beispiele:

countdown_band countdown_popup

 


program ClientScript;

var

  DDiffInDays: Double;

 

  IHours: Integer;

  IMinutes: Integer;

  IPos: Integer;

  ISeconds: Integer;

 

  SCountdown: String;

  SDateTime: String;

  SHours: String;

  SInfo: String;

  SMinutes: String;

  SNewInfo: String;

  SSeconds: String;

begin

  // Abrufen des aktuellen Infotextes

  SInfo := InfoClientValue('$Info$');

  SNewInfo := '';

 

  // Schleife durch den Infotext und Ersetzen der Countdowns

  while (Length(SInfo) > 0) do

  begin

    // Suche nach dem nächsten Countdown

    IPos := Pos('[Countdown=', SInfo);

 

    // Wenn kein Countdown gefunden wurde, fügen Sie den Rest des Infotextes in den neuen Infotext ein

    if IPos = 0 then

    begin

      SNewInfo := SNewInfo + SInfo;

      SInfo := '';

    end

    else

    begin

      // Extrahieren der Countdown-Zeit

      SDateTime := Copy(SInfo, IPos + 11, 19);

      // Berechnen des Countdowns

      DDiffInDays := StrToDatetime(SDateTime) - Now;

      // Formatierung des Countdowns

      IHours := trunc(DDiffInDays * 24) mod 24;

      // Sicherstellen, dass die Countdown-Stunden nicht unter 0 gehen

      if IHours < 0 then

        IHours := 0;

        SHours := IntToStr(IHours);

      // Gegebenenfalls eine führende Null hinzufügen

      if Length(SHours) = 1 then

        SHours := '0' + SHours;

        IMinutes := trunc(DDiffInDays * 24 * 60) mod 60;

      // Sicherstellen, dass die Countdown-Minuten nicht unter 0 gehen

      if IMinutes < 0 then

        IMinutes := 0;

        SMinutes := IntToStr(IMinutes);

      // Gegebenenfalls eine führende Null hinzufügen

      if Length(SMinutes) = 1 then

        SMinutes := '0' + SMinutes;

        ISeconds := trunc(DDiffInDays * 24 * 60 * 60) mod 60;

      // Sicherstellen, dass die Countdown-Sekunden nicht unter 0 gehen

      if ISeconds < 0 then

        ISeconds := 0;

        SSeconds := IntToStr(ISeconds);

      // Gegebenenfalls eine führende Null hinzufügen

      if Length(SSeconds) = 1 then

        SSeconds := '0' + SSeconds;

        SCountdown := SHours + ':' + SMinutes + ':' + SSeconds;

 

      // Hinzufügen des Countdowns zum neuen Infotext

      if Copy(SInfo, IPos - 4, 4) = '<!--' then

      begin

        SNewInfo := SNewInfo + Copy(SInfo, 1, IPos + 34 - 1) + SCountdown;

        Delete(SInfo, 1, IPos + 42 - 1);

      end

      else

      begin

        SNewInfo := SNewInfo + Copy(SInfo, 1, IPos - 1) + '<!--[Countdown=' + SDateTime + ']-->' + SCountdown;

        Delete(SInfo, 1, IPos + 31 - 1);

      end;

    end;

  end;

 

  // Setzen Sie den neuen Infotext

  SetInfoText(SNewInfo);

  // Neustart der Info

  RestartInfo;

end.

 

Um jetzt den Countdown anzeigen zu können, fügen Sie in Ihrem Infoeditor den folgenden Text ein. Der Countdown zählt bis zu dem Zeitpunkt, welcher hier angegeben wird:


[Countdown=dd.mm.yyyy hh:ii:ss]

(dd=Tag mm=Monat yyyy= Jahr hh=Stunde ii=Minute ss=Sekunde)

 

Ein Beispiel dafür wäre: [Countdown=14.10.2024 17:00:00] Dieser Countdown zählt bis zum 14.10.2024 17 Uhr. Der Countdown hängt von der jeweiligen Computerzeit ab.