Problem beim Strg+x senden in Programm

  • Hallo,

    ich habe bekomme das Programm DUMO (http://kcsoftwares.com/?dumo) nicht zu greifen und kann auch keine Strg+X-Funktionen schicken, sieht jemand den Fehler?

    AutoIt (was bisher nicht funktionierte):

    WinWaitActive("DUMo", "", 3)

    WinActivate("DUMo", "")

    Send("^l")

    Send("^q")

    Send("!")

    Send ( "!{F4}")


    AutoIt Window Info:

    >>>> Window <<<<

    Title: DUMo v2.18.2.97

    Class: TMainDlg

    Position: 221, 123

    Size: 790, 576

    Style: 0x16CF0000

    ExStyle: 0x00010100

    Handle: 0x0015031C

    >>>> Control <<<<

    Class:

    Instance:

    ClassnameNN:

    Name:

    Advanced (Class):

    ID:

    Text:

    Position:

    Size:

    ControlClick Coords:

    Style:

    ExStyle:

    Handle:

    >>>> Mouse <<<<

    Position: 489, 156

    Cursor ID: 0

    Color: 0xFFFFFF

    >>>> StatusBar <<<<

    >>>> ToolsBar <<<<

    >>>> Visible Text <<<<

    Ignorieren

    Download

    Erneuern

    Software Update

    27 Gerät gefunden


    >>>> Hidden Text <<<<

    Gruß Hans

    • Offizieller Beitrag

    Benutze mal

    $hWnd = WinWaitActive('TITEL')

    ConsoleWrite('hWnd: ' & $hWnd & @CRLF)

    und vergleiche das erhaltene Handle mit den Angaben aus der Info. Ich vermute, dass du kein Handle erhältst, da es das Fenster mit dem abgefragten Titel gar nicht gibt (Abfrage: "DUMo", laut Info ist der Titel: "DUMo v2.18.2.97"). Eigentlich sollte das Fenster erkannt werden, wenn der Suchbegriff der Anfang des Titels ist. Evtl. existieren aber mehrere Fenster die damit anfangen?

    Versuchs mal mit dem korrekten Titel.

  • Hallo BugFix,

    vielen Dank für die schnelle Antwort.

    Leider erhalte ich nur Hexadezimale ausdrücke wie 0x000D08B0 oder 0x000F071A als Ergebnis, mit "DUMo" und mit "DUMo v2.18.2.97".

    Ich habe die auszuführende exe umbenannt, in andere Ordner verschoben und mit den Titelnamen variiert, ohne Ergebnis.

    Ich habe nur 1 Fenster, welches "DUMo" heißt.

    Hast du noch eine Idee wie ich das Fenster zu greifen bekomme?

    Viele Grüße

    Hans

    • Offizieller Beitrag

    Ich habe das mal getestet. Du kannst zwar das Fenster erkennen und auch aktivieren - aber es reagiert nicht auf Send.

    Die Anwendung ist in Delphi geschrieben und das ist bekannterweise automatisierungsfeindlich. Über die Controls kommst du auch nicht zum Ziel, denn es hat nur die folgenden:

    ! hControl hParent ID Classname ControlText

    > 0x000805D2 0x00100700 525778 TJvBitBtn DUMo PRO kaufen

    > 0x0009076A 0x00100700 591722 TJvBitBtn Ignorieren

    > 0x000A06E0 0x00100700 657120 TJvBitBtn Download

    > 0x000A060C 0x00100700 656908 TJvBitBtn Erneuern

    > 0x000B05EA 0x00100700 722410 TJvImgBtn Software Update

    > 0x000F05B8 0x00100700 984504 TStatusBar 42 Gerät gefunden

    > 0x000A05DE 0x00100700 656862 TPanel

    > 0x000C0760 0x00100700 788320 TListView

    > 0x000A02F6 0x000C0760 0 SysHeader32 DUMo v2.19.0.98

  • Hallo BugFix,

    vielen Dank für das Testen. Hast du das Fenster mit WinActivate("DUMo") erkannt und aktiviert?

    Wie kann ich das Programm dennoch über Datei->Beenden / Ctrl+q / dem X am Fenster das Programm ordentlich schließen. Beim Programmschließen läuft eine Prozedur, die ich benötige, daher kann ich nicht ProcessClose() verwenden.

    Wäre ein MouseClick() eine mögliche Lösung?

    Viele Grüße

    Hans

    • Offizieller Beitrag

    Hast du das Fenster mit WinActivate("DUMo") erkannt und aktiviert?

    Ja, das funktioniert.

    Wie kann ich das Programm dennoch über Datei->Beenden / Ctrl+q / dem X am Fenster das Programm ordentlich schließen.

    Dafür habe ich keine Möglichkeit gefunden. Das Fenster nimmt keine Send-Befehle entgegen.

    Wäre ein MouseClick() eine mögliche Lösung?

    Auch auf MouseClick reagiert das Fenster nicht. Vermutlich fängt der Ersteller des Programms das alles ab (verständlich, wenn man Automatisierung unterbinden möchte). Hast du die Free-Version? Evtl. reagiert die Pro-Version anders.