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
huhu

gibt es eine möglichkeit ein fenster im hintergrund zu halten obwohl man es anklickt?

also minimiert soll es nicht sein nur das es im hintergrund bleibt obwohl man es anklickt.

finde mit google nichts was brauchbar ist...

danke für jede antwort

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

Ok also da ich nichts im internet gefunden habe

habe ich eine andere lösung gesucht und etwas gefunden der code ist nicht von mir aber sehr gut und ich verstehe fast alles bis auf eine sache...


Ich möchte auf ein Button klicken im Calculator zb auf die zahl 8 Button aber es klappt nicht hab auch die x und y Koordinaten richtig eingegeben aber es springt immer in ein Edit-Box rein vom Calculator...

glaube mein problem liegt hier in dieser zeile

ControlGet, chwnd, Hwnd,, Edit1, %HwndFenstername%

Weill ich weiss nicht für was das "Edit1" da ist

 

hier der ganze Code:

F2::  

HwndFenstername = Calculator
  ControlGet, chwnd, Hwnd,, Edit1, %HwndFenstername%
  PostClick2(271, 195, chwnd)
  ;msgbox, [%chwnd%]
  return

PostClick2(x, y, hwnd) {
  lParam := x & 0xFFFF | (y & 0xFFFF) << 16 
  PostMessage, 0x201, 1, %lParam%,, ahk_id %hwnd% ;WM_LBUTTONDOWN 
  PostMessage, 0x202, 0, %lParam%,, ahk_id %hwnd% ;WM_LBUTTONUP 
}

Hoffe ihr könnt mir helfen



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

ok weiss jetzt was Edit1 ist das ist das steuerelement für die Edit-Box... hab das jetzt ersätzt durch Button9

 

ControlGet, chwnd, Hwnd,, Button9, %HwndFenstername%

 

hab aber immer noch das problem das es denn button nicht anklickt man sieht nur das es den button markiert... wenigstens ein kleiner schritt in die richtige richtung -.-

 

weiss jemand wo der fehler liegt ?

F2::  

HwndFenstername = Calculator
  ControlGet, chwnd, Hwnd,, Button9, %HwndFenstername%
  PostClick2(269, 194, chwnd)
  ;msgbox, [%chwnd%]
  return

PostClick2(x, y, hwnd) {
  lParam := x & 0xFFFF | (y & 0xFFFF) << 16 
  PostMessage, 0x201, 1, %lParam%,, ahk_id %hwnd% ;WM_LBUTTONDOWN 
  PostMessage, 0x202, 0, %lParam%,, ahk_id %hwnd% ;WM_LBUTTONUP 
}


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

 ich bin echt verwirrt -.- komm nicht weiter

mhhh kann mir jemand ein beispiel geben für PostMessage das es auf irgend ein Button klickt mit irgend ein programm notepad oder paint usw,... ?

 

bitte



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

Die SendMessages für clicks sind in AHK schon Integriert.

Sie heißen da halt bloß ControlClick.

 

 

NA avoids marking the target window as active and avoids merging its input processing with that of the script, which may prevent physical movement of the mouse from interfering (but usually only when the target window is not active). However, this method might not work for all types of windows and controls

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

Die SendMessages für clicks sind in AHK schon Integriert.

Sie heißen da halt bloß ControlClick.

 

ne hab das mit ControlClick schon gestern probiert das fuktioniert nicht das braucht ein aktives fenster also es holt das inaktive fenster in den vordergrund

darum will ich es mit PostMessage versuchen wparam und lparam zu finden ist kein prob weill das mach ich mit spy++

nur ich weiss nicht wie ich PostMessage mache so das es irgend ein button anklickt.

 

darum hätte ich gerne ein beispiel für PostMessage das auf ein button klickt damit ich verstehe was ich falsch gemacht habe.



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

als hattest recht mit ControlClick funktioniert aber nicht bei jeder anwendung hab das jetzt probiert

 

ControlClick, x266 y191, Calculator,,,, NA

und es funktioniert aber ich hätte doch gerne ein PostMessage besipiel das auf ein butten klickt und das funktioniert weill ich werd das sicher brauchen für die anwendungen die nicht auf controlclick reagieren.

 

und nochmal vielen danke für deine antwort nnik



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

mit ControlClick komme ich jetzt nicht weiter muss PostMessage verwenden..... dachte mir schon das ich da nicht weiter komme  -.-

ein PostMessage beispiel das auf ein Button clickt würd mir weiterhelfen egal welches programm.

aber das hat jetzt keine eile ;)

 

guten rutsch ins neue jahr wünsch ich euch allen

 

bis morgen



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

mhh ok hab das jetzt hier doch mit ControlClick hinbekommen nur hab ich jetzt ein weiteres problem....  das scheint echt kein ende zu finden -.-

ControlClick, x721 y556, AHK_id 0x000509A4,,,, NA

und zwar ich weiss wie ich die handle suche mit spy++ und andere spy tools mein prob ist jetzt ich möchte mit AHK ein handle suchen nur ich schaf das nicht ich hab es mit 5 verschiedenen befehle versucht wie zb winget,.... aber ich bekomme immer nur das steuerelement ausgegeben was ich aber nicht will...

 

wie kann ich in ahk ein handle suchen ?

 

danke für jede hilfe



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

Du kannst auch das Steuerelement selber angeben:

zudem stehen in der Hilfe auch dazu Möglichkeiten:

 

If this parameter is blank, the target window's topmost control will be clicked (or the target window itself if it has no controls). Otherwise, one of the two modes below will be used.

Mode 1 (Position): Specify the X and Y coordinates relative to the target window's upper left corner. The X coordinate must precede the Y coordinate and there must be at least one space or tab between them. For example: X55 Y33. If there is a control at the specified coordinates, it will be sent the click-event at those exact coordinates. If there is no control, the target window itself will be sent the event (which might have no effect depending on the nature of the window). Note: In this mode, the X and Y option letters of the Options parameter are ignored.

Mode 2 (ClassNN or Text): Specify either ClassNN (the classname and instance number of the control) or the name/text of the control, both of which can be determined via Window Spy. When using name/text, the matching behavior is determined by SetTitleMatchMode.

By default, mode 2 takes precedence over mode 1. For example, in the unlikely event that there is a control whose text or ClassNN has the format "Xnnn Ynnn", it would be acted upon by Mode 2. To override this and use mode 1 unconditionally, specify the word Pos in Options as in the following example: ControlClick, x255 y152, WinTitle,,,, Pos.

To operate upon a control's HWND (window handle), leave this parameter blank and specify ahk_id %ControlHwnd% for the WinTitle parameter (this also works on hidden controls even when DetectHiddenWindows is Off) . The HWND of a control is typically retrieved via ControlGet Hwnd, MouseGetPos, or DllCall.


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

nein das fuktioniert leider auch nicht

ControlClick, x0 y0, Calculator,,,, Pos

hab das gestern bereits ausprobiert aber ging auch nicht es holt nur das fenster in denn vordergrund und weiter controclicks haben keine reaktion auch wenn SetControlDelay -1 gesetzt ist usw,...

 

ich hab echt alles durch glaub ich langsam habe über 26 firefox fenster offen haha XD

 

das einzige was funktioniert mit ControlClick ist das hier

ControlClick, x721 y556, AHK_id 0x000509A4,,,, NA

nur das hilft mir nicht so ganz weiter weill ich muss diese Handle jedesmal manuell suchen....,und da gibts mit AHK keine möglickkeit die Handle zu suchen und in eine variable abzulegen so das das automatiesiert wird und ich nicht manuell die handle suchen muss ?



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

Nun ja ich meinte ja auch nicht, dass du die Position verwenden solltest. (Mein Fehler)

 

Mode 2 (ClassNN or Text): Specify either ClassNN (the classname and instance number of the control) or the name/text of the control, both of which can be determined via Window Spy. When using name/text, the matching behavior is determined by SetTitleMatchMode.

By default, mode 2 takes precedence over mode 1. For example, in the unlikely event that there is a control whose text or ClassNN has the format "Xnnn Ynnn", it would be acted upon by Mode 2. To override this and use mode 1 unconditionally, specify the word Pos in Options as in the following example: ControlClick, x255 y152, WinTitle,,,, Pos.

To operate upon a control's HWND (window handle), leave this parameter blank and specify ahk_id %ControlHwnd% for the WinTitle parameter (this also works on hidden controls even when DetectHiddenWindows is Off) . The HWND of a control is typically retrieved via ControlGet HwndMouseGetPos, or DllCall.

Auf den teil kommt es an.

Da stehen z.B. Möglichkeiten um die HWND zu erhalten. 


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

mein prob ist ja eigentlich einfach ich brauch nur die handle also hwnd vom gesamten fenster aber ich schaf das nicht ich bekomme immer nur irgend ein hwnd oder handle von ein teil des fensters.... glaube ich mach was falsch das ist eigentlich einfach und ahk sollte das können ich bin nur zu sehr in der materie drinn das ich denn tllerrand nicht sehe....

 

ja mit ControlGet HwndMouseGetPos, or DllCall. hab ich alles durch lol aber ich bekomm irgendwie immer nur die hwnd von ein fenster teil nicht vom gesamten fenster...

also ich brauch nur ein befehl am besten ein kleines beispiel wie ich die handle bzw hwnd von ein "Gesamtes" fenster bekomme nicht nur ein teil von ein fenster....



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

haha ich glaube ich habe es jetzt..... doch nicht ganz -.-

ControlGet, OutputVar,Hwnd,,, Calculator
MsgBox, %OutputVar%


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

Ok also jetzt bekomme ich die Hwnd vom gesamten fenster aber nur solange das fenster keine weiteren hwnds hat lol was auch blöd ist weil es selten fenster gibt mit nur ein hwnd -.-

 

also zb mit Calculator geht das nicht weill da bekomme ich nicht die hwnd vom gesamten fenster sondern nur von irgend ein teil fenster...

und mit notepad bekomme ich die hwnd vom text editor teil da wo man alles schreibt im notepad,.... was auch blöd ist....

 

so sieht der code jetzt aus

#NoEnv 

F2::
DetectHiddenWindows On
DetectHiddenText On

SetTitleMatchMode 2
SetControlDelay -1

ControlGet, OutputVar,Hwnd,,, Untitled - Notepad
;MsgBox, %OutputVar%
ControlClick, x99 y37, AHK_id %OutputVar%,,,, NA