Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.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# WPF启动时检测进程是否启动,并将应用程序带到前端_C#_.net_Wpf_Process - Fatal编程技术网

C# WPF启动时检测进程是否启动,并将应用程序带到前端

C# WPF启动时检测进程是否启动,并将应用程序带到前端,c#,.net,wpf,process,C#,.net,Wpf,Process,我有一个很简单的问题 当程序已经启动并且用户尝试启动另一个实例时。新实例需要将旧实例放在前面并退出 解决方案非常简单,我可以从中获取代码并使用它 幸运/不幸的是,我正在使用WPF。这意味着,我无法控制Main()方法的内容 我找到了这个问题的解决方案“如何在WPF应用程序中提供自己的Main()方法?”@ 但是,当没有App.xaml文件时,这个解决方案会带来另一个问题,如Expression Blend stats 我可以在启动事件时使用应用程序类,但我使用的是WPF的启动屏幕资源,这意味着将

我有一个很简单的问题

当程序已经启动并且用户尝试启动另一个实例时。新实例需要将旧实例放在前面并退出

解决方案非常简单,我可以从中获取代码并使用它

幸运/不幸的是,我正在使用WPF。这意味着,我无法控制Main()方法的内容

我找到了这个问题的解决方案“如何在WPF应用程序中提供自己的Main()方法?”@

但是,当没有App.xaml文件时,这个解决方案会带来另一个问题,如Expression Blend stats

我可以在启动事件时使用应用程序类,但我使用的是WPF的启动屏幕资源,这意味着将显示额外的启动屏幕

我最后关心的是,这种方法对我来说不是“未来的证明”:

这个问题有WPF风格的解决方案吗


提前谢谢。

我相信此链接可能会帮助您:

您通常通过在应用程序中设置互斥体来检测正在运行的实例,然后在启动应用程序时检查互斥体。将另一个应用程序发送到前端就是发送正确的PostMessage

至于拥有自己的Main(),我同意当你的App.xaml不存在时,Expression Blend确实会表现得有点怪异。在我自己的应用程序中,我使用Expression Blend手动编辑一些复杂的窗口,但不在应用程序中进行任何编译或测试(在App.cs中定义Main)

如果您使用表达式混合进行广泛的UI测试,我不能说您必须使用这种方法。我倾向于在VisualStudio中进行大部分的编辑和测试,并直接编辑XAML,所以这对我来说不是太大的问题。我认为这是一个表达式的限制(或bug)。