Delphi 实现 定时模拟键盘按键

Delphi 实现 定时模拟键盘按键,第1张

添液兄加一个timer1控件+button1,将里面的代码全替换如下就可以了键埋卖

unit Unit1

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls

type

TForm1 = class(TForm)

Button1: TButton

Timer1: TTimer

procedure Button1Click(Sender: TObject)

procedure Timer1Timer(Sender: TObject)

procedure FormCreate(Sender: TObject)

private

{ Private declarations }

public

{ Public declarations }

end

var

Form1: TForm1

i:integer//模拟按键时间

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject)

begin

if Timer1.Enabled=true then

begin

i:=0//清零

Timer1.Enabled:=false

end

else

begin

i:=0//清零

Timer1.Enabled:=true

end

end

procedure TForm1.Timer1Timer(Sender: TObject)

begin

i:=i+1

if i mod 10=0 then

keybd_event($72,0,0,0)//$72是H键的虚拟键值,若稿逗要h健则是改为$48

end

procedure TForm1.FormCreate(Sender: TObject)

begin

i:=0//初始化i

Timer1.Enabled:=false

end

end.

var

hwndwindow:hwnd

begin

hwndwindow:=findwindow(nil,'DELPHI技巧')//DELPHI技艺改成你要最大化的窗口标提.

if hwndwindow<>0 then//不等于0则是找到了这个磨猛茄窗体

postmessage(hwndwindow,WM_SYSCOMMAND,SC_MAXIMIZE,0)//用postmessage发送一条最大化消息(SC_MAXIMIZE)到这个窗体的句柄

//******************************************************

//另外postmessage(hwndwindow,wm_close,0,0)为关闭

//如果需要要自己的程序中使程序动态变最大化则用

form1.windowstate:=wsmaximized//form1为你要最大化的窗口名!

//几个要用到的名词:

1.hwnd是句柄知清的意思,只有先得到了窗体的句柄才能控制它

2.findwindow是找窗体的意思

3.nil是空指针的意思

4.postmessage发送一条瞎察消息给一个已找到的窗口句柄.

对某一个窗口发送鼠标消息

SendMessage(Handle,WM_LBUTTONDBLCLK,0,0)

对系统发消息关闭程序

SendMessage(Handle, WM_CLOSE, 0, 0)

启动开始菜单

Sendmessage(Application.Handle,WM_SYSCOMMAND,SC_TASKLIST,0)

参考楼上说的使用 PostMessage 函数。PostMessage 函数确实可以模拟按键

参考资料:

http://gykthh.blog.163.com/blog/static/6453464201141211314831/

游戏的键盘输入采用的是DirectInput,和GDI的键盘原理是不一样的,所敏哗拆以不能用sendkey之类的三层GDI API。

要解决这个问题,必须是直接采用IO拦截。但是IO拦截不能在Ring3下使用,必须是Ring0,也就是必须写驱动(.sys)来拦截。

或者采用提权芦岁手法把自己的Ring3程序提权到Ring0,但是这种方法一般正规程序都不会用,会被系统、杀毒软件等拦截。

所桥枣以唯一的办法就是写驱动。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12369754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存