Guten Tag
Zuallererst: Ich hoffe das ist der richtige Bereich in diesem Forum für meine Frage. Zudem: Ich kann C++ (mehr oder weniger) hab allerdings ziemlich wenig Ahnung von dem WinAPI Zeug :)
Ich möchte nun einen Bot schreiben, der an das Metin Fenster im Hintergrund Nachrichten sendet bzw. Tastatureingaben simuliert. Als Übung soll er einfach mal die Taste 1 drücken. Nun habe ich mir diesen Code aus meinem Gedächtnis zusammengezimmert:
Leider schreibt er die 1 nur in das Chatfenster, den Quickslot spricht er nicht an.
Dann habe ich etwas im Internet geforscht und es mit einem etwas anderen Code probiert. Hier mal der ganze Code:
Selbes Ergebnis :(
Meine amateurhafte Diagnose lautet: Metin holt sich die Tastatureingabe nicht über die Windows-Messages, aber wie denn dann? Via DirectX? OpenGL?
Ich hoffe mir kann von euch jemand helfen ;)
Danke im vorraus
Mfg
Machtl
Zuallererst: Ich hoffe das ist der richtige Bereich in diesem Forum für meine Frage. Zudem: Ich kann C++ (mehr oder weniger) hab allerdings ziemlich wenig Ahnung von dem WinAPI Zeug :)
Ich möchte nun einen Bot schreiben, der an das Metin Fenster im Hintergrund Nachrichten sendet bzw. Tastatureingaben simuliert. Als Übung soll er einfach mal die Taste 1 drücken. Nun habe ich mir diesen Code aus meinem Gedächtnis zusammengezimmert:
Code:
metin_fenster = FindWindow(NULL,TEXT("METIN2"));
PostMessage(metin_fenster,WM_KEYDOWN,'1',NULL);
Dann habe ich etwas im Internet geforscht und es mit einem etwas anderen Code probiert. Hier mal der ganze Code:
Code:
#include <iostream>
#include <windows.h>
using namespace std;
HWND metin_fenster;
int main()
{
metin_fenster = FindWindow(NULL,TEXT("METIN2"));
INPUT f_4 = {INPUT_KEYBOARD, {0x34,NULL,NULL,NULL,NULL}};
DWORD dwCurrentProcessId;
DWORD dwCurrentThreadId = GetWindowThreadProcessId(metin_fenster,&dwCurrentProcessId);
DWORD dwMyThreadId = GetCurrentThreadId();
while(true)
{
//PostMessage(metin_fenster,WM_KEYDOWN,'1',NULL);
AttachThreadInput(dwMyThreadId,dwCurrentThreadId,TRUE);
SetFocus(metin_fenster);
SendInput(1,&f_4,sizeof(f_4));
AttachThreadInput(dwMyThreadId,dwCurrentThreadId,FALSE);
Sleep(20000);
}
return 0;
}
Meine amateurhafte Diagnose lautet: Metin holt sich die Tastatureingabe nicht über die Windows-Messages, aber wie denn dann? Via DirectX? OpenGL?
Ich hoffe mir kann von euch jemand helfen ;)
Danke im vorraus
Mfg
Machtl