Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 04:02

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

Advertisement



PostMessage UDF

Discussion on PostMessage UDF within the AutoIt forum part of the Coders Den category.

Reply
 
Old 06/04/2011, 03:46   #16


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Hallo Killer,

sieht gut aus, aber ich glaube, ich bin zu blöd

Ich möchte folgendes an $_handle senden:

Code:
/w xyz hallo
Wie genau muss ich mit deiner UDF vorgehen, um das zu erreichen? Ferner funktioniert das nicht:

Code:
_PostMessage_Send($_handle, "{DOWN}")
Wäre dir über Hilfe dankbar.

Im Übrigen geht es um ein inaktives WoW-Fenster. Bin mir ja nichtmal sicher, ob das Ganze dort überhaupt funktioniert.
Whoknowsit is offline  
Old 06/04/2011, 10:09   #17
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Machs doch einfach mit ControlSend oder gehts damit nichtmehr seit Cata drausen ist?
BlackHybrid is offline  
Old 06/04/2011, 11:01   #18


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Whoknowsit is offline  
Old 06/04/2011, 15:21   #19
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by Whoknowsit View Post
Ich möchte folgendes an $_handle senden:

Code:
/w xyz hallo
"/" kannst du mit dieser UDF nicht senden.
KDeluxe is offline  
Old 06/04/2011, 15:33   #20


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Okay, danke. Dann sollen die mal ControlSend heile machen, damit da nicht ständig irgendwas verloren geht
Whoknowsit is offline  
Old 06/04/2011, 21:19   #21
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Habs jetzt nicht getestet, aber sollte funzen.


Code:
#include <WindowsConstants.au3>

Opt("WinTitleMatchMode", 3)

Global $client = "Neues Textdokument - Editor"
Global $hwnd = WinGetHandle($client)

KeySend("SLASH")
KeySend("w")
KeySend("SPACE")
KeySend("x")
KeySend("y")
KeySend("z")
KeySend("SPACE")
KeySend("H")
KeySend("a")
KeySend("l")
KeySend("l")
KeySend("o")


; send single keyboard event to non active window
; event = pressed, down, up
; kdown = key down delay
; note: supports only lower case keys + NUMx, Fx, some special keys and @
Func KeySend($inkey, $evt ="pressed", $kdown = 50)
	$user32 = DllOpen("user32.dll")
	if $user32 = -1 Then
		ConsoleWrite("KeySend: cannot open user32.dll")
		Exit
	EndIf
		
    ; handling for special keys
	Switch StringUpper($inkey)
	Case "@"
		$skey = 0x40
		$lparam = 0x00100001
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", 0x71, "long", $lparam)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_CHAR, "int", $skey, "long", $lparam)
		Sleep(20)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", 0x71, "long", BitOR($lparam, 0xC0000000))		
	Case "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"
		$skey = 0x6f + Int(StringMid($inkey, 2)) 
		ContinueCase
	Case "NUM0", "NUM1", "NUM2", "NUM3", "NUM4", "NUM5", "NUM6", "NUM7", "NUM8" , "NUM9"
		if StringUpper(StringLeft($inkey, 3)) = "NUM" Then
			$skey = 0x60 + Int(StringMid($inkey, 4)) 
		EndIf
		ContinueCase
	Case "RETURN", "SPACE", "TAB", "BACK", "END", "HOME", "SNAPSHOT", "INSERT", "DELETE","SLASH", "LEFT", "RIGHT", "UP", "DOWN"
		Switch StringUpper($inkey)
		Case "RETURN"
			$skey = 0x0D
		Case "SPACE"
			$skey = 0x20
		Case "TAB"
			$skey = 0x09
		Case "BACK"
			$skey = 0x08
		Case "END"
			$skey = 0x23
		Case "HOME"
			$skey = 0x24
		Case "SNAPSHOT"
			$skey = 0x2c
		Case "INSERT"
			$skey = 0x2d
		Case "DELETE"
			$skey = 0x2e
		Case "SLASH"
			$skey = 0x2f	
		Case "LEFT"
			$skey = 0x25
		Case "RIGHT"
			$skey = 0x27
		Case "UP"
			$skey = 0x26
		Case "DOWN"
			$skey = 0x28
		EndSwitch
		$ret = DllCall($user32, "int", "MapVirtualKey", "int", $skey, "int", 0)
		$lparam = BitShift($ret[0], -16)
		$lparam = BitOr($lparam, 1)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", $skey, "long", $lparam)
		Sleep($kdown)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", $skey, "long",   BitOR($lparam, 0xC0000000))
	Case Else ; default lower case key handling
		$key = DllCall($user32, "int", "VkKeyScan", "int", Asc(StringLower($inkey)))
		$skey = $key[0]		
		$ret = DllCall($user32, "int", "MapVirtualKey", "int", $skey, "int", 0)
		$lparam = BitShift($ret[0], -16)
		$lparam = BitOr($lparam, 1)
		Select
		Case $evt = "pressed"
			DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", $skey, "long", $lparam)
			Sleep($kdown)
			DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", $skey, "long",   BitOR($lparam, 0xC0000000))
		Case $evt = "down"
			DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", $skey, "long", $lparam)
		Case $evt = "up"
			DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", $skey, "long",   BitOR($lparam, 0xC0000000))
		EndSelect		
	EndSwitch

	DllClose($user32)
EndFunc
Credits: tonitusch666
| Moep | is offline  
Thanks
1 User
Old 06/04/2011, 23:27   #22


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Danke, werds morgen mal testen, auch wenn ich befürchte, dass es nicht funktioniert
Whoknowsit is offline  
Old 06/05/2011, 10:23   #23
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Was für ein OS benutz du? Bei meinem w7 x64 funktioniert es z.b. nicht. Jedoch bin ich mir sicher dass es bei meinem alten xp x86 ordentlich funktioniert hat.

Ansonsten kannst du mal bei killerdeluxe seiner udf bei $key den ascii code vom slash probieren. Also:

Code:
_PostMessage_Send($hWnd, 0x2f, $Delay = 10)
Kann das Archiv leider nicht runterladen sonst hätt ichs mir mal angeschaut.
| Moep | is offline  
Old 02/22/2012, 16:36   #24
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Ich hab nach langem mal wieder etwas geändert. Die können nur als $Key Parameter angegeben werden. Außerdem habe ich einen Bug gefixt, wodurch es nicht mehr möglich war Zahlen und Buchstaben zu senden.
KDeluxe is offline  
Thanks
1 User
Old 02/22/2012, 20:18   #25
 
elite*gold: 0
Join Date: Jul 2010
Posts: 16
Received Thanks: 0
Hey
es fehlt die declaration von den Variablen $VK_LBUTTON sowie M und R, sodass man eine Fehlermeldung bekommt...

Ich weiß zar, wie man das fixt, aber wär trotzdem nett, wenn du das fixt :P
EliteDeath is offline  
Old 02/22/2012, 22:51   #26
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Ich habe die UDF mit der aktuellsten AutoIt Version überarbeitet. In dieser Version sind $VL_LBUTTON, $VK_RBUTTON und $VK_MBUTTON schon in der "Constants.au3" deklariert. Hätte ich vielleicht dazuschreiben können.
Ansonsten sollte man es noch per If Abfrage mit IsDeclared() lösen können. Nichts dramatisches, deswegen werde ich es auch nicht ändern.
KDeluxe is offline  
Old 02/25/2012, 14:16   #27
 
YunoSubs's Avatar
 
elite*gold: 0
Join Date: May 2011
Posts: 275
Received Thanks: 49
Hast du vielleicht ein Beispiel da, ich verstehe es leider nicht ganz.

Code:
$hWnd = WinGetHandle("PostMessage UDF - Seite 3 - Mozilla Firefox") ;
_PostMessage_Send($hWnd, "{F5}",1500)
YunoSubs is offline  
Old 02/25/2012, 18:58   #28
 
elite*gold: 0
Join Date: Jul 2010
Posts: 16
Received Thanks: 0
Hey KD,
ich versuche bei LC nen kleinen Pixelbot mit deiner UDFzu schreiben, bekomme aber imm send error... kann man den beheben oder sind jetzt alle Bots gestorben?
ED
EliteDeath is offline  
Old 02/25/2012, 19:56   #29
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Quote:
Originally Posted by EliteDeath View Post
Hey KD,
ich versuche bei LC nen kleinen Pixelbot mit deiner UDFzu schreiben, bekomme aber imm send error... kann man den beheben oder sind jetzt alle Bots gestorben?
ED
Ich glaube kaum, dass KD hellsehen kann..
error posten und abwarten...
omer36 is offline  
Old 02/25/2012, 20:25   #30
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Wieso werden hier nicht themenrelevante Probleme angesprochen? Irgendwelche Fehler bei Spiel XYZ sind mir egal, hier geht es rein um die PostMessage Funktion.
KDeluxe is offline  
Reply


Similar Threads Similar Threads
[c++]postmessage problem
07/03/2010 - C/C++ - 7 Replies
hi ich hab wieder mal ein problem ich versuche mit c++ einen bot zu schreiben und möchte einen tastendruck zum gewünschten fenster senden (nostale) mit postmessage aber wie?? ich habs mal so probiert #include <iostream> #include <windows.h>
[TUTORIAL] PostMessage mit AutoIT
06/16/2009 - Flyff Hacks, Bots, Cheats, Exploits & Macros - 0 Replies
Ich habe eine Anfrage bekommen wie man mit AutoIT Tasten und Mausklicks an ein Flyff Fenster sendet. Ich denke da das mehrere Leute interessieren könnte, poste ich hier meine ausführliche Antwort auf die Frage. Ob die Assembler Erklärung korrekt ist weiß ich nicht, sollte soweit auch unwichtig sein. Ich werde keine weiteren Fragen dazu beantworten. Die benötigte .dll findet ihr hier:
keine reaktion auf Postmessage
03/04/2009 - Guild Wars - 20 Replies
Einen wunderschönen guten Morgen, ich hoffe nicht das euch das thema zum halse raus hängt, aber leider habe ich nichts passendes in andern Threads gefunden. Vorabinfo: Sprache: VB2008 System: WinXP Prof SP2 Mein Problem ist das GW das Postmessage nicht "an nimt" ( Auch Sendmessage geht nicht )



All times are GMT +1. The time now is 04:03.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.