C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计820个文字,预计阅读时间需要4分钟。
在最近做的Winform程序中,若需打开一个已存在的程序,只需激活该程序的窗口,并显示在桌面的最前端。通过Google搜索,找到了许多解决方案。以下我整理了三种方案:
1. 使用FindWindow函数查找窗口句柄,然后使用SetForegroundWindow函数激活窗口。
2.使用EnumWindows函数遍历所有窗口,找到目标窗口后激活。
3.使用GetWindowThreadProcessId函数获取窗口的进程ID,然后使用OpenProcess和SuspendThread函数控制进程,最后使用ResumeThread和CloseHandle函数恢复进程。
最近在做winform的程序中,需要只能打开一个程序,如果已经存在,则激活该程序的窗口,并显示在最前端。在网上google了一哈,找到了很多的解决方案。这里我整理了3种方案,并经过了测试,现和朋友们分享:
一、使用用互斥量(System.Threading.Mutex)
同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,就职运行一个实例。
本文共计820个文字,预计阅读时间需要4分钟。
在最近做的Winform程序中,若需打开一个已存在的程序,只需激活该程序的窗口,并显示在桌面的最前端。通过Google搜索,找到了许多解决方案。以下我整理了三种方案:
1. 使用FindWindow函数查找窗口句柄,然后使用SetForegroundWindow函数激活窗口。
2.使用EnumWindows函数遍历所有窗口,找到目标窗口后激活。
3.使用GetWindowThreadProcessId函数获取窗口的进程ID,然后使用OpenProcess和SuspendThread函数控制进程,最后使用ResumeThread和CloseHandle函数恢复进程。
最近在做winform的程序中,需要只能打开一个程序,如果已经存在,则激活该程序的窗口,并显示在最前端。在网上google了一哈,找到了很多的解决方案。这里我整理了3种方案,并经过了测试,现和朋友们分享:
一、使用用互斥量(System.Threading.Mutex)
同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,就职运行一个实例。

