Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2013, 16:33   #1
AntiDriver
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 12
По умолчанию Блокировка клавиатуры

Доброе время суток!
Возникла необходимость написать программу, полностью блокирующая клавиатуру при нажатии клавиши, разблокировка происходит аналогично, по нажатии определённой клавиши.
До этого писал на с++ только программы для математических расчётов и работы со строками, так что как реализовать подобное не имею ни малейшего представления. Гугл и литература ответа не дали.
Заранее спасибо!
AntiDriver вне форума Ответить с цитированием
Старый 24.01.2013, 17:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Гугл и литература ответа не дали.
Признайся что ты не спрашивал )
http://yandex.ua/yandsearch?text=C%2...mdoc=10&lr=143

Первая же ссылка с предложением ставить хук: http://www.cyberforum.ru/cpp-builder/thread243786.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.01.2013, 17:19   #3
AntiDriver
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 12
По умолчанию

Так дело то в том, что она полностью блокирует, разблокировки там нет
AntiDriver вне форума Ответить с цитированием
Старый 24.01.2013, 17:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
разблокировки там нет
Так дело в том что нужно процедуру хука обрабатывать.
Ты же видимо ничего не прописал в ней? А нужно прописать к примеру если нажата некая комбинация клавиш то хук снимается или просто включается передача сообщения далее по цепочке:
Код:
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
 if(нажата некая комбинация для блока) b=false; else
 if(нажата некая комбинация для разблокировки) b=true;
 if(b) CallNextHookEx(...)
        return -1;
}
Примерно так короче.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.01.2013, 20:50   #5
AntiDriver
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 12
По умолчанию

Спасибо за ответы, но многое до сих пор остаётся неясным. Так что заранее извиняюсь за столь, возможно, глупые вопросы. Вот код, приведёный по ссылке
Код:
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam);
HHOOK hHookWindows;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        // блокировка
        hHookWindows = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)&KeyboardProc, GetModuleHandle(NULL), 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        // анлок
        UnhookWindowsHookEx(hHookWindows);
}
//---------------------------------------------------------------------------
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
        return -1;
}
Компилирую под linux ubuntu 12.04:
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
IDE: geany

выдаёт следующие ошибки:
Код:
g++ -Wall -c "1.cpp" (в каталоге: /home/pit/Документы)
Сборка завершилась с ошибкой.
1.cpp:1:1: ошибка: «LRESULT» не является именем типа
1.cpp:2:1: ошибка: «HHOOK» не является именем типа
1.cpp:4:1: ошибка: «__fastcall» не является именем типа
1.cpp:10:17: ошибка: expected initializer before «TForm1»
1.cpp:16:17: ошибка: expected initializer before «TForm1»
1.cpp:22:1: ошибка: «LRESULT» не является именем типа
В чём дело? Как их исправить?
AntiDriver вне форума Ответить с цитированием
Старый 27.01.2013, 21:01   #6
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

SetWindowsHookEx
Компилирую под linux ubuntu 12.04:
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
IDE: geany

Что-то Вы не то делаете.
EUGY вне форума Ответить с цитированием
Старый 27.01.2013, 21:14   #7
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

:

Я катаюсь на палу......
в linux забудьте про WinApi
юзайте что либо, что можно из ядра лентяя
___
Первые 10 ссылок сказали, "Попробуй вытащить кабель ."
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 27.01.2013 в 21:19.
Perchik71 вне форума Ответить с цитированием
Старый 27.01.2013, 21:20   #8
AntiDriver
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 12
По умолчанию

Цитата:
Я катаюсь на палу......
Ну спасибо за непонимание и спасибо за ответ!
AntiDriver вне форума Ответить с цитированием
Старый 27.01.2013, 21:20   #9
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Вот Перец!
Я, понимаешь, тактично хотел подвести к этой мысли.
Пришел поручик - все опошлил.
EUGY вне форума Ответить с цитированием
Старый 27.01.2013, 21:27   #10
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от AntiDriver Посмотреть сообщение
Ну спасибо за непонимание и спасибо за ответ!
Ну если серъёзно.... то вы ещё и VCL вставили Ну а по деловому.... я как понял можно только клавиши блокировать.
Цитата:
Вот Перец!
Я, понимаешь, тактично хотел подвести к этой мысли.
Пришел поручик - все опошлил.
Простите мисье
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 27.01.2013 в 21:31.
Perchik71 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блокировка клавиатуры FanOfGun Win Api 7 02.01.2013 18:46
Блокировка клавиатуры Rock145 Win Api 0 16.11.2012 23:51
Блокировка клавиатуры ольгаг Microsoft Office Excel 2 26.10.2012 23:25
Блокировка клавиатуры parshin Компьютерное железо 3 13.03.2012 13:12
Блокировка клавиатуры Raivolo Помощь студентам 3 09.02.2009 03:32