![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нажать NumLock? [D5, Win95/98]
Spider-Lex © (2003-02-06 06:54:00)Люди!Как програмно нажать NumLock?
Song (2003-02-06 12:22:00) [1]keybd_event()
MARcoDEN (2003-02-06 10:07:00) [2]Зачем же на С? Просят же на Дельфи!
Вот:
VAR
KS: TKeyboardState;
begin
GetKeyboardState(KS);
KS[144] := KS[144] XOR 1; //Num Lock
SetKeyboardState(KS);
end;
Zev (2003-02-06 07:27:00) [3]//---------------------------------------------------------------------------
// NumLock вкл / выкл
//---------------------------------------------------------------------------
void __fastcall SetNumLock( bool bState )
{
TKeyboardState KeyState;
GetKeyboardState( KeyState );
if (
( ( GetKeyState( VK_NUMLOCK ) == 1 )&&( bState == true ) )||
( ( GetKeyState( VK_NUMLOCK ) == 0 )&&( bState == false ) )
)
{
// Симитируйте нажатие клавиши
keybd_event( VK_NUMLOCK, 0x45,( KEYEVENTF_EXTENDEDKEY | 0 ),0);
// Симитируйте отпуск клавиши
keybd_event( VK_NUMLOCK, 0x45,( KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP ),0);
// установить
SetKeyboardState( KeyState );
}
}
//---------------------------------------------------------------------------
// выключить
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
SetNumLock( false );
}
//---------------------------------------------------------------------------
// включить
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SetNumLock( true );
}
//---------------------------------------------------------------------------