tastendruck aufzeichen
-
kornspitz schrieb:
cursor links: 37
cursor rechts: 39
leertaste: 32
das weiß ich schon!!!aber ich brauch noch ne hilfe beim hauptprogramm!!! wie ich da die nachrichten aus der dll empfangen kann? ist das hauptprogramm aus von der dll irgendwo hier versteckt?
bye
du bekommst jedes mal wenn eine taste gedrückt die nachricht (WM_USER + 2) an dein prog gesendet, in wParam steht dann der Tastencode der gedrückten taste.
-
du bekommst jedes mal wenn eine taste gedrückt die nachricht (WM_USER + 2) an dein prog gesendet, in wParam steht dann der Tastencode der gedrückten taste.
aha, danke der info! wo findet man das hautprogramm von der dll in der faq?? das würd ich noch gerne habn, als anhaltspunkt!!! sonst danke!!
bye
-
http://www.winapi.net/index.php?inhalt=tipp1
Und dann in WndProc einfach noch WM_USER + 2 abfangen

-
flenders schrieb:
http://www.winapi.net/index.php?inhalt=tipp1
Und dann in WndProc einfach noch WM_USER + 2 abfangen

oh danke;-) das ist das main programm von der dll? hast du dich vielleicht verpostet?*g*
bye
-
Nein, dass ist der Code für die exe - aber du solltest dich wohl besser zuerst mal etwas mit den Grundlagen beschäftigen

-
flenders schrieb:
Nein, dass ist der Code für die exe - aber du solltest dich wohl besser zuerst mal etwas mit den Grundlagen beschäftigen

code für exe? eher code irgendeines winapi programmes wie man ein fenster erstellen kann! glaub mir die grundlagen für das zum programmieren hab ich, vielleicht fehlen mir die grundlagen zu hook, wenn du das meinst!??
ok als nextes muss ich wissen, wie man eine "keymessage" zu einem beliebigen fenster schicken kann, damit der skifahrer automatisch gelenkt wird.....kannst du mir da paar tipps geben??
bye

-
kornspitz schrieb:
code für exe? eher code irgendeines winapi programmes wie man ein fenster erstellen kann! glaub mir die grundlagen für das zum programmieren hab ich, vielleicht fehlen mir die grundlagen zu hook, wenn du das meinst!??
Du brauchst ja eigentlich auch nur ein WinAPI-Programm mit einer MessageProc in der du die genannte Nachricht abfängst - ist ja ansonsten nichts besonderes

kornspitz schrieb:
ok als nextes muss ich wissen, wie man eine "keymessage" zu einem beliebigen fenster schicken kann, damit der skifahrer automatisch gelenkt wird.....kannst du mir da paar tipps geben??
flenders schrieb:
"abspielen" sollte sich dann mit keybd_event bzw. SendInput o.ä. machen lassen

Du musst vorher wohl noch den Fokus auf das entsprechende Fenster setzen bzw. dieses in den Vordergrund holen (sollte mit SetForegroundWindow o.ä. machbar sein)
-
ich komm da nit ganz zurecht;-(
#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { // gdiplus.dll laden: HINSTANCE hLib = LoadLibrary("hookdll.dll"); if(hLib == NULL) { MessageBox(NULL,"Fehler: hookdll.dll konnte nicht geladen werden !","error", 0); return 0; } static TCHAR szAppName[] = TEXT ("Klassenname"); HWND hwnd; MSG msg; WNDCLASSEX wndclassex = {0}; wndclassex.cbSize = sizeof(WNDCLASSEX); wndclassex.style = CS_HREDRAW | CS_VREDRAW; wndclassex.lpfnWndProc = WndProc; wndclassex.cbClsExtra = 0; wndclassex.cbWndExtra = 0; wndclassex.hInstance = hInstance; wndclassex.hIcon = LoadIcon (NULL, IDI_APPLICATION); wndclassex.hCursor = LoadCursor (NULL, IDC_ARROW); wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); wndclassex.lpszMenuName = NULL; wndclassex.lpszClassName = szAppName; wndclassex.hIconSm = wndclassex.hIcon; if (!RegisterClassEx (&wndclassex)) { MessageBox (NULL, TEXT ("RegisterClassEx fehlgeschlagen!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW, // erweiterter Fensterstil szAppName, // Name der Fensterklasse TEXT ("Fenstertitel"), // Fenstertitel WS_OVERLAPPEDWINDOW, // Fensterstil CW_USEDEFAULT, // X-Position des Fensters CW_USEDEFAULT, // Y-Position des Fensters CW_USEDEFAULT, // Fensterbreite CW_USEDEFAULT, // Fensterhöhe NULL, // übergeordnetes Fenster NULL, // Menü hInstance, // Programm-Kopiezähler (Programm-ID) NULL); // zusätzliche Parameter ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } // Aufräumen: FreeLibrary(hLib); return msg.wParam; } // Die Hauptnachrichtenschleife LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch (message) { case WM_CREATE: return (0); case WM_PAINT: hdc = BeginPaint (hwnd, &ps); TextOut (hdc, 0, 0, "Hallo, ich bin ein Fenster!", 27); EndPaint (hwnd, &ps); return (0); case WM_DESTROY: PostQuitMessage (0); return (0); } return DefWindowProc (hwnd, message, wParam, lParam); }wie kann ich die Tastencode der gedrückten taste da hier? das soll in wParam stehn aber wo kann ich das holen? wie kann ich eigentlich dann die zeit wie lange auf eine bestimmte taste gedrückt wird messen???
byeeee

-
Um die Message zum Hook abzufangen must du ein case WM_USER+2 einfügen und dort die Message bearbeiten - an die Zeit kommst du so direkt gar nicht!
Außerdem musst du zuerst noch den Hook mit SetupHook einrichten - dazu am einfachsten die lib der dll mit linken.
-
flenders schrieb:
Um die Message zum Hook abzufangen must du ein case WM_USER+2 einfügen und dort die Message bearbeiten - an die Zeit kommst du so direkt gar nicht!
Außerdem musst du zuerst noch den Hook mit SetupHook einrichten - dazu am einfachsten die lib der dll mit linken.wo frage ich case WM_USER+2 ab??? hilf mir mal da!!! das ich dann auf die gedrückte taste komme!??
Reicht das nicht wenn ich die dll lade??? wie mach ich das mit setupHook???

bye
-
kornspitz schrieb:
wo frage ich case WM_USER+2 ab???
in switch (message)
kornspitz schrieb:
Reicht das nicht wenn ich die dll lade??? wie mach ich das mit setupHook???
Nein, du musst den Hook über die in der DLL exportierte Funktion erst einrichten

-
@flenders: kannst du mittn einrichten mir mal helfen!! ich schaff das glaubi net *g* verdammt!! so ein grundgerüst wär fein!
bye
-
1.) Adresse zu der SetupHook-Funktion aus der DLL (entweder über linken der lib von der dll und einbinden des header-files, oder LoadLibrary/GetProcAddress) besorgen
2.) Window-Handle, des zu überwachenden Fensters ermitteln - FindWindow(Ex)
3.) SetupHook mit dem ermittelten Fenster-Handle aufrufen
4.) in deiner WndProc (WM_USER+2) abfangen - so wie WM_CREATE oder WM_DESTROY
5.) Wenn du den Hook nicht mehr benötigst mit UninstallHook lösen