Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2015, 03:07   #1
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию Хук на клавиатуру, русские буквы

Есть простой хук, он пишет в лог нажатые клавиши, вернее их коды. Нельзя ли как оформить это дело так (не очень сложным способом) чтобы он писал нормально символы?
Ну типа как вот при таком раскладе, что нажали то и получили в Panel
Код:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  Panel1.Caption := Panel1.Caption + Key;
end;
NIKOLAYY2 вне форума Ответить с цитированием
Старый 16.01.2015, 07:13   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Когда-то использовал такую функцию, уже не помню деталей, но, вроде как, делать должна то, что описываете.
Код:
function GetCharFromVirtualKey(Key: Word): string;
var
  kbState: TKeyboardState;
  asciiResult: Integer;
begin
  GetKeyboardState(kbState);
  SetLength(Result, 2);
  asciiResult := ToAscii(key, MapVirtualKey(key, 0), kbState, @Result[1], 0);
  case asciiResult of
    0: Result := '';
    1: SetLength(Result, 1);
    2: ;
  else
    Result := '';
  end;
end;
вызов
Код:
procedure TfMain.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  s: string;
begin
  s := GetCharFromVirtualKey(key);
  if (s <> '') then
    ShowMessage(s[1]);
end;
и кстати, все подробности нагугливаются по 3й после бегина строке из функции.

Последний раз редактировалось phomm; 16.01.2015 в 07:24.
phomm вне форума Ответить с цитированием
Старый 18.01.2015, 18:37   #3
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

phomm
Работает, хорошо работает,но только когда форма активна (на переднем плане).
А если форму свернуть то перестает работать.

А с неактивной формой подобное собрать только хук через dll- файл можно?
NIKOLAYY2 вне форума Ответить с цитированием
Старый 18.01.2015, 19:07   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,826
По умолчанию

да, только c dll. тогда даже если форма неактивна, то всё равно может принимать сообщения и обрабатывать. пример во вложенном архиве: даже если форма свёрнута, то код нажатой клавиши всё равно будет перехвачен и показан на форме
Вложения
Тип файла: rar Новая папка.rar (122.7 Кб, 23 просмотров)
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 18.01.2015 в 19:09.
NetSpace вне форума Ответить с цитированием
Старый 18.01.2015, 20:29   #5
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

NetSpace ага работает, пишет код клавиши цифрой. А так чтобы символ клавиши буквой записывало (в компонент Memo или в файл) через пробел вы немогли бы переделать?
NIKOLAYY2 вне форума Ответить с цитированием
Старый 18.01.2015, 21:38   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,826
По умолчанию

на вот, в этом архивчике программа KeyLogger - он записывает нажатые клавиши в файл. как русские, так и английские. вобщем, то, что можно переделать под себя (лишнее убрать). там и DLL и проект, который эту DLL использует. пользуйся сам и неси добро на компьютеры юзеров, ламеров и других чайников нечищенных.
Вложения
Тип файла: rar Keylogger.rar (172.7 Кб, 74 просмотров)
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 18.01.2015, 23:13   #7
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
что нажали то и получили
А вы с какой целью интересуетесь? Keylogger.rar работает, но его видно на мониторе. Существуют готовые клавиатурные шпионы. У меня такой стоит. Очень доволен...
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 19.01.2015, 19:19   #8
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

NetSpace
Ага хороший кейлогер, мне нравится, но из за <Т>,<а>,<к>,<и>,<х>, скобок и помещения между ними Shift и Atl и прочих клавиш, текстовый лог становится очень трудно читаемым.
Я бы желал получать в лог чистый текст, мне бы так удобнее было )

zvygin1964
А у вас кого вида кейлогер стоит? На dll основе я думаю? Как он у вас создает лог файл и что в него пишет?
NIKOLAYY2 вне форума Ответить с цитированием
Старый 19.01.2015, 19:40   #9
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,826
По умолчанию

ну дак исправь, поищи в коде где эти скобки в буфер записываются и удали. будет тебе чисто текст =)))
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 19.01.2015, 22:23   #10
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Это готовое изделие из недр сети.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русские буквы morgan97 Паскаль, Turbo Pascal, PascalABC.NET 4 10.03.2011 10:15
только русские буквы Dgon777 Microsoft Office Access 6 11.11.2010 22:13
Хук на клавиатуру xshStasX Помощь студентам 1 09.08.2008 16:56
Хук (hook) на клавиатуру eoln Win Api 17 03.05.2008 18:35