delphi如何自动点击窗体中的任意一个坐标点?

比如说我做了个窗体,如果实现程序运行时自动点击窗体中的某个点,如坐标(50,50)从而实现这个点无论是按钮还是图片或是下载链接都能实现点击。哪位教下,有源码最好:)
具体点就是怎么写关于MOUSEEVENTF_LEFTDOWN等的代码

用以下函数实现^_^(虽然是C++定义写法,但是Delphi定义与之相同)
VOID mouse_event( DWORD dwFlags,
DWORD dx,
DWORD dy,
DWORD dwData,
ULONG_PTR dwExtraInfo
);

参数说明一下:)
dwFlags 指定鼠标的动作,移动或者点击,可有以下参数
MOUSEEVENTF_ABSOLUTE 指定其后参数dx,dy为绝对坐标,否则为相对坐标
MOUSEEVENTF_MOVE 指定移动鼠标
MOUSEEVENTF_LEFTDOWN 指定鼠标左键按下
MOUSEEVENTF_LEFTUP 指定鼠标左键弹起
dx,dy 指定了鼠标的坐标,如果第一个参数有MOUSEEVENTF_ABSOLUTE 则为绝对坐标,否则为相对坐标。
最后两个参数一般设为0,具体解释请参考MSDN或Delphi帮助。

如果需要程序运行时自动点击窗体中某个点,首先需要获取该点的绝对坐标(相对于整个屏幕),一般是将窗体的坐标+上窗体内的坐标。如(50,50)的绝对坐标可能是(Form1.Left+50,Form1.Top+50),此值不一定准确,需要自己修正。
mouse_event(MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_ABSOLUTE,Form1.Left+50,Form1.Top+50,0,0);

mouse_event(MOUSEEVENTF_LEFTUP or MOUSEEVENTF_ABSOLUTE,Form1.Left+50,Form1.Top+50,0,0);
这样就可以实现模拟鼠标点击的效果。
温馨提示:内容为网友见解,仅供参考
无其他回答

delphi如何自动点击窗体中的任意一个坐标点?
如果需要程序运行时自动点击窗体中某个点,首先需要获取该点的绝对坐标(相对于整个屏幕),一般是将窗体的坐标+上窗体内的坐标。如(50,50)的绝对坐标可能是(Form1.Left+50,Form1.Top+50),此值不一定准确,需要自己修正。mouse_event(MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_ABSOLUTE,Form1.Left+50,Form1...

delphi自动点击按钮的问题
你好,这个问题所在我可能告诉你,因为点击是两个事件才有效,你只写了一个,就是按下,没有写弹起的,前两个是因为有第三个按下的,所以系统会调弹起的,最后一个没有再调用按下——弹起的没执行,所以不成功,需要改一下。下面是演示代码,不一定正确,你自己 查查。SendMessage(j, BM_CLICK_U...

Delphi DBGridEH查询出内容之后,自动执行选中点击第一行的内容动作.
DBGrid是数据展示组件,它通过数据感知组件例如DataSource对数据组件如DataSet进行响应,因此,在一个DataSet或Query打开之后,执行First语句即可将数据指针(游标)指向首行,然后对当前行进行操作即可。原理如此,数据库操作均如此。

delphi mapx测距问题,运行的时候每当我点到第二个点到时候开始报错list...
1、 for i:=1 to CMapXPoints(Points).Count-1 do \/\/应该就是for循环这一片的问题 看一下:CMapXPoints(Points).Count-1 =?x2:=CMapXPoints(Points).Item[i+1].X;y2:=CMapXPoints(Points).Item[i+1].Y;Item[i+1]???2、既然怀疑在这部分出问题了,你可以试着修改数组...

Delphi中点击DBGrid中某一单元格时,后面出现个按钮可以点进去,出现一...
用delphi自带的DBGrid就能很好的实现这个功能:在DBGrid 中添加你要再Grid中显示的所有字段(columns属性),然后选择你要出现按钮的那个字段,将属性ButtonStyles 设置为cbsEllipsis,然后再 DBGrid 的 OnEditButtonClick时间中编写探出新窗口的代码即可 ...

delphi窗体窗口
代码窗口通常隐藏在窗体之下,因为Delphi的设计模式是直接在窗体中进行,设计与实际运行结果保持一致。当你在窗体上放置部件,Delphi会自动生成大部分的代码框架,这样你只需专注于添加实现功能的程序代码部分。只需通过点击Form1状态,你就可以让代码窗口变得可见,进行源代码的编辑。代码编辑器是Delphi的重要...

delphi 如何在自动终止线程和手动终止线程时都正确的设置窗体上的控件...
在Delphi中使用线程,当窗体关闭时,如果窗体中启用了线程,一般需要手动关闭,以释放资源。 常用来结束线程的代码为:thread.Terminate;thread.WaitFor;即先触发Terminate方法,然后等待线程的结束。这种方法要求线程不能使用 FreeOnTerminate := True;否则在WaitFor即将结束的时候会引发“无效句柄”的错误。

delphi MDI子窗体为什么会自动显示出来
DELPHI 的IDE开发环境中,在 Project -> Options -> Forms 选项中,将相关的窗体从Auto-Create form2列表中点击>按钮移动到Avaliable Forms列表中,然后点击OK按钮保存设置即可!当需要在某个事件代码中打开CHILD 窗体,则需要手动编写窗体实例代码 如:var frmAboutBox: tfrmAboutBox begin frmAboutBox :=...

delphi 中怎样操作可以自动出现function TMainForm.InToolbar(Sender...
1.先创建一个TFrame框架窗体,把这个函数放在框架实现里,然后保存这个Frame。2.创建其他TForm窗体。3.向Form中添加框架(选择组件面板的Standard页,点击Frame组件并将其拖到名为Customers的GroupBox中。这时Delphi会显示一个Select frame to insert对话框,选择步骤1中保存的Frame即可)。

delphi中的pagecontrol用法,怎样点击一个page后激发
=False;ProviderName:='DSP_Group_BaseInfor';Active:=True;end;end;--- 回答完毕,以上是本人商业软件的一段小代码。也许对您有点帮助。———

相似回答
大家正在搜