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

📄 unit1.~pas

📁 QQ刷人机! QQ刷人机
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2, ExtCtrls, math;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Button3: TButton;
    Timer2: TTimer;
    Timer3: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    procedure hotkey(var msg:tmessage);message wm_hotkey;
    procedure SendKeys(sSend: string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  mylist1:TStringlist;
  mylist2:TStringlist;
  mylist3:TStringlist;
  F1hk:atom;
  F2hk:atom;
  F3hk:atom;
  F4hk:atom;
  c1,c2,c3:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.hotkey(var msg:tmessage);        //热键响应事件
var
  s:byte;
begin
  if msg.LParamHi=VK_F1 then
  begin
    timer1.Enabled:=false;
    timer2.Enabled:=false;
    timer3.Enabled:=false;
    timer1.Enabled:=true;
  end;
  if msg.LParamHi=VK_F2 then
  begin
    timer1.Enabled:=false;
    timer2.Enabled:=false;
    timer3.Enabled:=false;
    timer2.Enabled:=true;
  end;
  if msg.LParamHi=VK_F3 then
  begin
    timer1.Enabled:=false;
    timer2.Enabled:=false;
    timer3.Enabled:=false;
    timer3.Enabled:=true;
  end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  F1hk:=globaladdatom('F1')-$C000;
  F2hk:=globaladdatom('F2')-$C000;
  F3hk:=globaladdatom('F3')-$C000;
  RegisterHotKey(handle,F1hk,0,vk_f1);
  RegisterHotKey(handle,F2hk,0,vk_f2);
  RegisterHotKey(handle,F3hk,0,vk_f3);
  if fileexists('普通骂人.txt') then
  begin
    mylist1:=TStringlist.Create;
    mylist1.LoadFromFile('普通骂人.txt');
  end;
  if fileexists('长像骂人.txt') then
  begin
    mylist2:=TStringlist.Create;
    mylist2.LoadFromFile('长像骂人.txt');
  end;
  if fileexists('其它骂人.txt') then
  begin
    mylist3:=TStringlist.Create;
    mylist3.LoadFromFile('其它骂人.txt');
  end;
  c1:=mylist1.Count;
  c2:=mylist2.Count;
  c3:=mylist3.Count;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  globalDeleteatom(F1hk);
  globalDeleteatom(F2hk);
  globalDeleteatom(F3hk);
  mylist1.Free;
  mylist2.Free;
  mylist3.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  h:integer;
begin
  Randomize;
  h:=RandomRange(0,c1);
  SendKeys(mylist1.Strings[h]);
  keybd_event(13,mapvirtualkey(13,0),0,0);
  keybd_event(13,mapvirtualkey(13,0),keyeventf_keyup,0);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
  h:integer;
begin
  Randomize;
  h:=RandomRange(0,c2);
  SendKeys(mylist2.Strings[h]);
  keybd_event(13,mapvirtualkey(13,0),0,0);
  keybd_event(13,mapvirtualkey(13,0),keyeventf_keyup,0);
end;

procedure TForm1.Timer3Timer(Sender: TObject);
var
  h:integer;
begin
  Randomize;
  h:=RandomRange(0,c3);
  SendKeys(mylist3.Strings[h]);
  keybd_event(13,mapvirtualkey(13,0),0,0);
  keybd_event(13,mapvirtualkey(13,0),keyeventf_keyup,0);
end;

procedure TForm1.SendKeys(sSend:string);
var
    i:integer;
    focushld,windowhld:hwnd;
    threadld:dword;
    ch: byte;
begin
  windowhld:=GetForegroundWindow;
    //获得前台应用程序的活动窗口的句柄
  threadld:=GetWindowThreadProcessId(Windowhld,nil);
    //获取与指定窗口关联在一起的一个进程和线程标识符
  AttachThreadInput(GetCurrentThreadId,threadld,true);
    //通常,系统内的每个线程都有自己的输入队列。          //
    //AttachThreadInput允许线程和进程共享输入队列。        //
    //连接了线程后,输入焦点、窗口激活、鼠标捕获、键盘状态 //
    //以及输入队列状态都会进入共享状态          //
  Focushld:=getfocus;
    //获得拥有输入焦点的窗口的句柄
  AttachThreadInput(GetCurrentThreadId,threadld,false);
  if focushld = 0 then Exit;
    //如果没有输入焦点则退出发送过程
  i := 1;
  while i <= Length(sSend) do
    //该过程发送指定字符串(中英文皆可以)
  begin
    ch := byte(sSend[ i ]);
    if Windows.IsDBCSLeadByte(ch) then
    begin
      Inc(i);
      SendMessage(focushld, WM_IME_CHAR, MakeWord(byte(sSend[ i ]), ch), 0);
    end
    else
      SendMessage(focushld, WM_IME_CHAR, word(ch), 0);
    Inc(i);
  end;
  postmessage(focushld,WM_keydown,13,0);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  timer1.Interval:=strtoint(edit1.text);
  timer2.Interval:=strtoint(edit1.text);
  timer3.Interval:=strtoint(edit1.text);
end;

end.

⌨️ 快捷键说明

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