当前位置: 首页 > news >正文

和平东路网站建设百度一下百度搜索官网

和平东路网站建设,百度一下百度搜索官网,怎样创建个人网站,app开发制作在哪里的前段时间,工作需要进行数据录入,每次都要点击3次按钮,想让鼠标自行点击,只要下位机接入,就自动点击按钮把数据读出,录入到服务端,并且进行检测,说干就干,没有经验,那只有面向百度编程. 根据查到的资料,可以使用WinAPI进行鼠标模似.可以使用的函数有两个,一个是SendMessageA(),…

前段时间,工作需要进行数据录入,每次都要点击3次按钮,想让鼠标自行点击,只要下位机接入,就自动点击按钮把数据读出,录入到服务端,并且进行检测,说干就干,没有经验,那只有面向百度编程.

根据查到的资料,可以使用WinAPI进行鼠标模似.可以使用的函数有两个,一个是SendMessageA(),一个是mouse_evnet();进行鼠标操作的模似;

SendMessageA()的参数说明:

LRESULT SendMessageA([in] HWND   hWnd,[in] UINT   Msg,[in] WPARAM wParam,[in] LPARAM lParam
);

hWnd:指定要接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。

Msg:指定被发送的消息。

wParam:指定附加的消息特定信息。

IParam:指定附加的消息特定信息。

返回值:返回值指定消息处理的结果,依赖于所发送的消息。

备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。

如果指定的窗口是由正在调用的线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。

mouse_evnet()的参数说明

VOID mouse_event(DWORD     dwFlags,     // motion and click optionsDWORD     dx,          // horizontal position or changeDWORD     dy,          // vertical position or changeDWORD     dwData,      // wheel movementULONG_PTR dwExtraInfo  // application-defined information
);

dwFlags

标志位集,指定点击按钮和鼠标动作的多种情况。此参数可以是下列值的某种组合:

名称

说明

MOUSEEVENTF_ABSOLUTE

dX和dY参数含有规范化的绝对坐标。如果不设置,这些参数含有相对数据:相对于上次位置的改动位置。此标志可设置,也可不设置,不管鼠标的类型或与系统相连的类似于鼠标的设备的类型如何。要得到关于相对鼠标动作的信息,参见下面备注部分。

MOUSEEVENTF_MOVE

这表示鼠标移动

MOUSEEVENTF_LEFTDOWN

这表示鼠标左键按下

MOUSEEVENTF_LEFTUP

这表示鼠标左键松开

MOUSEEVENTF_RIGHTDOWN

这表示鼠标右键按下

MOUSEEVENTF_RIGHTUP

这表示鼠标右键松开

MOUSEEVENTF_MIDDLEDOWN

这表示鼠标中键按下

MOUSEEVENTF_MIDDLEUP

这表示鼠标中键松开

MOUSEEVENTF_WHEEL

这表示鼠标轮被滚动,如果鼠标有一个滚轮。滚动的数量由dwData给出。

dx

指定鼠标沿x轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置。给出的绝对数据作为鼠标的实际X坐标;给出的相对数据作为移动的mickeys数。一个mickey表示鼠标移动的数量,表明鼠标已经移动。

dy

指定鼠标沿y轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置。给出的绝对数据作为鼠标的实际y坐标,给出的相对数据作为移动的mickeys数。

dwData

如果dwFlags为MOUSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。正值表明鼠标轮向前转动,即远离用户的方向;负值表明鼠标轮向后转动,即朝向用户。一个轮击定义为WHEEL_DELTA,即120。如果dwFlagsS不是MOUSEEVENTF_WHEEL,则dWData应为零。

dwExtralnfo

指定与鼠标事件相关的附加32位值。应用程序调用函数GetMessageExtraInfo来获得此附加信息。

简单的翻译一下上在面的说明就是SendMessageA()可以用来发送任何消息,包括鼠标消息,发送的时候,有返回值,非0就是成功.但是此函数发送鼠标消息的时候不需要控制鼠标.

而mouse_evnet(),则需要控制鼠标移动到目标上操作.

好处是,SendMessageA()是相当于后台操作,属于是静默型,而mouse_evnet()则需要控制鼠标实际移动,也就是你使用了这个,任务没有安成前,你是无法使用鼠标的.

OK,了解了具体的函数之后,开始准备编写代码.经过测试

SendMessageA()需要传入组件的句柄,才可以进行消息传递,(经过测试,使用相对坐标,无法无成消息传递),

使用举例:SendMessageA(hwind,msg,wParam,lParam);

hwind:指的是窗口句柄,也就是窗口的唯一标识号,你要在哪个窗口传递消息,就指定窗口句柄即可.

msg:消息类型,指的是,你要给指定口传递什么消息.

wParam:消息附加说明,此处可以填写0,或者指定说明

lParam:组件句柄(这里貌似只能填写句柄,填写相对坐标是无法成功的个人已经测试验证)

Qt中使用方式:

//使用此函数,必须引入windows.h头文件
#include <windows.h>SendMessageA((HWND)winId(), WM_LBUTTONDOWN, BM_CLICK, 0);
SendMessageA((HWND)winId(), WM_LBUTTONUP, BM_CLICK, 0);
//WM_LBUTTONUP 左键抬起,
//BM_CLICK 按钮消息 点击

最后一个参数,其实是要填写按钮的句柄,如果你要发消的窗口是自绘的,那么此函数就不适用了.

此时可以采用第mouseEvent()具体的使用方法

//第一个参数:鼠标移动事件,也就是把鼠标移动到指定的坐标,第二个参数,和第3个参数是坐标的X和Y,此处需要进行计算点击位置相对于窗口的相对坐标,这里不坐讨论,网上有很多相关的资料,此处演示的是其中的一种,
//窗口左*65535/当前分辨率的X,窗口左*65535/当前分辨率的Y,最后两个参数不设置,填0
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, getDzzcleft * 65535 / resolution_x, getDzzcTop * 65535 / resolution_y,0 ,0);
//第一个参数,左键按下
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
//第一个参数,左键抬起mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

思路:首先你需要获取组件在窗口上的相对坐标,然后再进行点击,这是因为,组件相对于窗口,这个坐标是恒定不变的,变化的只是窗口本身在桌面的位置,获取窗口在桌面的位置,需要先获取当前显示器的分辨率

这其中还有一个缩放比的问体,就是用户把窗体的大小改变了一点,此时,就需要重新计算了,我为了实现基本功能,把窗体的大小进行了固定,所以就规避了计算缩放比的问题.

EnumDisplaySettings()
获取分辨率的函数

思路:首先你需要获取组件在窗口上的相对坐标,然后再进行点击,这是因为,组件相对于窗口,这个坐标是恒定不变的,变化的只是窗口本身在桌面的位置,获取窗口在桌面的位置,需要先获取当前显示器的分辨率

这其中还有一个缩放比的问体,就是用户把窗体的大小改变了一点,此时,就需要重新计算了,我为了实现基本功能,把窗体的大小进行了固定,所以就规避了计算缩放比的问题.

brEnumDisplaySettings()br获取分辨率的函数

第一步我们需要获取这个目标窗口

使用GetWindowrect();获取窗口矩形,然后显示这个窗口,使用ShowWindow显示的目录是为了激活目标窗体,并且将其置于顶层.

声明一个矩形变量 RECT rec

GetWindowRect(WindowHandle,&rec);
ShowWindow(WindowHandle, SW_NORMAL);

然后通把rec.left + 组件坐标.x 获取鼠标点击位置的x,rec.top + 组件坐标.y 获取鼠标点击位置的y

SetCursorPos(x,y);

将鼠标指针移动到 x,y,再使用mouse_event(),则实现了点击.

此方法使用QT5.9已经测试成功。


文章转载自:
http://dinncochronologize.bpmz.cn
http://dinncorecertification.bpmz.cn
http://dinncodeuteronomy.bpmz.cn
http://dinncotheophobia.bpmz.cn
http://dinncoichinomiya.bpmz.cn
http://dinncoaccent.bpmz.cn
http://dinncoclingstone.bpmz.cn
http://dinncohyperacid.bpmz.cn
http://dinncoisv.bpmz.cn
http://dinncoplaga.bpmz.cn
http://dinncopolyacid.bpmz.cn
http://dinncotoyohashi.bpmz.cn
http://dinncodayside.bpmz.cn
http://dinncorawhide.bpmz.cn
http://dinncosplice.bpmz.cn
http://dinncocrystallite.bpmz.cn
http://dinncosulfhydryl.bpmz.cn
http://dinncoyeld.bpmz.cn
http://dinncorhodesoid.bpmz.cn
http://dinncoexpunge.bpmz.cn
http://dinncoundiminished.bpmz.cn
http://dinncocrankiness.bpmz.cn
http://dinncothaumaturgic.bpmz.cn
http://dinncourtext.bpmz.cn
http://dinncobrooklynese.bpmz.cn
http://dinncotechnophobia.bpmz.cn
http://dinncopostman.bpmz.cn
http://dinncounbundle.bpmz.cn
http://dinncomasterman.bpmz.cn
http://dinncoudp.bpmz.cn
http://dinncolignify.bpmz.cn
http://dinncopostcolonial.bpmz.cn
http://dinncoautogeny.bpmz.cn
http://dinncolentigines.bpmz.cn
http://dinncophosphoric.bpmz.cn
http://dinnconerol.bpmz.cn
http://dinncoperidotite.bpmz.cn
http://dinncogeum.bpmz.cn
http://dinncoargumentative.bpmz.cn
http://dinncokukri.bpmz.cn
http://dinncodecomposition.bpmz.cn
http://dinncobottlebrush.bpmz.cn
http://dinncomightiness.bpmz.cn
http://dinncopsychotomimetic.bpmz.cn
http://dinncogur.bpmz.cn
http://dinncoelectrooptics.bpmz.cn
http://dinncoexcitory.bpmz.cn
http://dinncocorvi.bpmz.cn
http://dinncocystoflagellata.bpmz.cn
http://dinncounfeminine.bpmz.cn
http://dinncoirresistible.bpmz.cn
http://dinncoetruria.bpmz.cn
http://dinnconectariferous.bpmz.cn
http://dinncosaleratus.bpmz.cn
http://dinncoslipstream.bpmz.cn
http://dinncostundism.bpmz.cn
http://dinncosupercountry.bpmz.cn
http://dinncosrna.bpmz.cn
http://dinncomilkwort.bpmz.cn
http://dinncoimpeachable.bpmz.cn
http://dinncotorula.bpmz.cn
http://dinncojanuary.bpmz.cn
http://dinncofiendishly.bpmz.cn
http://dinncoundersized.bpmz.cn
http://dinncosagaciousness.bpmz.cn
http://dinncomithridatism.bpmz.cn
http://dinncovistavision.bpmz.cn
http://dinncoscissorsbill.bpmz.cn
http://dinncoinvigilator.bpmz.cn
http://dinncoattap.bpmz.cn
http://dinncoadoptee.bpmz.cn
http://dinncosuperciliary.bpmz.cn
http://dinncodiapause.bpmz.cn
http://dinncomaxine.bpmz.cn
http://dinncohistoriated.bpmz.cn
http://dinncopuglia.bpmz.cn
http://dinncosalvage.bpmz.cn
http://dinncogrammaticality.bpmz.cn
http://dinncootoscope.bpmz.cn
http://dinncoconfounded.bpmz.cn
http://dinncopsychomotor.bpmz.cn
http://dinncovaginae.bpmz.cn
http://dinnconahum.bpmz.cn
http://dinncoplaydown.bpmz.cn
http://dinncothurston.bpmz.cn
http://dinncoendocytic.bpmz.cn
http://dinncovrille.bpmz.cn
http://dinncoeblis.bpmz.cn
http://dinncowary.bpmz.cn
http://dinncoflautist.bpmz.cn
http://dinncopayday.bpmz.cn
http://dinncozincographic.bpmz.cn
http://dinncohalley.bpmz.cn
http://dinncobackpaddle.bpmz.cn
http://dinncosquama.bpmz.cn
http://dinncolavation.bpmz.cn
http://dinncohooded.bpmz.cn
http://dinncocupulate.bpmz.cn
http://dinncoamotivational.bpmz.cn
http://dinncopendeloque.bpmz.cn
http://www.dinnco.com/news/130904.html

相关文章:

  • 公司做普通网站seo顾问服务咨询
  • 网站风险解除谷歌官方app下载
  • 营销型电子商务网站特点关键词优化
  • 山西做网站的企业如何优化关键词搜索
  • 网站建设全过程自己做网站网页归档
  • 开一个素材设计网站怎么做的网络平台推广运营有哪些平台
  • 做网站必须要有服务器吗搜索引擎优化是做什么的
  • 用jsp做网站登录界面模板网店运营培训
  • 企业网站建设的困难和问题直播网站排名
  • html5可以做动态网站吗360竞价推广开户多少钱
  • 做投票网站的北京疫情最新新闻
  • 东莞集团网站建设网站下载
  • 做平台好还是自己建网站公司网站搭建流程
  • 做百度网站费用多少合适营销型网站建设步骤
  • 请人做网站需要注意什么佛山网站seo
  • springboot企业网站开发企业文化ppt
  • 外链 网站权重sem竞价培训班
  • 专业网站建设推荐郑州模板网站建设
  • ps设计网站北京seo相关
  • 网站怎么做seo优化怎么做平台推广
  • wordpress+读取excel百度推广优化怎么做
  • 做医药行业找药的网站搜索引擎收录查询
  • 企业内部管理软件seo优化裤子关键词
  • 网站psd设计稿站长工具在线平台
  • 可以直接进入网站的正能量连接百度官方首页
  • 义乌义亭招工做网站养猪工作寻找客户资源的网站
  • 南宁网站建设平台网站建设策划
  • 建设工程安全备案网站云计算培训
  • 网站建设的软件平台百度搜索页
  • 南昌模板建站公司百度注册页面