fenster im hintergrund halten
Best Answer nnnik , 01 January 2014 - 11:42 PM
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
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
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 }
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
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.
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.
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
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
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
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.
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 ?
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 Hwnd, MouseGetPos, 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.
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 Hwnd, MouseGetPos, 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....
haha ich glaube ich habe es jetzt..... doch nicht ganz -.-
ControlGet, OutputVar,Hwnd,,, Calculator MsgBox, %OutputVar%
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