文章标签 ‘抓取’

[转载]QQ窗口抓取及如何进行自动化操作 – wuhuacong(伍华聪)的专栏 – 博客园. 本文在文章开始,先介绍下窗口的抓取软件,Spy++及AccExplorer32.exe,前者是大名鼎鼎的微软出品,几乎可以抓取所有的Windows窗口及控件(其实也是一个窗口),另外一个也是类似,功能可以互补一下。 首先看看两者的界面,在抓取QQ的【查找联系人/群/企业】的窗口时候的情况: Sp++的界面 AccExplorer32.exe界面 两者界面不同,不过基本功能有重叠,Spy++提供的功能可能会更多一些,这两个软件都可以对列出的窗口进行一系列的操作,如可以找到相关的窗口信息,窗口位置,以及对各种窗口操作的信息,包括鼠标、键盘等一系列的操作都可以模拟出来,非常强大。 为 了模拟抓取窗口以及对窗口的各种操作,我们可以通过FindWindow和FindWindowEx、SendMessage、PostMessage等 Windows消息来进行处理,便可实现基本的窗口、控件操作,另外按钮的操作,我们则可以模拟鼠标单击某个坐标点的方式实现按钮的单击操作模拟。 模拟的QQ界面窗口如下所示,是一个查找窗口的。 我们通过抓取窗口信息,我们看到该窗口下面只有两个可见窗口,分别对应两个输入控件,可以发现该窗口的一个输入(账号和昵称输入框中的任何一个)的Class 名称如下所示: 首先我们来创建一个界面,如下所示,用来模拟相关的操作。 我们在辅助类中定义几个函数用来实现窗口的操作 [DllImport("user32.dll")] private static extern IntPtr FindWindowEx(IntPtr parent, IntPtr childAfter, string className, string windowName); [DllImport("user32.dll", EntryPoint = "FindWindow")] private static extern IntPtr FindWindowWin32(string className, string windowName); [DllImport("user32.dll ")] public static extern int GetClassName(IntPtr hWnd, [Out] StringBuilder className, int maxCount); [DllImport("user32.dll")] private static extern int SendMessage(IntPtr window, int message, int [...]

2010年9月2日15:03 评论关闭
备案信息:冀ICP备10007948号