Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 01:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



ControlClick ohne Fokus

Discussion on ControlClick ohne Fokus within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1

 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,494
Received Thanks: 1,769
ControlClick ohne Fokus

Hey,

gibt es einen Weg, ControlClick für ein Fenster außerhalb des Bildschirms zu benutzen, ohne dass ich den Fokus von meinem aktuellen Fenster verliere? Ich möchte es mehrmals pro Sekunde benutzen, und das Verlieren des Fokus vom Fenster, das ich gerade im Vordergrund hab, stört sehr.

Ich konnte in Google nur diese Lösung finden, jedoch flackert es da etwas und verliert auch für wenige ms den Fokus, was ebenfalls ziemlich stört.

PHP Code:
$activeWindow WinGetHandle("")
_PostMessage_Click()
WinActivate($activeWindow
PostMessage hab ich auch versucht, jedoch mit selbem Ergebnis
Moneypulation is offline  
Old 07/29/2015, 19:23   #2
 
mlukac89's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 473
Received Thanks: 104
try this

Code:
#RequireAdmin

$win = '' ; name of a window

If WinExists($win) Then
    WinActivate($win) ; activates window if exists or use WinWaitActive()
Else
    MsgBox(48, "Error", "Window not founded")
EndIf

While 1
    Sleep(100)

    ControlSend($win, "", "", "{3}") ; sending number 3 to window
    Sleep(1000) ; pause

WEnd
mlukac89 is offline  
Thanks
1 User
Old 07/29/2015, 19:25   #3
 
elite*gold: 0
Join Date: Mar 2010
Posts: 360
Received Thanks: 132
Code:
#RequireAdmin
#include "PostMessage.au3"
#include <WinAPI.au3>

Dim $hwnd = WinGetHandle("BlueStacks App Player")


While true
   _PostMessage_Click($hWnd,910 , 734, "left")
   Sleep(5000)
WEnd
Wenn das nicht geht, dann kannst du keine background-clicks mit Autoit machen. Das Programm wertet dann die Flags von postmessage(USER32.dll) aus. Du müsstest dir einen eigenen Kernel/Keyboard Driver schreiben oder die Keyboard Routine vom Prozess hooken und umschreiben.
Daifoku is offline  
Thanks
1 User
Old 07/29/2015, 19:30   #4

 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,494
Received Thanks: 1,769
Quote:
Originally Posted by mlukac89 View Post
try this

Code:
#RequireAdmin

$win = '' ; name of a window

If WinExists($win) Then
    WinActivate($win) ; activates window if exists or use WinWaitActive()
Else
    MsgBox(48, "Error", "Window not founded")
EndIf

While 1
    Sleep(100)

    ControlSend($win, "", "", "{3}") ; sending number 3 to window
    Sleep(1000) ; pause

WEnd
Thanks but I don't need ControlSend and ControlClick, as I said, makes me lose the focus from the window I'm currently on
Moneypulation is offline  
Old 07/29/2015, 20:19   #5
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Was genau willst du den erreichen? Vielleicht kann man den ControlClick ja anders bewerkstelligen und ganz darauf verzichten.
alpines is offline  
Thanks
1 User
Old 07/29/2015, 21:01   #6

 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,494
Received Thanks: 1,769
Quote:
Originally Posted by alpines View Post
Was genau willst du den erreichen? Vielleicht kann man den ControlClick ja anders bewerkstelligen und ganz darauf verzichten.
Ich will meinen Pixelbot background machen. Ich habe schon einen Weg gefunden, wie ich Screenshots vom Fenster kriege, ohne dass man es sehen muss, jedoch kann ich eben nicht ein Klick an das Fenster senden, ohne dass ich den Fokus verliere. Und mein Pixelbot klickt manchmal 3-4 mal pro Sekunde, was dann ziemlich stört
Moneypulation is offline  
Old 07/29/2015, 21:06   #7
 
elite*gold: 0
Join Date: Mar 2010
Posts: 360
Received Thanks: 132
Quote:
Originally Posted by Moneypulation View Post
Ich will meinen Pixelbot background machen. Ich habe schon einen Weg gefunden, wie ich Screenshots vom Fenster kriege, ohne dass man es sehen muss, jedoch kann ich eben nicht ein Klick an das Fenster senden, ohne dass ich den Fokus verliere. Und mein Pixelbot klickt manchmal 3-4 mal pro Sekunde, was dann ziemlich stört
Lösung habe ich doch bereits hier rein geschrieben ? Schau mal weiter oben meinen Beitrag an ~
Daifoku is offline  
Thanks
1 User
Old 07/29/2015, 21:40   #8

 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,494
Received Thanks: 1,769
Quote:
Originally Posted by Daifoku View Post
Code:
#RequireAdmin
#include "PostMessage.au3"
#include <WinAPI.au3>

Dim $hwnd = WinGetHandle("BlueStacks App Player")


While true
   _PostMessage_Click($hWnd,910 , 734, "left")
   Sleep(5000)
WEnd
Wenn das nicht geht, dann kannst du keine background-clicks mit Autoit machen. Das Programm wertet dann die Flags von postmessage(USER32.dll) aus. Du müsstest dir einen eigenen Kernel/Keyboard Driver schreiben oder die Keyboard Routine vom Prozess hooken und umschreiben.
Wie gesagt, hatte ich PostMessage schon ausprobiert. Wie ich einen Kernel/Keyboard Driver schreibe oder die Keyboard Routine vom Prozess hooken und umschreiben kann, weiß ich leider nicht
Moneypulation is offline  
Old 07/29/2015, 21:56   #9
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Quote:
Originally Posted by Moneypulation View Post
Wie gesagt, hatte ich PostMessage schon ausprobiert. Wie ich einen Kernel/Keyboard Driver schreibe oder die Keyboard Routine vom Prozess hooken und umschreiben kann, weiß ich leider nicht
Programme haben in der Treiberebene (Ring0) nichts verloren und sowas wirst du mit AutoIt auch nicht hinkriegen.

könnte da helfen aber ich glaube nicht das das die Lösung zu deinem Problem ist. Die wohl eleganteste Variante wäre wohl einen PacketBot zu basteln aber das ist nicht ganz so einfach.
alpines is offline  
Thanks
1 User
Old 07/29/2015, 22:23   #10
 
elite*gold: 0
Join Date: Mar 2010
Posts: 360
Received Thanks: 132
Quote:
Originally Posted by Moneypulation View Post
Wie gesagt, hatte ich PostMessage schon ausprobiert. Wie ich einen Kernel/Keyboard Driver schreibe oder die Keyboard Routine vom Prozess hooken und umschreiben kann, weiß ich leider nicht
Dann wirst du dein Vorhaben wohl oder übel nicht ohne Virtualisierung oder einer Server Version von Windows umsetzen können.
Keyboard-Driver sind ne große Nummer
Keyboard hooks sind relativ einfach umzusetzen, wenn man sich mit Reversen auskennt
Einen PacketBot halte ich für zu viel des Guten, da ist ein KeyboardRoutine hook einfacher. Das Programm wertet ja irgendwo die PostMessage aufrufe von User32 aus um den Zugriff über "background-clicks" zu verhindern... diese Routine kann man anpassen.

Virtualisieren geht immer. Einfach ne VM aufsetzen und die Programme dort drin laufen lassen.
Wenn du ne Server Version von Windows nutzt, kannst du mit multiplen Usern zeitgleich eingeloggt sein und per RDP alles steuern...
Daifoku is offline  
Thanks
1 User
Old 07/30/2015, 17:10   #11
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Von was genau reden wir denn hier? In einer normalen Windows Anwendung ist das nutzen interner Funktionen tasächlich sehr einfach. Sobald es um Webapplikationen geht, ist das ganze schon etwas kniffliger. Dort wäre eine Umleitung auf einen eigenen Proxy und das handeln über Packets wohl das eleganteste.

Post- und SendMessage machen beide Probleme, sobald Funktionstasten (Ctrl, Alt, Shift, ...) ins Spiel kommen. Ohne Hooks oder komplettes Ersetzen der Anwendung, wirst du dein Problem also nicht lösen können.
lolkop is offline  
Thanks
1 User
Old 07/30/2015, 20:24   #12

 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,494
Received Thanks: 1,769
Danke für all eure Antworten. Habe ein Workaround um das Problem gefunden
Moneypulation is offline  
Old 07/30/2015, 23:47   #13
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by Moneypulation View Post
Danke für all eure Antworten. Habe ein Workaround um das Problem gefunden
war es denn meine lösung? wäre nice wenn du die lösung postest.

Code:
_WinAPI_PostMessage ( $hWnd, 0x0006, 0, 0 )
YatoDev is offline  
Reply


Similar Threads Similar Threads
Tastendruck an Fenster ohne fokus
05/29/2013 - General Coding - 2 Replies
deleted
[Q]MouseclickDrag ohne Fokus?
10/29/2012 - AutoIt - 5 Replies
Hallo, ich soll für jemanden ein AutoIt-Script erstellen, dass er auch nebenbei laufen lassen kann, ohne beim Surfen oder ähnlichem eingeschränkt zu sein. Das Script funktioniert soweit einwandfrei wenn das entsprechende Fenster fokusiert ist, aber sobald es das nichtmehr ist, zickt die Funktion MouseclickDrag rum. Da ich nicht so der AutoIt-Held bin, hab ich erstmal ausführlich gegoogelt, aber zu einer Lösung hat das nicht geführt. :mad: Weiß da evtl. jemand von euch einen Rat? mfg
[C#]Hotkey ohne Fokus
03/29/2012 - .NET Languages - 2 Replies
Also ich habe ein Hotkey Event eingebaut, leider funktioniert das nur wenn der Fokus auf dem Form liegt. Ich brauche eine Hotke Event welches auch ohne den Fokus funktioniert^^. private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.D1) { }
ControlClick ohne Control-Daten?
10/27/2011 - AutoIt - 10 Replies
Hallo, ich habe ein programm welches keine auslesbaren Control-parameter besitzt. Wie kann ich in diesem Programm auf ein button klicken, wenn dieses im Hintergrund läuft? Das Programm befindet sich sonst immer auf der gleichen Stelle am Bildschirm, sodass es mit MouseClick kein problem war. Wie kann ich es jetzt mit Control Click machen? Hier mein Skript (lädt eine Datei in einem Programm) mit "MouseClick":



All times are GMT +1. The time now is 01:32.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.