Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Wie Button identifizieren?



  • Please log in to reply
14 replies to this topic
julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

Hallo,

ich versuche, die Einstellungen eines Programms (Dasher) mit einer AHK-Datei an die jeweiligen Nutzeranforderungen anzupassen.

Dazu möchte ich in der Werkzeugleiste des Programms mit ControlClick auf eine Schaltfläche (Prefs) klicken, um an die darunter liegenden Optionen zu kommen.

Die Schaltfläche ist Teil des ToolbarWindow321, das habe ich herausgekriegt. ToolbarWindow321 enthält mehrere Schaltflächen und ich finde keinen Weg, diese zu identifizieren. Weder WindowSpy noch AU3_Spy zeigen irgendetwas an.

Hat jemand einen Tipp?

Julius

 



Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

Dasher ist ganz schön widerspenstig, aber ein einfaches

Send, !ee ; Alt+e und danach e

könnte tun, was du willst.

 

Mit allem anderen hatte ich auch keinen Erfolg.

Bliebe vielleicht auch noch der Befehl ImageSearch, um den Button als Grafik auf dem Bildschirm zu suchen, aber ich selber halte das für deine Anwendung nicht für zuverlässig genug.


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

Dasher ist ganz schön widerspenstig, aber ein einfaches

Send, !ee ; Alt+e und danach e

könnte tun, was du willst.

 

Mit allem anderen hatte ich auch keinen Erfolg.

Bliebe vielleicht auch noch der Befehl ImageSearch, um den Button als Grafik auf dem Bildschirm zu suchen, aber ich selber halte das für deine Anwendung nicht für zuverlässig genug.

Ja, das geht, löst aber leider nicht mein Problem:

Bei Dasher gibt es zwei Modi, den Direct Entry Mode - damit schreibt Dasher in andere Anwendungen (Word etc) und den Stand Alone Mode - das schreibt Dasher in die eigene Ausgabezeile oben am Bildschirm.

Zum Umschalten zwischen den beiden Modi muss man über die Prefernces mehrere Klicks ausführen und das wollte ich mit einem AHK-Script auf einen Klick reduzieren.

Blöderweise verschwindet im Direct Entry Mode die Menüzeile und es wird nur noch der Toolbar angezeigt. Ohne Menüzeile gibt es keinen Menüpunkt "Edit" mehr, den man ansteuern kann, ich müsste also einen Weg finden, das Icon "Prefs" anzuklicken, damit ich in die Einstellungen komme.

Trotzdem Danke!

(Vielleicht kann ich ja die dasher-Leute dazu bewegen, die Menüzeile in beiden Modi immer angezeigt zu lassen - das war in den älteren Versionen auch der Fall und wurde erst mit der Version 4.11 geändert)

 

Julius



Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

ok. Bei der 4.11 hat bei mir folgendes funktioniert:

#NoEnv
SetTitleMatchMode, 2

F12::
    ControlClick, ToolbarWindow321, Dasher,,,, NA x404 y21
Return

x/y ist die Position des Pref-Buttons relativ zur Toolbar.


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

ok. Bei der 4.11 hat bei mir folgendes funktioniert:

#NoEnv
SetTitleMatchMode, 2

F12::
    ControlClick, ToolbarWindow321, Dasher,,,, NA x404 y21
Return

x/y ist die Position des Pref-Buttons relativ zur Toolbar.

OK, aber die User haben evtl. unterschiedliche Fenstergrößen und dann klickt er wieder daneben.
In der Registry gibt es aber einen Schlüssel, in dem das Verhalten gesteuert wird:
HKEY_CURRENT_USER\Software\Inference Group\Dasher3, Schlüssel AppStyle, dessen Wert ist im standalone-Modus 0 und im direct entry mode 2. Könnte man nicht sowas verwenden oder ist das zu heikel? Wie greift man mit AHK auf die Regitry zu?



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Man kann die Registry durchaus mit AHK benutzen (RegRead + RegWrite), allerdings wird der Wert höchstwahrscheinlich nur beim Start ausgelesen, sodass eine Änderung während das Programm offen ist nichts bewirken wird.



julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

Man kann die Registry durchaus mit AHK benutzen (RegRead + RegWrite), allerdings wird der Wert höchstwahrscheinlich nur beim Start ausgelesen, sodass eine Änderung während das Programm offen ist nichts bewirken wird.

Das ist OK, da Dasher beim Wechsel zwischen den Modi ohnehin neu startet.

Ich hab RegRead mal ausprobiert und das hat mir den richtigen Wert zurückgegeben mit folgender Zeile:

RegRead, MeinWert, HKEY_CURRENT_USER, Software\Inference Group\Dasher3, AppStyle

 

Danach habe ich mein RegWrite so aufgebaut:
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Inference Group\Dasher3, AppStyle, MeinWert

 

Ist das so OK? Ich hab ein wenig Schiss, weil es das erste Mal ist, dass ich mit AHK in der Registry rumspiele und will mir nicht die kiste beim ersten Anlauf zerschiessen :shy:



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Ja, das passt so, nur muss MeinWert natürlich als Variable angegeben werden.

So sollte das passen:

RegRead, DasherMode, HKEY_CURRENT_USER, Software\Inference Group\Dasher3, AppStyle
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Inference Group\Dasher3, AppStyle, % !DasherMode * 2
WinClose, Dasher
Run, %PfadZuDasher%


julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

 

Ja, das passt so, nur muss MeinWert natürlich als Variable angegeben werden.

So sollte das passen:

RegRead, DasherMode, HKEY_CURRENT_USER, Software\Inference Group\Dasher3, AppStyle
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Inference Group\Dasher3, AppStyle, % !DasherMode * 2
WinClose, Dasher
Run, %PfadZuDasher%

Sorry, wen ich nochmals nachfrage: was bewirkt der Ausdruck % !DasherMode * 2 genau?
Dasher Mode ist der Name der Variablen, 2 ist der Wert. Und das ! und der * ?Was machen die?

(Als ich "Computer" gelernt habe, mussten wir unsere "Jobs" noch als Lochkartenstapel beim Operator abgeben. Später habe ich noch etwas MS-BASIC programmiert, aber just for fun. Ich bewege mich hier also auf dünnem Eis - oder habe wenigstens das Gefühl)



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012
✓  Best Answer

Das wechselt den Wert zwischen 0 und 2 durch. Das heißt, wenn DasherMode 2 ist, ist !DasherMode (invertiert) 0 und 0 * 2 (null mal zwei) ergibt null. Wenn DasherMode aber 0 ist, ist !DasherMode (invertiert) 1 und 1 * 2 (eins mal zwei) ergibt zwei.



julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

Das wechselt den Wert zwischen 0 und 2 durch. Das heißt, wenn DasherMode 2 ist, ist !DasherMode (invertiert) 0 und 0 * 2 (null mal zwei) ergibt null. Wenn DasherMode aber 0 ist, ist !DasherMode (invertiert) 1 und 1 * 2 (eins mal zwei) ergibt zwei.

Super, muss ich mir merken! Danke!



Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

OK, aber die User haben evtl. unterschiedliche Fenstergrößen und dann klickt er wieder daneben.

ich nehme an, du hast das NICHT ausprobiert, sondern Koordinaten gesehen und das dann ausgeschlossen, richtig? :)


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

ich nehme an, du hast das NICHT ausprobiert, sondern Koordinaten gesehen und das dann ausgeschlossen, richtig? :)

Ja :shy:



Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

Ja :shy:

Dann probier das vll doch mal ;) Das funktioniert, solange das Fenster existiert.

Auch wenn das Fenster auf das absolute Minimum verkleinert und der Button noch nicht mal sichtbar ist.

F12::ControlClick, ToolbarWindow321, Dasher,,,, NA x404 y21

All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


julius
  • Members
  • 100 posts
  • Last active: Oct 30 2015 05:39 PM
  • Joined: 27 Dec 2012

 

Dann probier das vll doch mal ;) Das funktioniert, solange das Fenster existiert.

Auch wenn das Fenster auf das absolute Minimum verkleinert und der Button noch nicht mal sichtbar ist.

F12::ControlClick, ToolbarWindow321, Dasher,,,, NA x404 y21

ja, mach ich. und gebe rückmeldung ;). Danke!