Witam. Jaka funkcja służy do wychwytywania zmiany animacji myszki ??. Dokładnie to chcę zrobić program, który po zmianie strzałki w "rękę" automatycznie wykonuje kliknięcie LPM. Będę wdzięczny za każdą pomoc.
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Najlepsza odpowiedź MarWit, 27.11.2013 15:32
#include <Windows.h> #include <stdio.h> HHOOK hMouseHook; LRESULT CALLBACK mouseProc ( int nCode, WPARAM wParam, LPARAM lParam ) { if( ( ( CWPRETSTRUCT * ) lParam ) -> message == WM_SETCURSOR ) { printf( "WAT" ); } return CallNextHookEx( hMouseHook, nCode, wParam, lParam ); } int main(int argc, char** argv) { hMouseHook = SetWindowsHookEx( WH_CALLWNDPROCRET, mouseProc, NULL, GetCurrentThreadId( ) ); if( hMouseHook == NULL ) return 0; MSG msg; while ( GetMessage( & msg, NULL, 0, 0 ) ) { TranslateMessage( & msg ); DispatchMessage( & msg ); } UnhookWindowsHookEx( hMouseHook ); return 0; }W teorii powinno smigac, w praktyce nie musi ( tzw. wydaje mi sie ze globalnego hooka mozna zrobic tylko uzywajac DLL ) Przejdź do postu
#1
Napisano 24.11.2013 12:02
#2
Napisano 24.11.2013 15:48
#3
Napisano 24.11.2013 23:21
Wzorowałem się innym kodem, bo nie znam za bardzo C/C++, ale udało mi się stworzyć takie coś tylko nie wiem czy dobrze zrobiłem
#include <Windows.h> #include <stdio.h> HHOOK hMouseHook; int main(int argc, char** argv) { HANDLE hThread; DWORD dwThread; hThread = CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)MyMouseLogger, (LPVOID) argv[0], NULL, &dwThread); if (hThread) return WaitForSingleObject(hThread,INFINITE); else return 1; } LRESULT CALLBACK mouseProc (int nCode, WPARAM wParam, LPARAM lParam) { if(pMouseStruct != NULL) { if(wParam == WM_SETCURSOR) { printf("clicked"); } } return CallNextHookEx(hMouseHook, nCode, wParam, lParam); } DWORD WINAPI MyMouseLogger(LPVOID lpParm) { HINSTANCE hInstance = GetModuleHandle(NULL); hMouseHook = SetWindowsHookEx(WH_CALLWNDPROCRET, mouseProc, hInstance, NULL); UnhookWindowsHookEx(hMouseHook); return 0; }
#4
Napisano 25.11.2013 15:47
HINSTANCE hInst = GetWindowLong( FindWindow( "", "Nazwa Okna" ), GWL_HINSTANCE )No i de facto tworzenie nowego wątku też jest tutaj zbędne wiec mozesz wszystko przenieść normalnie do main'a
#5
Napisano 27.11.2013 14:21
Nie zależy mi, aby klikało w wybranym oknie. Mam natomiast innym problem. Ten kod, który wysłałem nie da sie skompilować, błąd jest w 11 linijce. Pomożesz go naprawić będę bardzo wdzięczny.
#6
Napisano 27.11.2013 15:32 Najlepsza odpowiedź
#include <Windows.h> #include <stdio.h> HHOOK hMouseHook; LRESULT CALLBACK mouseProc ( int nCode, WPARAM wParam, LPARAM lParam ) { if( ( ( CWPRETSTRUCT * ) lParam ) -> message == WM_SETCURSOR ) { printf( "WAT" ); } return CallNextHookEx( hMouseHook, nCode, wParam, lParam ); } int main(int argc, char** argv) { hMouseHook = SetWindowsHookEx( WH_CALLWNDPROCRET, mouseProc, NULL, GetCurrentThreadId( ) ); if( hMouseHook == NULL ) return 0; MSG msg; while ( GetMessage( & msg, NULL, 0, 0 ) ) { TranslateMessage( & msg ); DispatchMessage( & msg ); } UnhookWindowsHookEx( hMouseHook ); return 0; }W teorii powinno smigac, w praktyce nie musi ( tzw. wydaje mi sie ze globalnego hooka mozna zrobic tylko uzywajac DLL )
#7
Napisano 28.11.2013 18:23
Skompilowałem kod. Po uruchomieniu otwiera sie czarna konsola. Gdy strzałka zmienia się w "rękę" niestety nie wykonuje kliknięcia
MarWit Bardzo dziękuję ci za zainteresowanie się moim problemem. Jeśli uważasz, że w C++ nie ma możliwości tego wykonać, to poproszę o zamknięcie tematu. Poczekam jeszcze na twoją odpowiedź.
Również z jednym lub większą ilością słów kluczowych: c++
C++
amxx client_putinserver w dllNapisany przez csMaster, 26.07.2020 c++ |
|
||||
|
C++
[ROZWIĄZANE] Wyciągnięcie danych z tablicy 2dNapisany przez Alelluja, 06.04.2020 c++ |
|
|||
C++
Wyświetlanie zdjęcia na pulpicieNapisany przez Booom, 01.10.2019 c++, c++ drawimage |
|
||||
C++
FilterKeySetter[Arrow Keys]Napisany przez qrNt, 29.01.2019 c++, c# c++ c |
|
||||
C++
Dekompilacja pliku exeNapisany przez RaS_, 05.02.2016 c++ |
|
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych