Вниз
Скачать: CL | DM;

Как получить имя 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
14-1554
Карелин Артем
2003-08-11 11:40
2003.09.01
Методики оценки неоходимого количества выпивки и закуски.


3-1320
Alex_74
2003-08-06 14:16
2003.09.01
Установка фильтра по полю даты в ApolloTable


1-1424
Jacob
2003-08-19 02:40
2003.09.01
Отсортировать по TDateTime


4-1703
Davinchi
2003-07-03 17:33
2003.09.01
Работа с Word документами


8-1513
МитяЙ2
2003-04-23 12:33
2003.09.01
Иконки в нашей жизни...




   Наверх