Четверг, 28.03.2024, 16:02 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Волк-1024, Anton93, xXxSh@dowxXx  
delphicode » Delphi » Вирусология Delphi » Определить регистра буквы
Определить регистра буквы
HTTqpДата: Воскресенье, 24.05.2015, 01:14 | Сообщение # 1
Частый гость
Зарегистрирован: 08.10.2014
Группа: Пользователи
Сообщений: 57
Статус: Offline
Помогите люди, я уже не могу биться над этой задачей. Суть такова, с помощью хука отлавливаю нажатия клавиш (интересует только английские буквы и цифры). Так вот вроде все работает только вот выводится все в однов регистре в верхнем. нужно чтобы если вводится нижний писать нижний, если верхний тогда писать заглавные.
вот мой код


Код

unit Unit1;

interface

uses
   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
   TForm1 = class(TForm)
     Memo1: TMemo;

     procedure FormCreate(Sender: TObject);
   private
     { Private declarations }

   public
     { Public declarations }
   end;

type
   PKbdDllHookStrukt = ^TKbdDllHookStrukt;
   _KBDLLHOOKSTRUCT = record
     vkCode: DWORD;
     scanCode: DWORD;
     flags: DWORD;
     time: DWORD;
     dwExtraInfo: PDWORD;
   end;
   TKbdDllHookStrukt = _KBDLLHOOKSTRUCT;

var
   StrResult: String;

var
   Form1: TForm1;
   hHook: THandle;

implementation

{$R *.dfm}

function LowLevelKeyboardProc(nCode: Integer;
   WParam: WPARAM; LParam: LPARAM): LRESULT stdcall;
begin
   StrResult := '';
   if nCode = HC_ACTION then
     Result := CallNextHookEx(hHook, nCode, WParam, LParam);
   case WParam of
     WM_KEYDOWN
     begin
       StrResult := Chr(PKbdDllHookStrukt(LParam)^.vkCode);
       Form1.Memo1.Lines.Add(StrResult);
     end;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
const
   WH_KEYBOARD_LL = 13;
begin
   hHook := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);
   if hHook = 0 then RaiseLastOSError;
end;

end.
 
Волк-1024Дата: Воскресенье, 24.05.2015, 02:46 | Сообщение # 2
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Очередной кейлоггер на делфе?! В инете по первому же запросу выдаст миллионы ссылок с подобным, в кавычках, добром!
По сути могу лишь сказать, что нужно следить за такими клавишами, как Капслук и Шифт. Они отвечают как раз за регистр. И вообще этот код нужно выкинуть.


Pascal, C\C++, Assembler, Python
 
delphicode » Delphi » Вирусология Delphi » Определить регистра буквы
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz