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

Аппаратное программирование клавиатуры. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
NickSpirit
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 29
11.11.2011, 10:27     Аппаратное программирование клавиатуры. #1
Доброго времени суток всем.

Есть определённая задача - сделать сброс клавиатуры не перезагружая компьютер.

Нарыл в дебрях интернета статейки - отключить, включить, сбросить и провести эхо-тест клавиатуры можно из под Windows XP посредством обращения напрямую к портам.

Нарыл кусочки кодов - как это можно сделать. Но написать полноценный экзешник не могу. Так как не знаком с языком С++ абсолютно.

Помогите пожалуйста сделать полноценную программу - 1) отключение клавиатуры 2) некоторая пауза 3) включение клавиатуры.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
11.11.2011, 10:29     Аппаратное программирование клавиатуры. #2
Где-то откопал, не проверял. Блокировка клавиатуры и мыши
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
HINSTANCE hDll;
//ниже прототип будущей функции
DWORD __stdcall (*BlockInput)(bool Status);
DWORD Result;
Memo1->Lines->Add("");
Memo1->Lines->Add("Загрузка функции BlockInput()...");
hDll = LoadLibrary("User32.dll");
Memo1->Lines->Add("hDll = " + IntToHex(int(hDll), 8));
BlockInput = (DWORD __stdcall (*)(bool Status))GetProcAddress(hDll,
"BlockInput");
Memo1->Lines->Add("BlockInput = " + IntToHex(int(BlockInput), 8));
if(!BlockInput)
{
Memo1->Lines->Add("Ошибка!!!");
FreeLibrary(hDll);
return;
}
Memo1->Lines->Add("Выполняем BlockInput(true)...");
Result = BlockInput(true);
Memo1->Lines->Add("Result = " + IntToStr(Result));
if(Result)
{
Memo1->Lines->Add("Теперь клиатура и мышь доступны только, если нажать CTRL+ALT+DEL");
Memo1->Lines->Add("Ждем 15 сек...");
Sleep(15000);
}
else Memo1->Lines->Add("Ошибка!!!");
Memo1->Lines->Add("Восстанавливаем все как было...");
BlockInput(false);
FreeLibrary(hDll);
Memo1->Lines->Add("Готово.");
NickSpirit
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 29
11.11.2011, 10:58  [ТС]     Аппаратное программирование клавиатуры. #3
судя по всему кроме этого кода должно быть еще что-то. Подключение каких нибудь файлов *.h. Я вообще ноль в с++, подскажите что еще необходимо кроме этого кода дабы проверить работоспособность.
NickSpirit
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 29
14.11.2011, 08:12  [ТС]     Аппаратное программирование клавиатуры. #4
Кто нибудь поможет с решением данной задачи?
Yandex
Объявления
14.11.2011, 08:12     Аппаратное программирование клавиатуры.
Ответ Создать тему
Опции темы

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