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

одинаковые коды в SetWindowsHookEx - C++

Восстановить пароль Регистрация
 
loginz
Сообщений: n/a
20.04.2010, 10:09     одинаковые коды в SetWindowsHookEx #1
Здравствуйте!
Не нашел в форумах ответ, поэтому создаю тему!
при вызове функции SetWindowsHookEx: функция-обработчик KeyboardProc содержит одни и те же коды нажатых клавиш. (в файле "key.log" одна и таже повторяющаяся битовая последовательность для разных нажатий, см. ниже)

Почему? Что не так в коде? подскажите пожалуйста.
Система vista 64. Borland 2009
================================
код 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
#include <windows.h>
#include <fstream.h>
#pragma argsused
 
 struct keys{
 int code;
 WPARAM wParam;
 LPARAM lParam;};
 
keys sym;
int count=0;
 
extern "C" __declspec(dllexport) LPARAM CALLBACK KeyboardProc(  int code, WPARAM wParam, LPARAM lParam)
{
 if (wParam == WM_KEYDOWN)  {
 
     sym.code = code;
     sym.wParam = wParam;
     sym.lParam = lParam;
 
     ofstream out("key.log", ios::app);
 
     if (out == 0) { MessageBoxA(0, "Error open file", "Error open file", 0); }
 
     out.write((char *)&sym, sizeof(keys));
     out.close();
 }
 
 return CallNextHookEx(0, code, wParam, lParam);
}
============================================

фрагмент кода программы (при нажатии Button1 устанавливаем хук):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
 static HHOOK hhook;
 static HINSTANCE hlib = LoadLibrary((LPCTSTR) "..\\..\\..\\dll\\debug\\Project1.dll");
 
 if (!hlib) {   MessageBox(0, "Error", "ErrorLoad dll", 0);   }
 
 static HOOKPROC mykey = (HOOKPROC)GetProcAddress(hlib, "KeyboardProc");
 
 if (!mykey) {  MessageBox(0, "Error", "ErrorLoad function", 0);  }
 
 hhook = SetWindowsHookEx(WH_KEYBOARD_LL, mykey, hlib, NULL);
 
 Form1->SpinEdit1->Value = (LPARAM)hhook;
 
 if ( !hhook ) {
    MessageBox(0, "Error", "ErrorLoad hook", 0);
 
 }
 
}
==================================
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2010, 10:09     одинаковые коды в SetWindowsHookEx
Посмотрите здесь:

Одинаковые коды клавиш-стрелочек C++
C++ не разборчивые коды
Необьявленный идентификатор в SetWindowsHookEx C++
C++ Коды исключений
C++ Корректирующие коды
C++ Почему одинаковые коды работают по разному?
Коды Assembler в C/C++ C++
Коды символов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru