@Bot:
Da hast du schon Recht.
Vllt ist das auch etwas zu weit für mich, aber ich möchte es halt gerne lernen.
Btw: Deine Lösung klappt auch nicht, oder vllt hab ich auch wieder was falsch gemacht....
Und
@Adroxxx & flo:
Ich verstehe jetzt nicht genau, was ihr meint, wo ich euren Code einfügen muss.
Ich hab das unter Garantie falsch gemacht, weil der Compiler dauernd
"nichtdeklarierter Bezeichner" sagt.
Also hier nochmal alle 3 Sources:
Flo's Variante:
PHP Code:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
cout << "Starteee!!!!" << endl;
HWND wHandle = FindWindow(0,L"Guild Wars");
if(!wHandle)
{
cout << "Starte das verdammte Spiiiieeeelll!!!!"
<< " Errorcode: " << GetLastError() << '\n' << endl;
}
else
{
cout << "WindowHandle: " << wHandle << endl;
while(wHandle)
{
void sendKeystroke(char character)
{
LPARAM keystroke = LOWORD(VkKeyScanA(character));
SendMessage(wHandle, WM_KEYDOWN, NULL, keystroke);
SendMessage(wHandle, WM_CHAR, NULL, keystroke);
Sleep(20);
SendMessage(wHandle, WM_KEYUP, NULL, keystroke);
}
}
}
}
==> Compiler:
wHandle: nichtdeklarierter Bezeichner,
sendKeystroke: Lokale Funktionsdefinitionen sind unzulässig.
Wenn ich "HWND wHandle = FindWindow(0,L"Guild Wars"); " nochmal in die
Funktion hinein schreibe, lößt sich das 1. Problem, aber das mit dem
sendkeystroke krig ich nicht weg, vllt ist das ja falsch gescrieben oder der
Header/die Lib fehlt, kA....
----------------------------------------------------------------------------
Adroxxx's Variante:
PHP Code:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
cout << "Starteee!!!!" << endl;
HWND wHandle = FindWindow(0,L"Guild Wars");
if(!wHandle)
{
cout << "Starte das verdammte Spiiiieeeelll!!!!"
<< " Errorcode: " << GetLastError() << '\n' << endl;
}
else
{
cout << "WindowHandle: " << wHandle << endl;
while(wHandle)
{
LPARAM pmLparam = (::MapVirtualKey(KEY,0)<<16);
PostMessage(wHandle,WM_KEYDOWN,0,pmLparam);
PostMessage(wHandle,WM_CHAR,0,pmLparam);
Sleep(DELAY);
PostMessage(wHandle,WM_KEYUP,0,pmLparam);
}
}
}
==> Compiler:
DELAY: nichtdeklarierter Bezeichner,
KEY: nichtdeklarierter Bezeichner.
Ich brauch natürlich Werte für DELAY und KEY, aber welche Werte kommen
da rein bzw. muss ich mir die über ne Funktion besorgen?
----------------------------------------------------------------------------
Bot's Variante:
PHP Code:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
cout << "Starteee!!!!" << endl;
HWND wHandle = FindWindow(0,L"Guild Wars");
if(!wHandle)
{
cout << "Starte das verdammte Spiiiieeeelll!!!!"
<< " Errorcode: " << GetLastError() << '\n' << endl;
}
else
{
cout << "WindowHandle: " << wHandle << endl;
while(wHandle)
{
SendMessage(wHandle, WM_KEYDOWN, 0x57/*VK W*/, NULL);
SendMessage(wHandle, WM_KEYUP, 0x57, NULL);
}
}
}
==> Compiliert ohne zu meckern.
Aber, wie schon erwähnt klappt es nicht.
----------------------------------------------------------------------------
Und nochmal zum Abschluss:
Wenn ich jetzt etwas falsch gemacht habe, bitte motzt mich nicht an.......
Mir wärs lieber, ihr würdet einfach den fertigen Source-Teil posten
und mir sagen, was ich falsch gemacht hab/wie es jetzt funktioniert.
Und btw vllt interessierts euch.
Was ich mir eigendlich von dem Post/euren Antworten erwartet hätte:
- Lösung des Problems
- Nicht so viel gemecker, ich bin wie gesagt noch ein Anfänger...
- Ein Post wie:
"Also SendKey kann man dafür benutzen, um Tastendrücke zu simulieren,
da lagst du schon richtig. Aber ????? hast du falsch gemacht.
SendKey brauch die 4 Parameter ??????.
Das 1. Parameter ist der Handle, den du dir ja schon per FindWindow geholt hast,
das 2. Parameter ist ?????, das krigst du indem du ?????.
Das 3. Parameter ist ?????, da hast du folgende Möglichkeiten: ?????.
Das 4. Parameter ist ?????, das holst du dir mit ?????
- Und dann hätte ich mir wenigstens erwartet, dass ich in
weniger als 2 Tagen
mein Problem
gelößt habe und gelernt habe, wie man Tastendrücke simuliert
bzw. wie man Bots schreibt.