WinSpy etc.

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

WinSpy etc.

15 Feb 2018, 09:28

Hallo,

hat noch jemand Versionen von "meinfensterguck" oder ähnlich , mit dem ich eine Button-ID auslesen kann. Windowspy liefert keine geeigneten Ergebnisse, egal welchen Button ich überfahre, es steht "HwndWrapper" im bereicht "Control under mouse position".

Vielen Dank.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: WinSpy etc.

15 Feb 2018, 10:29

Andere tools machen in der regel nur sinn um zusätzliche/andere infos abzufragen (zB bei namensgleichheiten, um weitere unterscheidungsmerkmale zu erhalten).
Wenn Winspy das so ausspuckt ändert ein anderes tool daran erstmal nichts. ACC Viewer und ControlSpy wären mögliche alternativen.
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: WinSpy etc.

16 Feb 2018, 02:54

also ich hab jetzt mit ACC Viewer die ID herausgefunden und Festgestellt, dass sie sich bei jedem Fenster anders ist. Ich muss also irgendwie aus der Bezeichnung die ID Herausfinden (1) und dann den Klick-Befehl auslösen (2)

folgenden Script habe ich jetzzt, den ich im Fenster mit einer Tastenkombination starte. Dieser funktioniert aber nicht... weder die Button-ID wird in der variable gespeichert noch wird der klick-befehl gesendet, wenn ich die ID manuell eintrage

Code: Select all

!1::
ControlGet, hwnd, Hwnd,,Drucken..., Ansicht - Warenausgang - WA18-000100
ControlClick ,,ahk_id %hwnd%,
Die Schaltfläche heisst "Drucken..." und das Fenster heisst "Ansicht - Warenausgang - WA18-000100", allerdings ist dieses Feld leer, wenn ich diese Schaltfläche markiere.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: WinSpy etc.

16 Feb 2018, 03:44

Code: Select all

!1::
   ControlGet, hwnd, Hwnd,,Drucken..., Ansicht - Warenausgang - WA18-000100
   MsgBox % hwnd
   ControlClick ,,ahk_id %hwnd%
   Return
Verstehe ich das richtig - du ermittelst a) die fenster-ID bereits erfolgreich via ControlGet, doch b) der Click funzt nicht??
BTW, benutzt du SetTitleMatchMode um eventuele varianzen beim fenstertitel zu handeln?
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: WinSpy etc.

16 Feb 2018, 04:27

BoBo wrote:

Code: Select all

!1::
   ControlGet, hwnd, Hwnd,,Drucken..., Ansicht - Warenausgang - WA18-000100
   MsgBox % hwnd
   ControlClick ,,ahk_id %hwnd%
   Return
Verstehe ich das richtig - du ermittelst a) die fenster-ID bereits erfolgreich via ControlGet, doch b) der Click funzt nicht??
BTW, benutzt du SetTitleMatchMode um eventuele varianzen beim fenstertitel zu handeln?

ERSTMAL bleibt der TitleMatchMode so, da das Fenster immer so heist. wird ggf. Später nochmal geändert, aber da muss erst herausfinden wieviel Varianz ich zulassen kann, um trotzdem sicher nur dieses Fenster anzusprechen.

nichts von beidem Funktioniert. Ich ahb zwei Tests gemacht:
1.den Script geöffnet, die Tastenkombination gedückt, in die Variablen vom Script geschaut: die Variable "hwnd" war leer.

2.mit ACC die hwnd ausgelesen, manuell zugewiesen und dann den Script (natürlich ohne ControlGet) gestartet, und er klickt trotzdem nicht auf den Button.

Problem könnte sein, dass der Button irgendwie nicht dem Fenster zugeordnet ist. Hier ein Screenshot vom ACC mit markierten Button.
drucken.JPG
drucken.JPG (40.63 KiB) Viewed 3694 times
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: WinSpy etc.

16 Feb 2018, 07:18

[Brainfart] Arbeitet der AHK befehl denn mit nem hex hwnd? [/Brainfart]
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: WinSpy etc.

16 Feb 2018, 07:31

BoBo wrote:[Brainfart] Arbeitet der AHK befehl denn mit nem hex hwnd? [/Brainfart]

Um ein Steuerelement via HWND (Windows Handle) anzusteuern, lässt man diesen Parameter leer und übergibt ahk_id %SteuerelementHwnd% als Fenstertitel-Parameter (funktioniert auch bei versteckten Steuerelementen, selbst wenn DetectHiddenWindows ausgeschaltet ist). Das HWND eines Steuerelements wird üblicherweise per ControlGet Hwnd, MouseGetPos oder DllCall abgerufen.

ist leider nicht wirklich beschrieben welcher es sein soll. was muss es denn sein? Dual? Dezimal? Octal? :D
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: WinSpy etc.

16 Feb 2018, 07:41

Folllast wrote:
BoBo wrote:[Brainfart] Arbeitet der AHK befehl denn mit nem hex hwnd? [/Brainfart]

Um ein Steuerelement via HWND (Windows Handle) anzusteuern, lässt man diesen Parameter leer und übergibt ahk_id %SteuerelementHwnd% als Fenstertitel-Parameter (funktioniert auch bei versteckten Steuerelementen, selbst wenn DetectHiddenWindows ausgeschaltet ist). Das HWND eines Steuerelements wird üblicherweise per ControlGet Hwnd, MouseGetPos oder DllCall abgerufen.

ist leider nicht wirklich beschrieben welcher es sein soll. was muss es denn sein? Dual? Dezimal? Octal? :D
Nun, nach etwas recherche scheint hex kein problem für AHK windows befehle zu sein (?)
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: WinSpy etc.

26 Feb 2018, 06:56

Ich weiß leider nicht wie ich es lösen soll.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: WinSpy etc.

26 Feb 2018, 07:18

Wenn du hier nur alle 14 tage aufschlägst ist man/frau aus dem thema rgendwie raus, und sich jedes mal neu einzulesen ist meh ... :yawn:

Der Button ist markierbar (das nehm ich mal als "abfragbar"). Erstes ziel dürfte sein, den focus auf den button zu bekommen. Worst case (aus meiner erfahrung), das fenster starten, abwarten bis fertig geladen. Anschließend von dem (den focus besitzenden) Anfangscontrol mittels multiblen tabs auf den gesuchten button navigieren und (nach evtl gegencheck) ControlClick. Sieht zwar blöd aus (und bedingt ein offenes programmfenster) doch seis drum.
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: WinSpy etc.

26 Feb 2018, 07:45

Vielen Dank für die Hilfe. So eine Brücke habe ich mir auch gebaut. Aber das ist ja nur ein Pflaster auf eine offene Wunde, ich möchte verstehen, warum AHK die Button-ID nicht auslesen kann bzw. den nicht ansteuern kann bzw. wo genau der Fehler bei der Ursprünglichen Methode mit dem HWND ist.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: WinSpy etc.

26 Feb 2018, 09:13

ich möchte verstehen, warum AHK die Button-ID nicht auslesen kann
Weil (d)eine application nicht nah genug zum windows/microsoft standard aufgebaut ist? Gibt genug davon Delphi/PowerBuilder/Java/... . Du bekommst hier den (standard)löffel zur glasnudelsuppe.
Suppe geht noch gut, glasnudeln nicht. Hätte dein programm mal besser auf buchstabennudeln gesetzt! Da kann aber der löffel nix dafür :lolno:
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: WinSpy etc.

26 Feb 2018, 10:32

Folllast wrote:... und er klickt trotzdem nicht auf den Button. ...
Ich habe gute Erfahrungen, mit Drücken von Knöpfen, mit folgendem Befehl gemacht. Ich nutze allerdings die ClassNN, statt die ahk_id.
Vielleicht funktioniert es auch mit der ahk_id.

Code: Select all

Control, Check,,, ahk_id 0x21082C
gähn ...
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: WinSpy etc.

26 Feb 2018, 11:26

Hat der bube eigentlich den SetTitleMatchMode versuchsweise mal auf 2 gesetzt? Nur mal so der form halber gefragt?
Obwohl der ACCV zeigt ja eh keinen fenstertitel an ..!?
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: WinSpy etc.

27 Feb 2018, 07:44

ja, der MatchCode wurde gleich zu begin auf 2 gesetzt.
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: WinSpy etc.

28 Feb 2018, 08:08

Hallo,

wie kann ich verhindern, dass bei "FileAppend" umlaute in Kauderwelsch verwandelt werden?
und vielleicht sogar, dass sie bei "FileRead" korrekt eingelesen werden.
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: WinSpy etc.

28 Feb 2018, 08:12

Codierung anfügen, like below

Code: Select all

Fileappend, %KleinkinderDiskriminierung%, C:\Lehrerempfehlung.txt, UTF-8
Last edited by divanebaba on 01 Mar 2018, 07:29, edited 1 time in total.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 20 guests