环境:windows11 64 位、Visual Studio 2022、.NET6.0
本系列文章仅用于学习winform及UI自动化技术,不涉及任何软件、程序破解,请勿用于非法用途
1、前言
获取微信进程信息主要涉及与windows系统交互,这里主要用到了以下技术和工具:
- windows动态链接库:user32.dll
- CTZTv16 窗体侦探工具
2、随便整个按钮
3、运行效果如下
4、核心代码如下
按钮事件
private void button1_Click(object sender, EventArgs e)
{
Process[] processes = Process.GetProcessesByName("WeChat");
if (processes.Length == 0) {
MessageBox.Show("微信未启动");
return;
}
IntPtr intPtr= WinApi.FindWindow("WeChatLoginWndForPC", "微信");
if (intPtr != IntPtr.Zero)
{
MessageBox.Show("微信未登录");
return;
}
intPtr = WinApi.FindWindow("WeChatMainWndForPC", "微信");
if (intPtr != IntPtr.Zero)
{
MessageBox.Show("微信已登录");
return;
}
}
WinApi工具类
public class WinApi
{
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
}
FindWindow可以根据类名和窗体名称来查找句柄,类名和窗体名称我们可以使用CTZTv16这个小工具来获取,使用方式如下:
将光标拖拽到想要侦探的窗体上即可获得相关信息
沟通交流
欢迎评论、私信。