Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

Как в W2K сделать NUMLOCK по умолчанию ON?   Найти похожие ветки 

 
PVOzerski   (2003-05-15 11:07) [0]

Такое впечатление, что, в отличие от NT4, W2K не запоминает, в каком состоянии был NUMLOCK в предыдущей сессии. А хочется, чтобы по умолчанию с NumPad"а вводились цифры. Никто не знает?


 
Кулюкин Олег   (2003-05-15 11:25) [1]

Где-то я находил такое.
Яндекс помог.

В реестре ключик поправил - и все.


 
Игорь Шевченко   (2003-05-15 11:39) [2]

Enabling the NumLock Key

By default, Windows 2000 doesn"t enable the NumLock key when a user initially logs
on to a Windows 2000-based system--and even if the user turns on NumLock, Windows
2000 turns it off again whenever the user logs off. You can make the NumLock key
stay on by changing the Registry. Note: You need to either log on as the user or
have the user log on and edit their Registry remotely. To turn on the NumLock key,
set the following Registry value to 2:
HKEY_CURRENT_USER\Control Panel\Keyboard\InitialKeyboardIndicators

By default, Windows 2000 sets the InitialKeyboardIndicators value to 0 (which turns
the NumLock key off).

You can turn on the NumLock key in the default profile so that every new user who
log in to a computer has NumLock enabled by setting the following Registry value
to 2:

HKEY_USERS\.DEFAULT\Control Panel\Keyboard\InitialKeyboardIndicators




 
PVOzerski   (2003-05-15 12:03) [3]

Спасибо


 
PVOzerski   (2003-05-15 12:22) [4]

Увы... :^( Попробовал с администраторскими правами поменять в обоих местах 0 на 2. После перезагрузки там опять нули, а numlock - off.


 
Vint   (2003-05-15 13:37) [5]


В биосе посмотри...


 
Vint   (2003-05-15 13:41) [6]


или напиши программку которая при загрузке переключает NumLock и на этом завершает свою работу...


 
Vlad Oshin   (2003-05-15 13:56) [7]


> PVOzerski ©

а у меня получилось
win2000sp2, менял именно как Администратор(хотя можть и не при чем, но бывает если Админа переименуешь, а не нового добавишь - проблемы появляются)


 
Vlad Oshin   (2003-05-15 14:30) [8]


> HKEY_USERS\.DEFAULT\Control Panel\Keyboard\InitialKeyboardIndicators



 
PVOzerski   (2003-05-15 14:33) [9]

2Vlad Oshin ©:
а вот похоже на то...
2Vint ©:
W2K при загрузке со значениями в BIOS не очень церемонится. А насчет програмки - а как через WinAPI это сделать? Беглый просмотр Help"а мне не помог, а через средства DOS - не пробовал, но подозреваю, что основанная на ядре NT система такое не потерпит.


 
clickmaker   (2003-05-15 15:21) [10]

Ежели через API, то GetKeyBoardState, элемент с индексом VK_NUMLOCK = 1 и SetKeyboardState
Но что-то здесь не чисто, должно и через реестр работать...


 
PVOzerski   (2003-05-15 15:32) [11]

Относительно SetKeyboardState (из Help):
"Because the SetKeyboardState function alters the input state of the calling thread and not the global input state of the system, an application cannot use SetKeyboardState to set the NUM LOCK, CAPS LOCK, or SCROLL LOCK indicator lights on the keyboard. "
И правда, такой путь не работает...


 
Vint   (2003-05-15 15:41) [12]


у меня сейчас нет под рукой 2000 чтобы попробовать, но может прокатит keybd_event?


 
clickmaker   (2003-05-15 16:10) [13]

keybd_event(VK_NUMLOCK, 0, 0, 0) выключает num lock, но его повторный вызов не включает!


 
PVOzerski   (2003-05-15 16:12) [14]

Я только что написал нечто работоспособное на FreePascal:

{$apptype GUI}
{$smartlink on}
uses
windows;
begin
keybd_event(VK_NUMLOCK,$45,0,0);
keybd_event(VK_NUMLOCK,$45,KEYEVENTF_KEYUP,0);
end.

Кажется, это то, что надо.


 
Vint   (2003-05-15 16:16) [15]


Да, вот в советах нашел:

procedure SetNumLock(bState:Boolean);
var

KeyState : TKeyboardState;
begin

GetKeyboardState(KeyState);
if ( (bState) and (not ((KeyState[VK_NUMLOCK] and 1)=1) ) or
( (not (bState)) and ((KeyState[VK_NUMLOCK] and 1)=1))) then
// Simulate a key press
keybd_event(VK_NUMLOCK, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0);
// Simulate a key release
keybd_event( VK_NUMLOCK, $45, (KEYEVENTF_EXTENDEDKEY or
KEYEVENTF_KEYUP), 0);
end;

Windows NT/2000/XP: The keybd_event function can also toggle the NUM LOCK, CAPS LOCK, and SCROLL LOCK keys


 
PVOzerski   (2003-05-15 16:23) [16]

Дело за малым (уже чисто теоретически): зачем в примере из "советов" KEYEVENTF_EXTENDEDKEY? Про этот флаг написано: If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224). А фактически работает не только без него, но даже с 0 вместо $45 (я это 45H добыл из справочника по BIOS).


 
McSimm   (2003-05-15 16:30) [17]

Господа, описанная ниже процедура практикуется давно и успешно. Проверено на многих компьютерах:

- Загружаемся в W2k в требуемый профиль
- Устанавливаем NUM LOCK в нужное состояние
- Нажимаем Ctrl-Alt-Del и выбираем Log off, подтверждаем (Yes)
- При следующей загрузке этого профиля NUM LOCK устанавливается в нужное состояние.


 
Vint   (2003-05-15 16:33) [18]


я не знаю, может типа отслеживается когда клавиша удерживается в нажатом положении?



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
1-2926
Rus
2003-05-20 18:27
2003.06.02
В чужом приложении сделать модальную форму немодальной.


14-3151
Mike_Goblin
2003-05-15 10:01
2003.06.02
18 апреля умер Эдгар Кодд


1-2948
kost
2003-05-21 08:12
2003.06.02
res


4-3210
Andrej
2003-04-04 16:12
2003.06.02
clipboard


1-2963
TurburatoR
2003-05-21 10:51
2003.06.02
TStringList





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский