Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在进程/应用程序之间传递IntPtr_C#_.net_Intptr - Fatal编程技术网

C# 如何在进程/应用程序之间传递IntPtr

C# 如何在进程/应用程序之间传递IntPtr,c#,.net,intptr,C#,.net,Intptr,我有两份申请。 其中一个是WPF应用程序,另一个是sys托盘应用程序。 第一个应该以某种方式将其窗口指针传递给另一个 IntPtr thisWindowHandle = (new WindowInteropHelper(this)).Handle; 第二个应该接受它并检测WPF应用程序的活动屏幕 Screen activeScreen = Screen.FromHandle(thisWindowHandle); 我的问题是,我们如何在这些应用程序之间发送IntPtr,这有可能吗 谢谢大家!

我有两份申请。 其中一个是WPF应用程序,另一个是sys托盘应用程序。 第一个应该以某种方式将其窗口指针传递给另一个

IntPtr  thisWindowHandle = (new WindowInteropHelper(this)).Handle;
第二个应该接受它并检测WPF应用程序的活动屏幕

Screen activeScreen = Screen.FromHandle(thisWindowHandle);
我的问题是,我们如何在这些应用程序之间发送
IntPtr
,这有可能吗

谢谢大家!

您可以为此目的使用


另一种方法是,您可以通过窗口的标题找到窗口,而无需像前面提到的那样向其传递IntPtr。

可以在同一桌面上的同一会话中运行的进程之间交换窗口句柄。如果你的应用是,比如说,一项服务,它就不起作用了

您需要使用标准的.NET进程互操作机制来传递句柄,如WCF、套接字、命名管道、文件或命令行参数。也许您所需要的只是Process.MainWindowHandle,这样您就不必传递任何东西,这当然是最简单的

请记住故障模式,WPF应用程序崩溃,而“托盘应用程序”继续运行的情况很少有好结果。在通知区域中显示图标不需要单独的过程