Страница: 1 |
Страница: 1 |
Вопрос: Индикаторы клавиш Caps Lock Num Lock Scroll Lock
Добавлено: 25.10.07 21:49
Автор вопроса: mechanical_man
Подскажите, пожалуйста: как можно программно включить индикаторы клавиш Caps Lock, Num Lock, Scroll Lock.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 25.10.07 22:58
Наверное как и в VB6 - WinAPI.
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 25.10.07 23:02
#include <string>
#define _WIN32_WINNT 0x0500
#include <windows.h>
using namespace std;
void PressKey(WORD vk){
INPUT input;
memset(&input, 0, sizeof(input));
input.type = INPUT_KEYBOARD;
input.ki.wVk = vk;
input.ki.dwFlags = 0;
SendInput(1, &input, sizeof(input));
input.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &input, sizeof(input));
}
void numlock(bool on){
SHORT nl = GetKeyState(VK_NUMLOCK);
if((nl & 1) != on) PressKey(VK_NUMLOCK);
}
void capslock(bool on){
SHORT nl = GetKeyState(VK_CAPITAL);
if((nl & 1) != on) PressKey(VK_CAPITAL);
}
void scrolllock(bool on){
SHORT nl = GetKeyState(VK_SCROLL);
if((nl & 1) != on) PressKey(VK_SCROLL);
}
int main(){
string s;
bool k[3] = {true, false, false};
int i = 0;
while(true){
k[i] = !k[i];
k[i+1)%3] = !k[i+1)%3];
i++;
numlock(k[0];
capslock(k[1];
scrolllock(k[2];
Sleep(100);
}
return 0;
}
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 25.10.07 23:24
http://www.vbnet.ru/samples/download.aspx?id=710