DDE oder COM mit autoIt ???

  • Hallo zusammen,

    ich würde gerne
    - mein Tischtelefon
    - mein PC
    - mein AutoIt
    miteinander verkuppeln :)

    In der Software (passend zum Telefon) steht das hier:

    Spoiler anzeigen


    TAPIGnome kann die Rufnummer von Anrufern via DDE an andere Windows-Anwendungen
    weitergeben. Tragen Sie dazu die notwendigen Daten Ihrer DDE-Server Anwendung unter der
    Registerkarte "DDE-Konversation" ein. TAPIGnome wird einen DDE-Poke an das Item der
    Serveranwendung mit der Rufnummer als String bei einem eingehenden Anruf senden. Geht die
    Verbindung wieder in den Ruhezustand, sendet TAPIGnome bei Wunsch einen konfigurierbaren
    String.
    Alternativ kann DDE-ExecuteMacro benutzt werden. Hierbei wird ein DDE-Execute Befehl mit dem
    String "Macro Prefix+Anrufernummer+Macro Sufix" an Ihre DDE-Serveranwendung
    gesendet. Die hier einzutragenden Daten sind wie beim Poke abhängig von Ihrer DDE-Serveranwendung.


    Ich habe schon AutoIt mit SQLite mit hervorragendem Ergebnis verbunden, da sollte ich doch auch das hier schaffen - ich brauche nur einen 'Startschubser' :)

    Kann mir jemand eine Vorlage oder eine GangRICHTUNG geben?

    Viele Grüße
    vielen Dank

    Carsten

  • Hallo Spider,

    Ja, doch, der Link direkt zwar nicht, aber im englischen Forum ist AutoIt und DDE mehrfach diskutiert worden.... Ist also direkt leider nicht möglich.....

    Aber es gibt ja mehrere Wege nach Rom.....

    Ich versuche gerade das Original-Programm zu verwenden und die Statusleiste dort auszulesen. Wie komme ich aber da ran, wenn das Programm nur als TrayIcon (bei der Uhr unten rechts) aktiv ist?

    Wenn es sichtbar ist, kann ich mit
    $text = WinGetText("TAPI", "")
    die Rufnummer aus der Zeile 'Anruf... xxxxxxx' herauslesen (wenn ein Anruf stattfindet).

    Aber wie mache ich das mit einem Fenster im Hintergrund?

    Der Befehl $text = WinGetClassList("TAPI", "") ergibt folgendes Ergebnis:

    TMemo
    TbsSkinStatusPanel
    TbsSkinMainMenuBar
    TbsSkinComboBox
    TbsCustomEdit
    TbsSkinStatusPanel
    TbsSkinButton
    TbsSkinButton
    TbsSkinButton
    TbsSkinButton

    Aber kann ich mit den einzelnen Klassen was anfangen?

    Vielen Dank
    Viele Grüße
    Carsten

    Nachtrag: Die Möglichkeit in Word/Excel mit DLL zu arbeiten habe ich gerade entdeckt (siehe Anhang). Kann ich das irgendwie nutzen?? Muss ich dazu die 'Schlüsselnamen' vom Softwarehersteller bekommen?

    • Offizieller Beitrag

    HI,

    kannst doch dies mal probieren:

    Spoiler anzeigen
    [autoit]

    #include<Systray.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $title = "XXX"
    ;Global $prcoess = "icqlite.exe"
    Global $prcoess = "winampa.exe"

    [/autoit] [autoit][/autoit] [autoit]

    ;clickSysTrayByTitle($title, "right")
    clickSysTrayByProcess($prcoess, "right")

    [/autoit] [autoit][/autoit] [autoit]

    Func clickSysTrayByTitle($winTitle, $click = "left", $times = 1)
    Local $a = _SysTrayIconTitles ()
    Local $p = MouseGetPos()
    For $i = 0 To UBound($a) - 1
    If $a[$i] = $winTitle Then
    $pos = _SysTrayIconPos ($i)
    MouseClick($click, $pos[0], $pos[1], $times, 1)
    ExitLoop
    EndIf
    Next
    MouseMove($p[0], $p[1], 1)
    EndFunc ;==>clickSysTrayByTitle

    [/autoit] [autoit][/autoit] [autoit]

    Func clickSysTrayByProcess($winProcess, $click = "left", $times = 1)
    Local $a = _SysTrayIconProcesses ()
    Local $p = MouseGetPos()
    For $i = 0 To UBound($a) - 1
    If $a[$i] = $winProcess Then
    $pos = _SysTrayIconPos ($i)
    MouseClick($click, $pos[0], $pos[1], $times, 1)
    ExitLoop
    EndIf
    Next
    MouseMove($p[0], $p[1], 1)
    EndFunc ;==>clickSysTrayByProcess

    [/autoit]

    So long,

    Mega

  • Hallo Mega,

    super - ich bin immer wieder erstaunt, was alles mit Autoit möglich ist.

    Und ich bin immer wieder froh, wenn ich was 'zum Laufen' bekomme, was nicht 'einfach so' funktioniert..... Ich musste ne Weile nach 'systray.au3' suchen :)

    (hier meine Fundstelle für andere die über AutoIt staunen möchten:
    http://www.autoitscript.com/forum/index.php?showtopic=13704&st=0 )

    Ich kann damit das TAPI-Programm im Systray ansteuern, aber über das Auslesen von Informationen habe ich nichts gefunden (siehe Anlage). Ich könnte damit natürlich das Fenster in den Vordergrund holen und dann die Infos erkennen - aber das hilft nicht wirklich..... eigentlich gar nicht!

    Gibt es vielleicht noch eine Möglichkeit Gui-Daten aus Fenster im Hintergrund zu lesen?

    Vielen Dank
    Viele Grüße
    Carsten

    Schon wieder ein Nachtrag...:
    In Anlage 2 habe ich das Fenster mal 'abgelichtet', ganz unten in der Statusleiste steht nach 'anruf' auch noch die Rufnummer (habe ich verborgen - oder will mich jemand anrufen?) - und genau DIE will ich in AutoIt haben.

  • ja, kann geschlossen werden, aber habe ich doch schon getan.....

    Nachtrag:
    Ok, Ok, ich habe den Status 'gelöst' gesetzt, jetzt weiß ich, dass man hier auch 'abschließen' kann.

    Gelöst + Abgeschlossen

    Viele Grüße
    Carsten

    Einmal editiert, zuletzt von Carsten (2. Februar 2007 um 15:49)