Navigation: Konzepte und Verfahren >

DDE-Kommunikation

Diese Seite drucken
Vorherige Seite Nächste Seite
Zurück zur Kapitelübersicht

Ein laufendes Skript ist auch von anderen Windows-Programmen erreichbar, und zwar mittels DDE (Dynamic Data Exchange). Hierzu gibt es unter der DDE-Adresse:

 

 Programm = clickEXE

 LinkTopic = clickEXE                (änderbar per [DDEName])

 LinkItem = L_DDE

 

ein Element, in das Texte (LinkPoke) oder Befehle (LinkExecute) gesandt werden können. Diese Adressierung wird in vielen Programmen zusammengefasst in clickEXE|clickEXE!L_DDE.

 

 

 

Kommt ein Befehl bzw. Kommando per DDE an, wird automatisch das Unterprogramm DDE_Text bzw. DDE_Befehl aufgerufen, falls es existiert. Der Text bzw. Befehl steht dann in der Variablen [DDE].

 

Neben den Befehlen, die per Skript bearbeitet werden können, gibt es noch die folgenden fest eingebauten DDE-Befehle:

 

BEENDENbricht das laufende Skript ab
VARIABLE Xermittelt den Inhalt der Variablen bzw., des Platzhalters X und legt ihn in L_DDE bereit. Wird also beispielsweise an click.EXE der Befehl Variable WinDir gesendet und dann per Request der Inhalt von L_DDE ausgelesen, ergibt sich das Windows-Verzeichnis. Eine weitere Möglichkeit besteht in der Berechnung einer Formel durch den Befehl Variable Rechne Formel.
AUFRUF Xruft das Unterprogramm X auf

 

Diese Befehle erreichen die zuletzt gestartete Instanz von click.EXE bzw. einer kompilierten EXE-Datei, sofern mehrere gleichzeitig laufen.

 

In einem solchen Fall wird automatisch das Unterprogramm DDE_Text bzw. DDE_Befehl aufgerufen, falls es existiert. Der Text bzw. Befehl steht dann in der Variablen [DDE].

 

 

Beispielskript:

 

***  Programm-Manager-Gruppen bzw. Startmenü-Einträge abfragen

DDE senden   (Programm: 'ProgMan', Topic: 'ProgMan', Item: 'ProgMan', Abfragen)

 

***  Ergebnis anzeigen

Meldung  "Folgende Programme-Untermenüs sind vorhanden:¶[DDE]" (Titel: 'Programmgruppen', 'OK')

 

Dieses Skript zeigt alle Programm-Manager-Gruppen bzw. Startmenü-Einträge an, die unter Windows installiert sind.

 

 

click.EXE-Programme aus anderen Anwendungen heraus steuern

Es ist demnach auch möglich, click.EXE-Programme (oder den cX-Editor selbst) per DDE fernzusteuern. Das folgende VBA-Skript funktioniert beispielsweise in Microsoft Excel® 2003. Hier wird das aktuell laufende (bzw. vorher gestartete) click.EXE-Programm abgefragt und danach beendet (der click.EXE-Editor beendet sich dabei nicht, nur das laufende Skript).

Über die eingebauten Befehle (s.o.) können Abfragen von Variablen direkt erfolgen. Es ist auch möglich, ein Skript-Unterprogramm aufzurufen, welches mit oder ohne Benutzerinteraktion abläuft und ggf. einen Ergebniswert in einer speziellen Variablen bereitstellt.

Soll ein spezielles Hilfsprogramm verwendet werden, sollte dieses eine andere Bezeichnung in LinkTopic eintragen, welche dann in VBA als 2. Parameter des DDEInitiate-Befehls angegeben werden kann. Hierdurch wird verhindert, dass eine falsche Hilfsanwendung angesprochen wird.

Auf diese Weise können also click.EXE-Programme in andere Anwendungen eingebunden werden, etwa Microsoft Office.

 

'** zuerst ggf. click.EXE-Hilfsanwendung starten

'Shell "MeinCXDDEServer.exe", vbMinimizedNoFocus

 

'** DDE-Verbindung zum click.EXE-Programm aufbauen

Kanal& = DDEInitiate("clickEXE", "clickEXE")

 

'** Platzhalter abfragen

DDEExecute Kanal, "Variable cX.AppVersion"

'DDEExecute Kanal, "Variable cX.Eingabedialog Bitte geben Sie einen Text ein"

 

'** ggf. Unterprogramm aufrufen

'DDEExecute Kanal, "Aufruf Test"

 

'** Ergebnis holen

Result = DDERequest(Kanal, "L_DDE")

 

'** Ergebnis anzeigen

MsgBox Result(1), vbInformation, "Ergebnis"

 

'** cX-Programm beenden

DDEExecute Kanal, "Beenden"

 

 


 

DDE senden

::Marke

 

 


cX-Webseite: http://www.clickexe.de