我们是技术学习交流,请确保微信打开并处于登录状态。没有做过多的容错和对待复杂生产环境情况处理!

(1)在进行自动化之前,我们需要找到PC微信窗体并获取微信窗体的句柄数据

我们借助WINDOWS的两个API函数 ,先定义好API的C#调用方式。

 //根据名称获取窗体句柄
[DllImport("user32.dll", EntryPoint = "FindWindow")]private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
//根据句柄获取进程ID
[DllImport("User32.dll", CharSet = CharSet.Auto)]public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);

通过以下代码获取到微信的窗口句柄

int weChatID = 0;IntPtr hwnd = FindWindow(null, "微信");if (hwnd != IntPtr.Zero)
{GetWindowThreadProcessId(hwnd, out weChatID);
}

如果找到了微信句柄那么就可以继续了,如果没有那么请扫描登录或者进行其他的操作。比如自动打开微信。

(2)使用FlaUI.Core组件根据进程ID初始化自动化组件

 //根据微信进程ID绑定FLAUIvar application = FlaUI.Core.Application.Attach(weChatID);var automation = new UIA3Automation();//获取微信window自动化操作对象var Window = application.GetMainWindow(automation);

自动化FlaUI对象构造就是通过步骤一获取微信进程ID进行构造。

(3)如果用户将微信最小化,我们需要将微信窗体置顶激活或者最大化

     public void Focus(){if (window.AsWindow().Patterns.Window.PatternOrDefault != null){//将微信窗体设置为默认焦点状态
window.AsWindow().Patterns.Window.Pattern.SetWindowVisualState(FlaUI.Core.Definitions.WindowVisualState.Normal);}}

这个方法可以将微信窗体设置为默认状态并置为活动状态。

上一篇(1)微信UI自动化-篇章开启(C#)
下一篇(3)微信UI自动化-热键管理(C#)

(2)微信UI自动化-微信窗体管理(C#)相关推荐

  1. (10)微信UI自动化-微信窗口跟随主窗体移动(C#)

    先看效果,

  2. (3)微信UI自动化-热键管理(C#)

    进行微信自动化前,因为采集或者发送消息任务执行需要时间,并且微信窗体会将焦点长期占有,导致我们对软件失去控制,所以我们需要使用热键的方式将任务停止.我们这里采用热键是. (1)编写一个热键管理类 这个 ...

  3. (1)微信UI自动化-篇章开启(C#)

        近期看到很多人用HOOK钩子的方式来拦截微信的消息来实现微信的自动化操作.或者用现成的Python组件来实现微信的自动化.今天我使用模拟用户操作的方式来实现微信自动化. 软件功能 (1)自动采 ...

  4. (4)微信UI自动化-联系人采集(C#)

    在批量发送消息给联系人之前,需要采集到微信中的联系人和群聊数据 效果展示  接下来我们进行联系人采集的详细步骤 (1)找到通讯录的按钮元素,发送点击事件将通讯录面板置为选中状态 直接贴代码 priva ...

  5. (7)微信UI自动化-监控微信进程运行状态(C#)

    微信定时发送消息 (1)自动化程序在运行过程中应为依赖的主程序是微信,所以要对微信进程运行状态进行监控,如果发现微信处于运行状态的情况则自动化程序可以执行对应操作,微信应为人为或者意外导致关闭的情况则 ...

  6. (5)微信UI自动化-实现静默鼠标点击(C#)

         上文我们进行了联系人采集的工作, 最开始如果我用了FLAUI中的鼠标模拟方法,发现鼠标光标会跟随我们的调用而移动位置,那么我们能不能不移动鼠标而进行点击呢?         答案是肯定的,我 ...

  7. (8)微信UI自动化-监控微信网络状态(C#)

    微信定时发送消息 (1)自动化程序在运行过程中应为依赖的主程序是微信,所以要对微信网络状态进行监控,如果发现微信处于断网状态的情况则自动化程序可以执行对应操作. (2)实现思路,开启一个线程定时监控微 ...

  8. Appnium(三)企业微信UI自动化框架搭建

    前言 本章主要讲述针对[企业微信App]进行AppUI自动化测试框架的搭建 ps:这里底层用的是Appnium,另外写了一下底层Uiautomator2的简单搭建 UIautomator2框架搭建实战 ...

  9. python(十二)Uiautomator2搭建UI自动化框架实战

    前言 由于公司UI自动化框架底层用的是Uiautomator2,所以我就用Uiautomator2搭了一套UI自动化框架,并运用某软件做了一个实战,思路其实和之前写的Appnium一样的 ps:这里其 ...

最新文章

  1. linux 符号链接攻击防御简介
  2. html怎么消除打印的进纸,打印机缺纸状态怎么消除?
  3. 悉尼大学计算机录取要求,Q 同学_悉尼大学_计算机_录取成功案例分享
  4. 黄聪:C#中用ILMerge将所有引用的DLL和exe文件打成一个exe文件,有图解
  5. github 检查代码质量_使用Gradle做Java代码质量检查
  6. web sevice 生成代理类及使用
  7. CMU 15-213 Introduction to Computer Systems学习笔记(6) Machine-Level Programming-Procedures
  8. Android Ptrace Inject
  9. 浅谈单片机工程师职业规划
  10. 关于计算机病毒的试题,计算机病毒测试题.doc
  11. umi 导航菜单的空白页问题
  12. 博世传感器调试笔记(二)加速度及陀螺仪传感器BMI160
  13. 3.Python标准库—math库的使用
  14. 全国行政区划数据 - JSON
  15. BottomNavigationView与Navigation使用
  16. D365 窗体的 Lookup写法
  17. alter database recover managed standby database 语句
  18. latex里设置居中左对齐
  19. HTML5作业自我评价,web前端工程师自我评价简历范文
  20. 计算机科学与技术专业大学排名2020年,2020年全国计算机科学与技术专业大学排名,高考填报志愿可参考下...

热门文章

  1. 快来直播:物联网如何推动农业发展
  2. CF707C Pythagorean Triples 题解
  3. 多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序
  4. tomcat完美实现在线商城应用部署
  5. 30小时搞定python网络爬虫第37讲,黑马上海37期Python全套视频课程
  6. LNC(宝元)机床的IP设置和数据采集
  7. 下载及安装mysql中出现的问题记录
  8. Mac苹果电脑不小心删除的文件怎么恢复?
  9. 固态继电器原理以及为什么输出分正负极性
  10. 《机器学习——数学公式推导合集》1. 线性模型之最小二乘法(least square method)求解线性模型