[METIN2 Pserver] PostMessage Problem

10/08/2014 02:43 J-ىlaught#1
Wie der Titel schon sagt habe ich ein Problem mit der PostMessage Funktion.
Ich versuche einen Klick im Hintergrund zu erzeugen und danach will ich, dass die "Enter" taste nach dem klick gedrückt wird. Nur passiert das nicht.
Versuche schon seit Wochen mein Problem zu finden, aber finde nichts.
Falls mir einer helfen kann, wäre ich sehr dankbark und wenn ihr zu viel Zeit habt,
könnt ihr mir ja den Code so korrigieren, dass ich es nutzen kann.
Zur Hilfe Poste ich den Code der mit offenem, also nicht minimiert, Fenster funktioniert und dann den Code der im Hintergrund funktionieren soll.


Fenster offen: Funktioniert
Code:
#include <MsgBoxConstants.au3>

WinWaitActive("METIN2")

; Press Esc to terminate script, Pause/Break to "pause"

Global $g_bPaused = False

HotKeySet("{PAUSE}", "HotKeyPressed")
HotKeySet("{ESC}", "HotKeyPressed")

While 1
   MouseClick("right",1340,657,9,9)
   Send("{ENTER}")
   Send("{ENTER}")
   Send("{ENTER}")
   MouseClick("right",1341,657,9,9)
   Send("{ENTER}")
   Send("{ENTER}")
   Send("{ENTER}")
   MouseClick("right",1342,657,9,9)
   Send("{ENTER}")
   Send("{ENTER}")
   Send("{ENTER}")
   MouseClick("right",1341,657,9,9)
   Send("{ENTER}")
   Send("{ENTER}")
   Send("{ENTER}")
   MouseClick("right",1342,657,9,9)
   Send("{ENTER}")
   Send("{ENTER}")
   Send("{ENTER}")
   MouseClick("right",1341,657,9,9)
   Send("{ENTER}")
   Send("{ENTER}")
   Send("{ENTER}")
   WEnd

   Func HotKeyPressed()
    Switch @HotKeyPressed ; The last hotkey pressed.
        Case "{PAUSE}" ; String is the {PAUSE} hotkey.
            $g_bPaused = Not $g_bPaused
            While $g_bPaused
                Sleep(100)
                ToolTip('Script is "Paused"', 0, 0)
            WEnd
            ToolTip("")

        Case "{ESC}" ; String is the {ESC} hotkey.
            Exit

    EndSwitch
EndFunc   ;==>HotKeyPressed
Fenster minimiert: Wird ausgeführt, aber keine Klicks und kein "Enter"
Code:
#include <MsgBoxConstants.au3>
#include <KeyCodes.au3>
#include <PostMessage.au3>
#RequireAdmin


Global $hWnd = WinGetHandle("METIN2");

WinSetState($hWnd, "", @SW_HIDE)

; Press Esc to terminate script, Pause/Break to "pause"

Global $g_bPaused = False

HotKeySet("{PAUSE}", "HotKeyPressed")
HotKeySet("{ESC}", "HotKeyPressed")

While 1
	_PostMessage_Click($hWnD, 356, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 357, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 358, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 356, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 357, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 358, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 356, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 357, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Click($hWnD, 358, 602, "right", 10, 9)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
	_PostMessage_Send($hWnD, "{ENTER}", 10)
	_PostMessage_SendUp($hWnD, "{ENTER}", 10)
	_PostMessage_SendDown($hWnD, "{ENTER}", 10)
WEnd

Func HotKeyPressed()
	Switch @HotKeyPressed ; The last hotkey pressed.
		Case "{PAUSE}" ; String is the {PAUSE} hotkey.
			$g_bPaused = Not $g_bPaused
			While $g_bPaused
				Sleep(100)
				ToolTip('Script is "Paused"', 0, 0)
			WEnd
			ToolTip("")

		Case "{ESC}" ; String is the {ESC} hotkey.
			Exit

	EndSwitch
EndFunc   ;==>HotKeyPressed
10/08/2014 12:17 alpines#2
Du kannst keine Clicks an minimierte Fenster senden, entweder du lässt es inaktiv im Hintergrund oder @SW_HIDEst es.

Außerdem heißt das Fenster nicht "$hWnd" sondern $hWnd.
10/08/2014 12:29 FacePalmMan#3
Ich kann dir auch anbieten dass wir zusammen dein programm zusammen (über Skype oder Team Viewer) umschreiben so dass
A: das was du erreichen willst funktioniert
B: dein Programm am Ende mehr funktionen hat (Speed, Attackspeed, Wallhack, 1Hit, XYZ, Moblock, AutoPott, AutoSkill, und viel mehr), denn ich hab selber schon mal sowas gemacht, nur suche ich jemanden der Zeit und Lust hat sowas zu schreiben (oder einfach nur zuzuschauen und zu lernen wie ich das mache).
Wenn du lust hast, kannst du mich in Skype adden (das Skype icon wo du draufklicken musst findest du bei diesem Post über dem Report Button).
10/08/2014 16:32 J-ىlaught#4
Quote:
Originally Posted by alpines View Post
Du kannst keine Clicks an minimierte Fenster senden, entweder du lässt es inaktiv im Hintergrund oder @SW_HIDEst es.

Außerdem heißt das Fenster nicht "$hWnd" sondern $hWnd.
Wie sieht es denn als Code aus wenn ich das hiden will ? Also das Fenster was ich hiden möchte heißt einfach nur "METIN2"

Edit: Hat sich erledigt ^^
Code:
WinSetState($hWnd, "", @SW_HIDE)
Edit2: Jetzt hab ich das Problem, dass es sich beim hiden schließt also das Fenster. Heißt das jetzt, dass ich es inaktiv im Hintergrund haben muss, weil es nicht geht oder mache ich etwas falsch ?
10/08/2014 16:56 alpines#5
Schließt es sich oder ist es gehided?
Hide es doch mal für paar Sekunden und @SW_SHOW es wieder; sollte es auftauchen, dann wird es nicht geschlossen.
10/09/2014 00:54 J-ىlaught#6
Quote:
Originally Posted by alpines View Post
Schließt es sich oder ist es gehided?
Hide es doch mal für paar Sekunden und @SW_SHOW es wieder; sollte es auftauchen, dann wird es nicht geschlossen.
Es ist hidden, entschuldige. Sehe das grad bei den Prozessen, dass es noch läuft.

Eine Frage jetzt noch. Wenn ich es hidden habe und die ganz normale send funktion benutze, kann ich trotzdem den Zeiger bewegen ohne, dass es an die Koordinaten umspringt die ich angegeben habe ?
10/09/2014 16:10 alpines#7
Ich hoffe ich hab dich richtig verstanden.

Nein kannst du nicht, die Send Funktion sendet Tasteneingaben direkt und diese nicht an Hidden-Fenster sendbar, du musst vermutlich bei PostMessage bleiben.