C#调用API接收发送窗口消息
发送:
首先导入发送消息API
[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr wnd, int msg, IntPtr wP, IntPtr lP);//发送后等待处理完才返回
[DllImport("User32.dll", EntryPoint = "PostMessage")]
private static extern int PostMessage(IntPtr wnd, int msg, IntPtr wP, IntPtr lP);//发送完不管结果就返回
[DllImport("User32.dll", EntryPoint = "SetForegroundWindow")]//激活窗口
private static extern int SetForegroundWindow(IntPtr hwnd);
在App启动时判断当前程序进程是否已存在,如果存在则发消息到已存在的进程主窗口中,激活已存在的进程主窗口,并根据接收到的启动参数响应消息处理
protected override void OnStartup(StartupEventArgs e)
{
if (e.Args != null && e.Args.Length > 0)<