1. 首页 > 电脑教程 > 面向QQ编程QQ窗口的抓取及如何自动化操作

面向QQ编程QQ窗口的抓取及如何自动化操作

本文在文章开始,先介绍下窗口的抓取软件,Spy++及AccExplorer32.exe,前者是大名鼎鼎的微软出品,几乎可以抓取所有的Windows窗口及控件(其实也是一个窗口),另外一个也是类似,功能可以互补一下。

首先看看两者的界面,在抓取QQ的【查找联系人/群/企业】的窗口时候的情况:

Sp++的界面

AccExplorer32.exe界面

两者界面不同,不过基本功能有重叠,Spy++提供的功能可能会更多一些,这两个软件都可以对列出的窗口进行一系列的操作,如可以找到相关的窗口信息,窗口位置,以及对各种窗口操作的信息,包括鼠标、键盘等一系列的操作都可以模拟出来,非常强大。

为了模拟抓取窗口以及对窗口的各种操作,我们可以通过FindWindow和FindWindowEx、SendMessage、PostMessage等Windows消息来进行处理,便可实现基本的窗口、控件操作,另外按钮的操作,我们则可以模拟鼠标单击某个坐标点的方式实现按钮的单击操作模拟。 模拟的QQ界面窗口如下所示,是一个查找窗口的。

我们通过抓取窗口信息,我们看到该窗口下面只有两个可见窗口,分别对应两个输入控件,可以发现该窗口的一个输入(账号和昵称输入框中的任何一个)的Class 名称如下所示:

首先我们来创建一个界面,如下所示,用来模拟相关的操作。

我们在辅助类中定义几个函数用来实现窗口的操作

[DllImport("user32.dll")]

privatestaticexternIntPtrFindWindowEx(IntPtrparent,IntPtrchildAfter,stringclassName,stringwindowName);[DllImport("user32.dll",EntryPoint="FindWindow")]privatestaticexternIntPtrFindWindowWin32(stringclassName,stringwindowName);[DllImport("user32.dll")]publicstaticexternintGetClassName(IntPtrhWnd,[Out]StringBuilderclassName,intmaxCount);[DllImport("user32.dll")]privatestaticexternintSendMessage(IntPtrwindow,intmessage,intwparam,intlparam);[DllImport("user32",CharSet=CharSet.Auto)]privateexternstaticintSendMessage(IntPtrhWnd,intwMsg,intwParam,stringlpstring);[DllImport("user32.dll")]privatestaticexternintPostMessage(IntPtrwindow,intmessage,intwparam,intlparam);

声明:希维路由器教程网提供的内容,仅供网友学习交流,如有侵权请与我们联系删除,谢谢。ihuangque@qq.com
本文地址:https://www.ctrlcv.com.cn/diannao/169347608110795.html