Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как узнать раскладку, как узнать раскладку 
:(
    Опции темы
Budy
Дата 27.4.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



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


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Rouse_
Дата 27.4.2005, 11:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 5
Всего: 29



Код

procedure TfrmMain.Timer1Timer(Sender: TObject);
var
  FID: Cardinal;
begin
  FID := GetWindowThreadProcessId(GetForegroundWindow, nil);
  AttachThreadInput(GetCurrentThreadId, FID, True);
  Caption := IntToStr(GetKeyboardLayout(FID) and $FFFF);
  AttachThreadInput(GetCurrentThreadId, FID, False);  
end;


Это сообщение отредактировал(а) Rouse_ - 27.4.2005, 11:49


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Akella
Дата 27.4.2005, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Код

Function TfmMain.LayOut:String;
Var
  pch: PChar;
Begin//проверяем раскладку
  GetMem(pch, 100);
  GetKeyboardLayoutName(pch);
  if pch='00000419' then Result:='ru';
  if pch='00000409' then Result:='en';
  FreeMem(pch);
end;



а так мона изменять
Код

Procedure TfmMain.ChKeyb;
var
 Layout: array[0.. KL_NAMELENGTH] of char;
begin//если включен Scroll Lock, то включаем русскую раскладку
     //иначе английскую
  if GetKeyState(vk_scroll)=0 then
   LoadKeyboardLayout( StrCopy(Layout,'00000419'),KLF_ACTIVATE) // русская
  else
   LoadKeyboardLayout(StrCopy(Layout,'00000409'),KLF_ACTIVATE) // английская
end;

PM MAIL   Вверх
Rouse_
Дата 27.4.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 5
Всего: 29



dsergey, ему в чужом приложении нужно...


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Budy
Дата 30.4.2005, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Rouse_, ага, надобно чужое проверять, а точнее то, которое активно.


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
RA
Дата 30.4.2005, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Я там это реализовал через Dll ->
http://forum.vingrad.ru/index.php?act=Atta...=post&id=261960

Это сообщение отредактировал(а) RAdmin - 30.4.2005, 12:37
PM   Вверх
Rouse_
Дата 30.4.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 5
Всего: 29



Цитата(Budy @ 30.4.2005, 11:59)
Rouse_, ага, надобно чужое проверять, а точнее то, которое активно.

Ну так я же тебе в первом сообщении показал код...


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Medved
Дата 30.4.2005, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Ловить сообщение Windows о смене раскладки (забыл какое, найти это не сложно). По таймеру - имхо топорно очень.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
RA
Дата 30.4.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Цитата(Pegas @ 30.4.2005, 18:39)
- имхо топорно очень.

солидарен. smile
PM   Вверх
Budy
Дата 5.5.2005, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Спасибо, посмотрел все, но код от Rouse_'а больше подходит


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1211 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.