Jump to content

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

fenster im hintergrund halten



  • Please log in to reply
17 replies to this topic
Servan
  • Members
  • 108 posts
  • Last active: Mar 20 2015 02:03 AM
  • Joined: 08 Dec 2013

ok hab jetzt das problem gefunden

 

unter der hilfe für Controlget unter paramter Control steht folgendes

 

 

If this parameter is blank, the target window's topmost control will be used.

 

und da liegt mein prob mein code sieht so aus

ControlGet, OutputVar,Hwnd,,, Calculator

MsgBox, %OutputVar%

also das parameter steuerelemt habe ich leer gelassen damit der oberste Steuerelement des Fensters benutzt wird wie es unter der hilfe steht.... nur das tut es nicht komisch echt -.- glaube das ist ein fehler von Autohotkey oder irre ich mich jetzt ?

 

also das muss ein fehler sein und ich weiss auch nicht weiter wie ich das lösen soll das ich das  hwnd eines gesamten fensters bekomme damit ich das in eine variable übernehme....



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
✓  Best Answer

Wenn du direkt per Koordinaten Clicken willst solltest du WinGet benutzen.


Visit the new forum ahkscript.org.

http://ahkscript.org


Servan
  • Members
  • 108 posts
  • Last active: Mar 20 2015 02:03 AM
  • Joined: 08 Dec 2013

haha hab gerade die lösung gefunden mit winget und ControlGet gerade eben wie ich dein antwort lese ;)

 

Und ein GROßEN Dank an nnnik für deine Hilfe :)

Das war eine schwere geburt haha hab aber sehr viel dadurch gelernt glaube so an die 100 seiten info über AHK Befehle :)

Ach ja fals jemand eine einfache lösung hat um die Hwnd eines gesamten fenster auszugeben ohne das man das fenster aktiv haben muss dann bitte hier posten.

 

hier die lösung für alle die das selbe problem haben ....

#NoEnv 

;F2::
;DetectHiddenWindows On
;DetectHiddenText On

SetTitleMatchMode 2
SetControlDelay -1



;-----------------------------------------------------------------
;fenster muss nicht aktiv sein
;Funktioniert für fenster die keine unsichbare klone von sich haben weill dann eine falsche Hwnd ausgegebn wird die vom klon ansonsten fukntioniert es auch wenn mehrer Hwnds in ein fenster sind und es wird das hwnd vom "gesamten fenster ausgegeben"
;ich hab als beispiel Calculator genommen hab ein Englisches Betriebssystem also Calculator einfach löschen und den Fenstertitel eines Programmes reinschreiben

     WinGet, varHwnd,ID,Calculator,,,
     MsgBox %varHwnd%
;-----------------------------------------------------------------
;fenster muss nicht aktiv sein
;gibt die Hwnd eines "gesamten sichbaren fensters" auch dann wenn dieses fenster unsichtbare klone von sich hat aber wenn das fenster mehr als ein Hwnd hat dann bekommt man nicht die "Hwnd vom Gesamten fenster" sondern irgend eine Hwnd vom Fenster inhalt
;ist sehr oft bei pc-spiele die ein unsichbaren klon vom spiel client machen und so kann man dann trozdem die richtige Hwnd finden.

     ;ControlGet, varHwnd,Hwnd,,, fenstertitel vom spiel eingeben
     ;MsgBox, %varHwnd%
;-----------------------------------------------------------------
     ;und hier ein ControlClick die X und Y Koordinaten genau so eingeben wie bei ein MouseClick Befehl weill wir die Hwnd eines gesamten Fensters angegeben haben.

     ;ControlClick, x721 y556, AHK_id %varHwnd%,,,, NA
;-----------------------------------------------------------------
; fenster muss aktiv sein 
; Ermittelt die ID/HWND des aktiven gesamten Fensters
; Funktioniert nicht bei Fenster die ein unsichtbaren Klon haben sonst funktioniert es.
; PS: ganz oben 3 zeile das Semikolon (erstes Zeichen) löschen damit man diesen code hier erst aktiviert wenn man F2 drückt 

     ;id := WinExist("A")
     ;MsgBox %id%