Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.31;
Скачать: CL | DM;

Вниз

... ЯЗЫК ... как много в этом звуке   Найти похожие ветки 

 
AlexGreG ©   (2002-10-22 07:00) [0]

Привет, привет.

Хочется при запуске программы вводить пароль, используя латинские символы, а после входа в систему сразу (не нажимая Alt+Shift) вводить русские символы.

Как бы это реализовать. Чувствую, где-то есть стандартные функции...

Подскажи, пожалуйста, Мастер.
Заранее благодарю.

AlexGreG


 
roadster   (2002-10-22 07:03) [1]

Есть у меня модулек...
//********************************************************
//Юнит содержи фичи для переключения раскладки клавиатуры
//в пределах приложения
//********************************************************
unit kbrdtools;

interface
const
LANGUAGE_NEUTRAL ="00000000";
LANGUAGE_PROCESS_DEFAULT="00000400";
LANGUAGE_GERMAN ="00000407";
LANGUAGE_USA ="00000409";
LANGUAGE_UK ="00000809";
LANGUAGE_FRENCH ="0000040C";
LANGUAGE_ITALIAN ="00000410";
LANGUAGE_RUSSIAN ="00000419";
//*********************
//Функсьён SetLanguage ставит раскладку клавы, указанную
//в параметре Language.
//если Language не указать, будет ставиться русская раскладочка
//в качестве Language можно передать вышеописанные константы
//или вручную строку.
//подробнее про раскладки можно посмотреть в справке по
//WIN API в разделе Language Identifiers. Там можно посмотреть
//что передать в качестве параметра. Есть особенность:
//Например, для русской страницы идентификатором является 0x0419,
//значит, в качестве Language следует передать строку "00000419"
//за эти трансформации меня не надо ругать и обзывать ламером,
//потому что это в апишную LoadKeyboardLayout так надо передавать- строкой
//Пы.Сы. Функция вернет вранье, если раскладочку не удалось поставить
function SetLanguage(Language:String=LANGUAGE_RUSSIAN):Boolean;
//Функция SetRussianLanguage ставит РУССКУЮ раскладку
//На самом деле происходит SetLanguage(LANGUAGE_RUSSIAN)
function SetRussianLanguage:Boolean;
//Следующие две функции ставят в приложении соответственно
//следующую или предыдущую раскладку
function SetNextLanguage:Boolean;
function SetPreviousLanguage:Boolean;
//*********************
implementation
uses
Windows;
//*********************
function SetLanguage(Language:String=LANGUAGE_RUSSIAN):Boolean;
var
KBHandle:HWND;
begin
Result:=True;
KBHandle:=LoadKeyboardLayout(PChar(Language),KLF_ACTIVATE);
if KBHandle<>0
then begin
if ActivateKeyboardLayout(KBHandle,0)=0
then Result:=False;
end
else Result:=False;
end;
//*********************
function SetRussianLanguage:Boolean;
begin
Result:=False;
if SetLanguage(LANGUAGE_RUSSIAN) then Result:=True;
end;
//*********************
function SetNextLanguage:Boolean;
begin
Result:=False;
if ActivateKeyboardLayout(HKL_NEXT,0)<>0
then Result:=True;
end;
//*********************
function SetPreviousLanguage:Boolean;
begin
Result:=False;
if ActivateKeyboardLayout(HKL_PREV,0)<>0
then Result:=True;
end;
//*********************
end.


 
MetalFan ©   (2002-10-22 09:10) [2]

В русской версии Windows 2000 при входе в систему по умолчанию установлена русская раскладка клавиатуры. Чтобы устанавливалась английская, надо в разделе реестра

HKEY_USERS\.DEFAULT\Keyboard Layout\Preload
строковому параметру "1" присвоить значение "00000409", а параметру "2" — значение "00000419".


 
AlexGreG ©   (2002-10-22 13:34) [3]

Отличный код.
Спасибо тебе, roadster

для MetalFan:

... Причём здесь реестр


 
roadster   (2002-10-22 14:04) [4]

:0)



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

Текущий архив: 2002.10.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
14-101446
Anatoly Podgoretsky
2002-10-09 19:09
2002.10.31
Перепись инструкция


1-101290
dimonf
2002-10-22 16:55
2002.10.31
Как вытащить данные из документа Microsoft Word.


3-101134
Lola
2002-10-09 14:58
2002.10.31
Создание альяса базы в ODBC в Inno Setup


14-101449
Rouse_
2002-10-08 23:27
2002.10.31
Встреча в МОСКВЕ


6-101429
klik
2002-08-28 09:51
2002.10.31
А что будет?