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.
WinSpy etc.
Moderator: jNizM
Re: WinSpy etc.
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.
Wenn Winspy das so ausspuckt ändert ein anderes tool daran erstmal nichts. ACC Viewer und ControlSpy wären mögliche alternativen.
Re: WinSpy etc.
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
Die Schaltfläche heisst "Drucken..." und das Fenster heisst "Ansicht - Warenausgang - WA18-000100", allerdings ist dieses Feld leer, wenn ich diese Schaltfläche markiere.
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%,
Re: WinSpy etc.
Code: Select all
!1::
ControlGet, hwnd, Hwnd,,Drucken..., Ansicht - Warenausgang - WA18-000100
MsgBox % hwnd
ControlClick ,,ahk_id %hwnd%
Return
BTW, benutzt du SetTitleMatchMode um eventuele varianzen beim fenstertitel zu handeln?
Re: WinSpy etc.
BoBo wrote:Verstehe ich das richtig - du ermittelst a) die fenster-ID bereits erfolgreich via ControlGet, doch b) der Click funzt nicht??Code: Select all
!1:: ControlGet, hwnd, Hwnd,,Drucken..., Ansicht - Warenausgang - WA18-000100 MsgBox % hwnd ControlClick ,,ahk_id %hwnd% Return
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.
Re: WinSpy etc.
[Brainfart] Arbeitet der AHK befehl denn mit nem hex hwnd? [/Brainfart]
Re: WinSpy etc.
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?
Re: WinSpy etc.
Nun, nach etwas recherche scheint hex kein problem für AHK windows befehle zu sein (?)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?
Re: WinSpy etc.
Ich weiß leider nicht wie ich es lösen soll.
Re: WinSpy etc.
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 ...
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.
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.
Re: WinSpy etc.
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.
Re: WinSpy etc.
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.ich möchte verstehen, warum AHK die Button-ID nicht auslesen kann
Suppe geht noch gut, glasnudeln nicht. Hätte dein programm mal besser auf buchstabennudeln gesetzt! Da kann aber der löffel nix dafür
- divanebaba
- Posts: 805
- Joined: 20 Dec 2016, 03:53
- Location: Diaspora
Re: WinSpy etc.
Ich habe gute Erfahrungen, mit Drücken von Knöpfen, mit folgendem Befehl gemacht. Ich nutze allerdings die ClassNN, statt die ahk_id.Folllast wrote:... und er klickt trotzdem nicht auf den Button. ...
Vielleicht funktioniert es auch mit der ahk_id.
Code: Select all
Control, Check,,, ahk_id 0x21082C
Einfach nur ein toller Typ.
Re: WinSpy etc.
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 ..!?
Obwohl der ACCV zeigt ja eh keinen fenstertitel an ..!?
Re: WinSpy etc.
ja, der MatchCode wurde gleich zu begin auf 2 gesetzt.
Re: WinSpy etc.
Hallo,
wie kann ich verhindern, dass bei "FileAppend" umlaute in Kauderwelsch verwandelt werden?
und vielleicht sogar, dass sie bei "FileRead" korrekt eingelesen werden.
wie kann ich verhindern, dass bei "FileAppend" umlaute in Kauderwelsch verwandelt werden?
und vielleicht sogar, dass sie bei "FileRead" korrekt eingelesen werden.
- divanebaba
- Posts: 805
- Joined: 20 Dec 2016, 03:53
- Location: Diaspora
Re: WinSpy etc.
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.
Einfach nur ein toller Typ.
Re: WinSpy etc.
Oder Codierung gleich global setzen via https://autohotkey.com/docs/commands/FileEncoding.htm
Who is online
Users browsing this forum: No registered users and 32 guests