Форум программистов, компьютерный форум CyberForum.ru

Хуки мыши - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ АТД комплексные числа http://www.cyberforum.ru/cpp/thread104851.html
задание: Создать абстрактный тип данных для комплексных чисел(структура). Определить функции, которые устанавливает значения реальной и мнимой части. Мнимая часть параметр по умолчанию. Создать функции сложения и вычитания комплексных чисел и их форматного вывода. Пишу на Dev c++ #include <cstdlib> #include <iostream> #include <conio.h> #include <stdio.h>
C++ Стримовые строки Есть стрим, например, cin. Надо узнать число символов от последнего ведённого до конца строки. http://www.cyberforum.ru/cpp/thread104799.html
C++ Создание очереди продажи мобильных телефонов
Помогите, не могу написать курсовую, очень прошу, сам пробовал, не получается. Тема курсовой работы: Создание очереди продажи мобильных телефонов. Люди спасайте неможу замутити курсуву дуже потрібно пробував сам не виходить поможіть дуже прошу.Тема курсової роботи. Створення черги продажу мобільних телефонів.
C++ Нужна программа-код в Borlande C++ по созданию графика ф-ии
Возникла сложность с написание кода и созданием формы такой программы. Кто сможет, подскажите пожалуйста, оч нужно!! Заранее, спасибо! ) Задача: 1. Постройте график функции y(x)= Ysin^2 ωx (символ ^ значит в степени, ωx - не в степени) , при этом коэффициенты Y, и ω задаются в окнах формы. 2. Создайте программу, которая позволяет увидеть вращение круга с вписанным в него квадратом.
C++ GUI-программирование. Какая библиотека лучше? http://www.cyberforum.ru/cpp/thread104637.html
Здравствуйте! Я знаю "консольный" C++, теперь хочется освоить какую-нибудь библиотеку или технологию визуального программирования. Подскажите, кто знает, что лучше выбрать и что сейчас востребовано? Всем благодарен!
C++ Слияние двух строк Как соединить (конкатенировать) две строки на С? Помогите, пожалуйста подробнее

Показать сообщение отдельно
softrix
0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 48

Хуки мыши - C++

15.03.2010, 15:59. Просмотров 908. Ответов 0
Метки (Все метки)

Такая проблема, пытаюсь написать хук для мыши, вроде событие отлавливается, библиотека отлично подключается, но функция которая должна возвращать указатель на структуру MOUSEHOOKSTRUCT, возвращает структуру вверх ногами, координаты мыши почему-то лежат в параметрах wHitTestCode и dwExtraInfo, а в x,y лежит int значение, похожее на указатель, код dll выглядит так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//mhook.h
#include <windows.h>
#include <iostream>
 
#pragma data_seg("SHARDATA")
DWORD g_dwThreadIdDIPS = 0;
static WPARAM g_wParam = NULL;
static LPARAM g_lParam = NULL;
static MOUSEHOOKSTRUCT *mmh;
#pragma data_seg()
 
extern "C" _declspec(dllexport) LRESULT CALLBACK LowLevelMouseProc(int , WPARAM , LPARAM );
 extern "C" _declspec(dllexport) LPARAM KC(LPARAM lp);
 
 
//mhook.cpp
#include "mydll2.h"
#pragma comment(linker, "/section:SHARDATA,rws")
#ifdef _MANAGED
#pragma managed(push, off)
#endif
 
HINSTANCE g_hinstDll = NULL;
 
HHOOK g_hhook = NULL;
 
static void Init()
{
    g_hhook = SetWindowsHookEx( WH_MOUSE_LL, (HOOKPROC)LowLevelMouseProc, (HINSTANCE)g_hinstDll, 0 );
}
 
 static void Cleanup()
{
    if( g_hhook != NULL )
        UnhookWindowsHookEx( g_hhook );
 
    g_hhook = NULL;
}
 
BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD fdwReason, PVOID fImpLoad) {
 
   switch (fdwReason) {
 
      case DLL_PROCESS_ATTACH:
         // DLL is attaching to the address space of the current process.
         g_hinstDll = hinstDll;
         Init();
         break;
        case DLL_PROCESS_DETACH:
            Cleanup();
        return TRUE;
   }
   return(TRUE);
} 
 
 
 extern "C" _declspec(dllexport) LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
        if (nCode < 0)  // do not process message 
            return CallNextHookEx(g_hhook, nCode, wParam, lParam);
 
    mmh = reinterpret_cast<MOUSEHOOKSTRUCT *>(lParam);
    //int n = mh->pt.x;
 
    g_wParam = wParam;
    g_lParam = lParam;
    if(wParam = WM_MOUSEMOVE) 
    {
        int yy=0;
    }
 
return  CallNextHookEx(g_hhook, nCode, wParam, lParam); 
}
 
 extern "C" _declspec(dllexport) LPARAM KC(LPARAM lp)
{
    if(g_wParam != NULL && g_lParam != NULL)
    {
        lp = g_lParam ;
        MOUSEHOOKSTRUCT *tmh = mmh;
        MOUSEHOOKSTRUCT *mh = (MOUSEHOOKSTRUCT *) g_lParam;
        int n = mh->pt.x;
 
        g_wParam = NULL;
        g_lParam = NULL;
        return lp;
    }
    return 0;
}
 
#ifdef _MANAGED
#pragma managed(pop)
#endif
И так и сяк эксперементировал, все равно значение не верное, не понятно в чем дело... ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru