UnloadKeyboardLayout не удаляется расклладка

 
0
 
Delphi, Kylix & Pascal | Windows
ava
Akella | 21.01.2013, 16:48
D2007
Win7


procedure TForm13.Button1Click(Sender: TObject);
var
   Layout: array[0.. KL_NAMELENGTH] of char;
begin
  LoadKeyboardLayout(StrCopy(Layout,'00000422'), KLF_ACTIVATE);
  if GetLastError > 0 then
    ShowMessage(SysErrorMessage(GetLastError));//показываем текст ошибки  
end;

procedure TForm13.Button2Click(Sender: TObject);
begin
  UnloadKeyboardLayout(LANG_UKRAINIAN);
  if GetLastError > 0 then
    ShowMessage(SysErrorMessage(GetLastError));//показываем текст ошибки
end;


Раскладка добавляется, но НЕ удаляется.

При чем интересно так добавляется: в языковой панели есть украинский язык, можно переключаться на него, а в списке "Языки и службы текстового ввода" его нет.


user posted image
Kommentare (7)
ava
Keeper89 | 25.01.2013, 02:45 #
Потоков нет случайно?
ava
Akella | 25.01.2013, 10:07 #
Нет. Простейшее приложение с одной формой.

später ergänzt:
Я уже решил проблему с помощью XAML+CMD. Но, хотелось бы и в WinAPI.
ava
Чучмек | 25.01.2013, 19:38 #
Цитата (Akella @  21.1.2013,  15:48 findReferencedText)
 но НЕ удаляется

Загружаешь $422, а удалить пытаешься $22.
ava
Akella | 26.01.2013, 14:26 #
Тогда подскажи, как правильно удалить, что подставить сюда UnloadKeyboardLayout(LANG_UKRAINIAN);

später ergänzt:
А ты посмотри на картинку:
Цитата (Akella @  21.1.2013,  15:48 findReferencedText)
в языковой панели есть украинский язык, можно переключаться на него, а в списке "Языки и службы текстового ввода" его нет.


Как так?
ava
kami | 26.01.2013, 17:42 #
Цитата (Akella @  26.1.2013,  14:26 findReferencedText)
что подставить сюда UnloadKeyboardLayout(LANG_UKRAINIAN);

hkl, возвращенный LoadKeyboardLayout, я думаю smile 

Цитата (Akella @  26.1.2013,  14:26 findReferencedText)
Как так?

Цитата


This function only affects the layout for the current process or thread.

ava
Чучмек | 26.01.2013, 18:01 #
Цитата (Akella @  26.1.2013,  14:26 findReferencedText)
что подставить сюда UnloadKeyboardLayout


Цитата (kami @  26.1.2013,  17:42 findReferencedText)
hkl, возвращенный LoadKeyboardLayout, я думаю


Цитата (Чучмек @  25.1.2013,  19:38 findReferencedText)
$422,

ava
Чучмек | 26.01.2013, 20:02 #

function MAKELANGID(usPrimaryLanguage,usSubLanguage:Word):cardinal;
begin
result:= (usSubLanguage shl 10) or usPrimaryLanguage;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
LoadKeyboardLayout(PChar(IntToHex(MAKELANGID(LANG_UKRAINIAN,SUBLANG_DEFAULT),8)), KLF_ACTIVATE);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
UnloadKeyboardLayout(MAKELANGID(LANG_UKRAINIAN,SUBLANG_DEFAULT));
end;



später ergänzt:
MAKELANGID
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden