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

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

(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绑定FLAUI
 var 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#)

因为文章所表达的意思可能无法满足每一位阅读需求,需要源码或者支持请联系作者QQ 978124155

你可能感兴趣的:(微信自动化,.net,微信,ui,自动化)