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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> раскладка клавы в WinXP/NT/2000, Всем посмотреть plz. 
:(
    Опции темы
RA
Дата 16.3.2004, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Итак в выше упомянутых операционках функция
GetKeyboardLayoutName определяет раскладку
для текущего окна, но посколько передомной стоит задача
безпроводного (безпроводного - не использующего dll) keylogger'a на WinApi
то для трансляции полученных клавишь мне необходимо
получать раскладку клавиатуры каждый раз когда она меняется;

Вот что мне удалось придумать, но у этого способа есть один касяк
почемуто при клике мышкой на Desctop система убивает Shell (Explorer.exe)

Вообщем глянте и скажите своё мнение:

Код


Var
H: HHook;
...

{Для хука}
H := SetWindowsHookEx( WH_SHELL, @ Proc, Hinstance, 0 );
...
{Для унхука}
UnhookWindowsHookEx( H );
...

function Proc(nCode: Integer; wParam, lParam: Integer): Integer; stdcall;
var     KL: array [0..8] of Char;
begin
 if nCode >= 0 then    begin
   case nCode of
   HSHELL_WINDOWACTIVATED,
   HSHELL_LANGUAGE:
     begin
           GetKeyboardLayoutName(KL);
           Form1.edit1.text:=(KL);
     end;
     end;    
 end;
 Result := CallNextHookEx( H, nCode, wParam, lParam);
end;


PM   Вверх
Maverick
Дата 16.3.2004, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

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



procedure TfmMain.TestClick(Sender: TObject);
var rus, lat, cur : HKL;
begin;
rus:=LoadKeyboardLayout('00000419', 0);
lat:=LoadKeyboardLayout('00000409', 0);
cur := GetKeyboardLayout(0);
if cur = lat then begin
//ShowMessage('Lat');
ActivateKeyboardLayout(rus,KLF_UNLOADPREVIOUS);
end;
end;

Ничего в хуках и беспроводных keylogger-ах не понимаю.... smile.gif...

Просто из желания помочь.... Делаю я так....


--------------------
smile
PM ICQ GTalk   Вверх
RA
Дата 16.3.2004, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Maverick ты ? Валенок ? или я Очень умно суть вопроса изложил ? adv/14.gif
PM   Вверх
stab
Дата 16.3.2004, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



Попробуй Form1.edit1.text:=(KL) заменить на, просто, MessageBoxA, именно на апишный, а не дельфевый ShowMessage. У меня помнится то ж когда-то проблемы были с VCL в хуках. Подозрения у меня такие, что иногда или всегда (?) хук вызывается в другом потоке, может и какие-то другие причины, но замена VCL на API помогла.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
RA
Дата 16.3.2004, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Cully а кроме MessageBoxA есть какиенить ещё идеи?

Испытывал запись в атомы - Reыult = ' FullSuxxx and Shit ' ;
На этом фантазия иссякла.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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