zl程序教程

您现在的位置是:首页 >  后端

当前栏目

winform内部打开微信或者其他EXE程序

Winform微信程序 打开 内部 其他 或者 exe
2023-09-27 14:21:27 时间
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Diagnostics;
 4 using System.Linq;
 5 using System.Runtime.InteropServices;
 6 using System.Threading.Tasks;
 7 using System.Windows.Forms;
 8 
 9 namespace WindowsFormsApp1
10 {
11     internal static class Program
12     {
13         /// <summary>
14         /// 应用程序的主入口点。
15         /// </summary>
16         [STAThread]
17         static void Main()
18         {
19             Application.EnableVisualStyles();
20             Application.SetCompatibleTextRenderingDefault(false);
21 
22             // 获取微信的进程
23             var ps = Process.GetProcesses().Where(m=>m.ProcessName=="WeChat").FirstOrDefault();
24             //Process[] ps2 = Process.GetProcessesByName("WeChat");
25             // 获取微信的句柄,intClientWndHandle是父窗口的句柄,需要先得到这个句柄
26             var intClientWndHandle = ProcessEx.GetMainWindowHandle(ps.Id);
27             // 父窗体
28             Form1 frm = new Form1();
29             // 设置当前窗体是微信句柄的父级
30             SetParent(intClientWndHandle, (IntPtr)frm.Handle);
31             // 是否显示控件框
32             frm.ControlBox = false;
33             Application.Run(frm);
34         }
35 
36 
37         [DllImport("user32.dll", EntryPoint = "SetParent")]
38         public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
39 
40         [StructLayout(LayoutKind.Sequential)]
41         public struct ProcessEntry32
42         {
43             public uint dwSize;
44             public uint cntUsage;
45             public uint th32ProcessID;
46             public IntPtr th32DefaultHeapID;
47             public uint th32ModuleID;
48             public uint cntThreads;
49             public uint th32ParentProcessID;
50             public int pcPriClassBase;
51             public uint dwFlags;
52 
53 
54             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
55             public string szExeFile;
56         }
57          
58     }
59 }