我创建的应用程序包含通知图标,并且它在后台保持活动状态(以及某种方式)。问题是,当用户点击我的应用程序的图标时,应用程序将再次启动,所以我有两个通知图标和两个活动在后台和两个一切。如果用户再次点击该图标,则会出现三种情况,......因此,我应该停止此操作。我有一种设置标志并将其值设置为注册表的想法,当我的应用程序想要启动时,在表单加载事件中,通过读取值终止应用程序。但我想要一个更专业的方式来处理它。例如根本不开始。如何防止我的应用程序一次又一次启动
回答
这是this答案这是一个this重复。您检查您的应用程序的条目构造函数是否已在运行该应用程序。
static void Main()
{
Process currentProcess = Process.GetCurrentProcess();
var runningProcess = (from process in Process.GetProcesses()
where
process.Id != currentProcess.Id &&
process.ProcessName.Equals(
currentProcess.ProcessName,
StringComparison.Ordinal)
select process).FirstOrDefault();
if (runningProcess != null)
{
ShowWindow(runningProcess.MainWindowHandle, SW_SHOWMAXIMIZED);
return;
}
}
创建某种形式的应用程序创建的全局互斥/事件句柄,然后在打开的例程中检查它是否存在,如果存在,则退出启动路由。
我在这个答案中给出了一些基本的代码(针对不同的问题),但它展示了你正在尝试做的事情。
请你在你说的有点业余的方式说话?!也许一个代码示例什么?因为这是有点我的第一个真正的应用程序!感谢 – roostaamir 2013-03-03 14:13:27
只是要清楚,你的时候启动一个exe的新实例,它将在一个不同的STA中打开。他们不共享变量,所以你不能使用互斥或事件,因为它们不共享。我错了吗? – 2013-03-03 14:29:48
GLOBAL \ Mutex在整个Windows计算机上都可见。如果您希望能够连接到它们,您将需要授予权限,但如果它们存在并且您没有权限,则会提供例外。 – 2013-03-03 14:37:40
- 1. 如何一次又一次启动和停止后台线程?
- 2. 如何停止页面加载一次又一次?
- 3. System.Runtime.InteropServices.COMException一次又一次
- 4. 如何防止需要每次登录的iPhone Web应用程序启动
- 5. Netbeans CUnit每次启动应用程序时运行一次
- 6. 如何避免让用户一次又一次地登录(连接)我的Facebook应用程序?
- 7. 仅在应用程序第一次启动时启动活动
- 8. 如何停止ignore_user_abort一次启动?
- 9. 如何防止我的活动再次启动?
- 10. 我想让我的程序一次又一次运行而不会停下来
- 11. 第一次启动时如何防止通知许可?
- 12. 如何在第一次应用程序启动时显示pushviewcontroller?
- 13. 如何在应用程序启动时运行一次?
- 14. 一次又一次地调用功能
- 15. 日期一次又一次显示,我如何使群组由
- 16. 如何防止从我的应用程序启动其他应用程序
- 17. 如何一次又一次的调用视图
- 18. 一次又一次的解析错误
- 19. 如何防止程序加载两次?
- 20. 防止从2 NotfiyIcons显示当程序一次打开多次
- 21. Exchange生产服务器一次又一次地自动重新启动
- 22. 防止android启动应用程序的另一个实例
- 23. IllegalThreadStateException一次又一次地出现..需要在停止后重新启动线程
- 24. 停止重新加载UItableView一次又一次在Iphone
- 25. 如何防止我的对话不止一次打开?
- 26. Android-我如何知道它是第一次启动应用程序?
- 27. Wordpress恶意软件一次又一次
- 28. 一次又一次更新UIVIew
- 29. Android应用程序错误:应用程序已停止unexpectely,再试一次甚至不启动应用程序
- 30. 如何防止上一次换行?
你看,我说的是点击应用程序本身(不是它的通知图标)带来这种情况。我的意思是当点击我的app.exe文件时,会出现此问题。 – roostaamir 2013-03-03 14:17:59
我看到他说什么时候点击图标,他正在谈论实际的桌面图标。不知道我的代码是否在任何地方挂起。如果我找不到它,我会删除它。 – 2013-03-03 14:18:44