C# WPF启动时检测进程是否启动,并将应用程序带到前端
我有一个很简单的问题 当程序已经启动并且用户尝试启动另一个实例时。新实例需要将旧实例放在前面并退出 解决方案非常简单,我可以从中获取代码并使用它 幸运/不幸的是,我正在使用WPF。这意味着,我无法控制Main()方法的内容 我找到了这个问题的解决方案“如何在WPF应用程序中提供自己的Main()方法?”@ 但是,当没有App.xaml文件时,这个解决方案会带来另一个问题,如Expression Blend stats 我可以在启动事件时使用应用程序类,但我使用的是WPF的启动屏幕资源,这意味着将显示额外的启动屏幕 我最后关心的是,这种方法对我来说不是“未来的证明”: 这个问题有WPF风格的解决方案吗C# WPF启动时检测进程是否启动,并将应用程序带到前端,c#,.net,wpf,process,C#,.net,Wpf,Process,我有一个很简单的问题 当程序已经启动并且用户尝试启动另一个实例时。新实例需要将旧实例放在前面并退出 解决方案非常简单,我可以从中获取代码并使用它 幸运/不幸的是,我正在使用WPF。这意味着,我无法控制Main()方法的内容 我找到了这个问题的解决方案“如何在WPF应用程序中提供自己的Main()方法?”@ 但是,当没有App.xaml文件时,这个解决方案会带来另一个问题,如Expression Blend stats 我可以在启动事件时使用应用程序类,但我使用的是WPF的启动屏幕资源,这意味着将
提前谢谢。我相信此链接可能会帮助您: 您通常通过在应用程序中设置互斥体来检测正在运行的实例,然后在启动应用程序时检查互斥体。将另一个应用程序发送到前端就是发送正确的PostMessage 至于拥有自己的Main(),我同意当你的App.xaml不存在时,Expression Blend确实会表现得有点怪异。在我自己的应用程序中,我使用Expression Blend手动编辑一些复杂的窗口,但不在应用程序中进行任何编译或测试(在App.cs中定义Main)
如果您使用表达式混合进行广泛的UI测试,我不能说您必须使用这种方法。我倾向于在VisualStudio中进行大部分的编辑和测试,并直接编辑XAML,所以这对我来说不是太大的问题。我认为这是一个表达式的限制(或bug)。