Страница 2 из 3
Re: статус клавиш num, caps и scroll lock
Добавлено: 22 апр 2008, 09:41
BBB
Alex_Burn писал(а):Хм...
а ваш код тоже под винду не пашет?
А то созданная программа никак не влияет на индикаторы клавы.
Попробовал под Win2000 - не "зажигает". Под Win98 - нормально отрабатывает.
Может, под виндами в таком случае через WinAPI, через
SetKeyboardState? (Не знаю, насколько необходимо сделать это все через ассемблер).
keybd_event
Добавлено: 22 апр 2008, 09:47
BBB
В MSDN-е в описании ф-ии
keybd_event наткнулся на пример, который как раз переключает NUM LOCK.
Код: Выделить всё
[b]Example Code[/b]
The following sample program toggles the NUM LOCK light by using keybd_event()
with a virtual key of VK_NUMLOCK. It takes a Boolean value that indicates whether the
light should be turned off (FALSE) or on (TRUE). The same technique can be used for
the CAPS LOCK key (VK_CAPITAL) and the SCROLL LOCK key (VK_SCROLL).
#include <windows.h>
void SetNumLock( BOOL bState )
{
BYTE keyState[256];
GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
(!bState && (keyState[VK_NUMLOCK] & 1)) )
{
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
void main()
{
SetNumLock( TRUE );
}
А, вот еще примечание для keybd_event:
Windows NT/2000/XP: This function has been superseded. Use
SendInput instead.
Re: статус клавиш num, caps и scroll lock
Добавлено: 22 апр 2008, 13:39
Alex_Burn
" писал(а):
Не знаю, насколько необходимо сделать это все через ассемблер
Ну желательно конечн в АСМе
" писал(а):Под Win98 - нормально отрабатывает.
Где же я 98-ю Винду-то возьму?..
Пардон за тупой вопрос, но как проги из под DOS запускать? (Просто я этого никогда не делал)
Re: статус клавиш num, caps и scroll lock
Добавлено: 22 апр 2008, 14:17
BBB
Alex_Burn писал(а):Пардон за тупой вопрос, но как проги из под DOS запускать? (Просто я этого никогда не делал)
Вопрос не совсем ясен. Уточните.
Re: статус клавиш num, caps и scroll lock
Добавлено: 22 апр 2008, 14:43
Alex_Burn
Ну, г-н airyashov писал что прога пашет под чистый DOS.
Вот я и подумал, возможно ли не запускать винду, а заходить через DOS (в смысле, через загрузочную дискету, если, конечно данное действие возможно)
Я пытался решить данную проблему следующим путем:
Скачал эмулятор DOS. Но он почему-то не работает. Можно работать только на виртуальной дискете, а на HDD заходить не хочет, говорит что-то типа 'Invalid Drive C:'. Правда я пытался эмулировать DOS на ноуте, где у меня гибкого дисковода нет, может в этм проблема. Хотя, виртуалбно он есть.
В общем, мне хочется увидеть работоспособность проги, но пока не выходит... :-(
Re: статус клавиш num, caps и scroll lock
Добавлено: 22 апр 2008, 16:55
somewhere
DOS Box 0.72 в помощь...
Re: статус клавиш num, caps и scroll lock
Добавлено: 22 апр 2008, 17:22
Alex_Burn
" писал(а): DOS Box 0.72 в помощь...
Пробовал, прога из поста 4 данной темы на индикаторы не влияет
Re: статус клавиш num, caps и scroll lock
Добавлено: 22 апр 2008, 19:57
Alex_Burn
Пробовал запускать через
DOSBox и код любезно предоставленный
airyashov, и код уважаемого
BBB, но, к сожалению, никакого эффекта программы на индикаторы клавы.

Может быть, у кого-нибудь будут еще мысли по данному вопросу?

Я пока пошел вешаться...

Re: статус клавиш num, caps и scroll lock
Добавлено: 23 апр 2008, 08:56
airyashov
чистый DOS - это загрузочная дискете, либо какой-нить реанимационный диск, либо NERO создайте загрузочный CD с DOS. Загружаете компутер с такого носителя и проверяйте программы.
Re: статус клавиш num, caps и scroll lock
Добавлено: 23 апр 2008, 09:03
Alex_Burn
" писал(а):
чистый DOS - это загрузочная дискете, либо какой-нить реанимационный диск, либо NERO создайте загрузочный CD с DOS. Загружаете компутер с такого носителя и проверяйте программы.
Нельзя ли по подробней как это осуществить.
Ну, загрузочную дискету я уже создал.
Можно ли описать мне мои дальнейшие действия?