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

Коды клавиш и обработка событий клавиатуры в консоли - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массивы.Сумма элементов!!! http://www.cyberforum.ru/cpp-beginners/thread423944.html
Нужно перемножить 2 матрицы и вывести результирующую, и сумму элементов каждой строки. Считает только сумму первой строки!!!Где ошибка? Мой Код: #include <iostream> #include <cstdlib> using namespace std; long double** ymnogenie(int n, long double **A, long double **B){
C++ Как можно проверить, запущен ли текстовый файл? Здравствуйте, как можно проверить, запущен ли текстовый файл или нет. Я запускаю txt файл с помощью system("start teoria.txt"); и если он остается открытым мне необходимо закрыть его. И как его можно закрыть? http://www.cyberforum.ru/cpp-beginners/thread423931.html
C++ Pазрешение введенного с клавиатуры имени хоста в IP-адрес
Может кто знает, как выполнить разрешение введенного с клавиатуры имени хоста в IP-адрес. Если честно я даже не совсем понимаю, что от меня требуется сделать. Может кто что-нить подскажет. Спасибо.
C++ Выделить цветом и подсчитать слова, содержащие среднюю букву – гласную
Разработать программу считывающую из заранее созданного текстового файла фрагмент текста объемом 300 - 400 символов, содержащий буквы русского алфавита, цифры, знаки пунктуации и пробела. Текст должен быть представлен в отдельном окне с переносом информации на новую строку только в позиции пробела. Программа должна при выводе проанализировать текст и выделить цветом слова, удовлетворяющие...
C++ Наилучший делитель http://www.cyberforum.ru/cpp-beginners/thread423893.html
В решение задач не сильно понимаю если поможете буду признателен.
C++ Перестановочный шифр. На основе этого мне нужно написать рабочий код на С++. Материал прочитан на несколько раз и уже выдвинуто множество идей, код пишется, но остается ощущения, что я двигаюсь в неправильном направление. Прошу вашей помощи пожалуйста!!! План действия, к-рый реализую: 1. ввожу текст с клавиатуры (уже в самом коде для простоты). Затем в массиве m - должны хранится цифры, соответ порядку букв сообщения,... подробнее

Показать сообщение отдельно
kisssko
31 / 31 / 2
Регистрация: 19.12.2011
Сообщений: 72
07.01.2012, 22:04     Коды клавиш и обработка событий клавиатуры в консоли
Глобальный перехват. Демонстрация работы.

Код для kbdhook.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
#include <windows.h>
 
#define DLL_EXPORT __declspec(dllexport)
 
typedef BOOL (*hookCB) (WPARAM,LPARAM);
 
HHOOK            hHKbd=NULL;
hookCB           hookCallBack;
 
LRESULT CALLBACK KbdProc(int nCode, WPARAM wParam, LPARAM lParam)
 {
  if(nCode==0)    {hookCallBack(wParam, lParam);}
  return CallNextHookEx(hHKbd,nCode,wParam,lParam);
 }
 
DLL_EXPORT HHOOK SetHook(HINSTANCE hModule, hookCB hookExtProc)
 {
  hookCallBack=hookExtProc;
  return (hHKbd = SetWindowsHookEx(WH_KEYBOARD_LL, KbdProc, hModule, 0));
 }
 
DLL_EXPORT BOOL UnHook(void)
 {
  return UnhookWindowsHookEx(hHKbd);
 }
Код приложения:

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
#include <stdio.h>
#include <windows.h>
 
typedef BOOL      (*UnHookProc) (void);
typedef HINSTANCE (*SetHookProc)(HINSTANCE,void*);
 
MSG                  msg;
HHOOK                hk=NULL;
DWORD                erc;
BOOL                 bRes;
KBDLLHOOKSTRUCT     *kbdata;
SetHookProc          SetHook;
UnHookProc           UnHook;
HINSTANCE            hDLL; 
HINSTANCE            hOwn;
 
BOOL hookCallBack(WPARAM wParam, LPARAM lParam)
 {
  kbdata = (KBDLLHOOKSTRUCT*)lParam;
  printf("Message: %X, Virtual Code: %02X, Scan Code: %02X, Flags: %X \n",
          wParam, kbdata->vkCode, kbdata->scanCode, kbdata->flags);
  return 1;
 }
 
int main(int argc, char **argv)
{
 
hDLL=LoadLibrary("kbdhook.dll");
SetHook=(SetHookProc)GetProcAddress(hDLL, "SetHook");
UnHook =( UnHookProc)GetProcAddress(hDLL,  "UnHook");
 
if(SetHook==NULL) 
 {
  erc=GetLastError();
  printf("Error (code: %d) \n", (int)erc);
  return 1;
 }
 
if(UnHook==NULL) 
 {
  erc=GetLastError();
  printf("Error (code: %d) \n", (int)erc);
  return 1;
 }
 
SetHook(hDLL, (void*)hookCallBack);
 
while(bRes=GetMessage(&msg,0,0,0)) 
 {
  printf("MSG:%X, WParam:%X, LParam:%X \n",
         (int)(msg.message&65535), msg.wParam, msg.lParam);
 }
 
UnHook();
}
Добавлено через 8 минут
Для расширенного ввода с консоли (в т.ч. использования мыши) можно пользоваться
функцией GenConsoleInput().
 
Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru