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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
loginz
Сообщений: n/a
#1

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

20.04.2010, 10:09. Просмотров 552. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Не нашел в форумах ответ, поэтому создаю тему!
при вызове функции 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++
Всем привет! У меня довольно необычная проблема. Суть её в том, что я написал программу по аналогии с чужой программой. Однако несмотря...

Необьявленный идентификатор в SetWindowsHookEx - C++
#include &lt;windows.h&gt; int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { MSG msg; ...

На троичные коды - C++
Есть индикатор, отображающий запись чисел в троичной системе счисления с помощью двухцветных светодиодов. Каждый светодиод может гореть...

Коды Assembler в C/C++ - C++
Здравствуйте! Я столкнулся с проблемой при использовании кодов Assembler в C/C++. Я читал, что в C/C++ существует функция _asm, в которой...

не разборчивые коды - C++
помогите пожалуйста ответить на вопросы? заранее спасибо. немного не понятны вопросы, особенно первые 1. (10%)Is next statement...

Коды цифр - C++
Дайте пожалуйста мне коды цифр от 1-9. Вот по этой ссылке есть коды, но ни один из них не срабатывает! http://ru.wikipedia.org/wiki/ASCII...

короткие коды с ******** - C++
всем привет я решил создать общую тему по сокращению кодов (если у кого есть по короче по желанию напишите на форум нужно писать так №...

Корректирующие коды - C++
а). преобразовать заданное информационное слово 10101101011 из 11 двоичных цифр в двоичное слово кода Хемминга (15,11); б). дано...

Коды программ ... - C++
Вопрос 1 ый , на windows 7 не ставится с++3,01 , сказали, что в 6 билдере можно где то включить , чтобы было как в c++ 3.01 И вот...

Коды символов - C++
Как выводить символы зная их 8ичный код


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru