DdeExecute

DdeExecute führt ein Makro im Server aus.

bool = DdeExecute(hConv, ssCommand)
bool = DdeExecute(hConv, ssCommand, rsTimeout)

Returnwert

bool ist TRUE (1) wenn die Funktion erfolgreich war, und sonst FALSE (0).

Parameter

hConv

hConv ist die Kanalnummer (Handle).

ssCommand

ssCommand ist der Kommando-String, der vom Server ausgeführt werden soll. Bei den meisten Servern muss der String in eckige Klammern eingeschlossen werden z. B. DdeExecute(hConv, "[OPEN(\"c:/kennfeld.dif/")]")

rsTimeout

Legt die maximale Wartezeit in Millisekunden fest, die UniPlot auf eine Antwort der Serveranwendung wartet. Für eine asynchrone Ausführung muss dieser Parameter auf 0xFFFFFFFF gesetzt werden. Der Defaultwert ist 5000.

Beispiel

Das folgende Beispiel zeigt, wie man Excel zum Konvertieren von Dateien verwenden kann. Es wird eine Datei im DIF Format (Data Interchange Format) konvertiert und in einen UniPlot Editor geladen.

// HKEY_CURRENT_USER\Software\Classes\CLSID\{F0C8D974-51B6-11D0-BE90-008048AA0191}\LocalServer32
def FindUniPlot()
{
    RegConnect("HKEY_CURRENT_USER")
    b = RegOpen("Software\\Classes\\UniPlot.Application\\CLSID");
    s = RegGetValue("");
    RegOpen("Software\\Classes\\CLSID\\" + s + "\\LocalServer32")
    return RegGetValue("");
}


def FindApp(ssApp)
{
    RegConnect("HKEY_LOCAL_MACHINE")
    b = RegOpen("Software\\Classes\\" + ssApp + "\\CLSID");
    s = RegGetValue("");
    RegOpen("Software\\Classes\\CLSID\\" + s + "\\LocalServer32")
    return RegGetValue("");
}

def test_DdeExecute()
{
    s = FindApp("Excel.Application");
    if (s == "") {
        MessageBoxError("Excel not found");
        return;
    }
    system(s, SW_HIDE, 0);
    hConv = DdeInitiate("Excel", "System");
    DdeExecute(hConv, "[OPEN(\"" + GetRootDirectory() + "samples\\map-data.xls\")]")
    hconvTab = DdeInitiate("Excel", "map-data.xls");
    ssData = DdeRequest(hconvTab, "z1s1:z16384s255");
    ssData = strfindreplace(ssData, ",", ".");
    DdeExecute(hConv, "[CLOSE()]");
    DdeExecute(hConv, "[QUIT()]");
    DdeTerminateAll();

    hedit = EdCreate();
    EdSetText(hedit, ssData);
}

test_DdeExecute();

id-1484792