Форум: "Основная";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
ВнизКак получить имя keyboard layot-a? Найти похожие ветки
← →
Боян Георгиев (2003-08-17 18:08) [0]Привет мастера!
Я надо получить имя keyboard layot-a?
Я попробул функцию GetKeyboardLayoutName, но програма дает ошибка. Вот код:
procedure TForm1.Button1Click(Sender: TObject);
var
a: pAnsiChar;
begin
GetKeyboardLayoutName(a);
ShowMessage(a);
end;
Я знаю что функция работает на win98,
но мне надо използовать ее на win2000.
Помогите, мастера.
← →
DVM (2003-08-17 18:10) [1]память не выделили под название
← →
Anatoly Podgoretsky (2003-08-17 18:11) [2]А память пушкин будет выделять?
Надо выделить как минимум KL_NAMELENGTH байт под буфер
← →
Боян Георгиев (2003-08-17 18:19) [3]ок. Заделил память для а
procedure TForm1.Button2Click(Sender: TObject);
var
a: pansichar;
begin
new(a);
GetKeyboardLayoutName(a);
ShowMessage(a);
dispatch(a);
end;
Результат: 00020409
Я хочу получить имя клавиатуры
Или не заделяю правильно памяти?
SetLength не совместима с a.
Как надо заделить памяти
← →
DVM (2003-08-17 18:26) [4]Можно так наверное...
procedure TForm1.Button2Click(Sender: TObject);
var
a: array[1..KL_NAMELENGTH] of char;
begin
GetKeyboardLayoutName(@a[1]);
...
end;
← →
MBo (2003-08-17 18:32) [5]var
hk:dword;
a: array[0..MAX_PATH] of char;
begin
hk:=GetKeyboardLayout(0);
GetLocaleInfo(LoWord(hk), LOCALE_SLANGUAGE, a, MAX_PATH);
ShowMessage(a);
← →
Боян Георгиев (2003-08-17 19:41) [6]> MBo & DVM
Спасибо для примеров!
Они работают отлично!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c