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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
4-101576
---Vect---
2002-09-19 14:07
2002.10.31
Аналог tdump, но не из командной строки


1-101342
Luke
2002-10-20 23:42
2002.10.31
Деинсталяторы


1-101362
brestmarket
2002-10-20 11:52
2002.10.31
Как лучше определить что ссылка в WebBrowser - путь к каталогу ?


14-101460
Vlad2
2002-10-10 09:05
2002.10.31
ухожу в отпуск


1-101220
sasha_delphi
2002-10-21 14:18
2002.10.31
Как в RichEdit е в большом тексте вывести на экран нужный фрагмен





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский