如何判断我的程序已经运行了,就不需要再开启一个程序了 我已经开启了一个exe程序,双击打开又会开启一个同样exe,如何判断已经有这个exe在运行,如果此时不在前台,将其置顶?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用FindWindow查看返回句柄是否有效如果有效就BringWindowToFront(hWnd);SetForegroundWindow(hWnd);SetWindowPos(....)把其置顶,然后退出如果无效就正常启动 在BOOL CTestCaptureApp::InitInstance()添加如下代码HANDLE hMutex=CreateMutexW(NULL,TRUE,L"随便写点就行"); if(hMutex) { if(ERROR_ALREADY_EXISTS==GetLastError()) { AfxMessageBox(L"程序已在运行中!"); return FALSE; } } 互斥变量也是一种方法链接讲了互斥变量和FindWindow两种方式,因为你要将其置顶,因此我觉得FindWindow更合适一些http://wtunuiyf.blog.163.com/blog/static/18003200682573922496/ 防止打开多个exehttp://topic.csdn.net/u/20101119/15/8fcae5f3-df45-4116-9f03-a543ef1ee910.html // App类的InitInstance函数中加入HANDLE hMutext = ::CreateMutex(NULL, FALSE, _T("A")); if(hMutext && ERROR_ALREADY_EXISTS == GetLastError()) { ::CloseHandle(hMutext); HWND hWnd = ::FindWindow(NULL, _T("A")); if(hWnd && ::IsIconic(hWnd)) { ::ShowWindow(hWnd, SW_RESTORE); } BringWindowToTop(hWnd); SetForegroundWindow(hWnd); return FALSE; } VS2005 子类无法调用父类函数 怎样从键盘获取字符赋值给DOS下的一个程序作为其输入参数? 怎样读取FireFox收藏的网址信息 如何不使用ActiveX控件,直接在窗口里显示网页! 请问非MFC框架下如何在控件上显示位图? 急求,怎么样关闭一个thread 关于winpcap的若干问题 如何得到某个文件夹下所有文件的大小总数? 如何在socket 中实时处理图像? MFC求救!!!拜托了~~ socket超级疑难? ExitProcess(status)中断问题!加急
如果有效就BringWindowToFront(hWnd);
SetForegroundWindow(hWnd);
SetWindowPos(....)把其置顶,然后退出如果无效就正常启动
if(hMutex)
{
if(ERROR_ALREADY_EXISTS==GetLastError())
{
AfxMessageBox(L"程序已在运行中!");
return FALSE;
}
}
http://topic.csdn.net/u/20101119/15/8fcae5f3-df45-4116-9f03-a543ef1ee910.html
// App类的InitInstance函数中加入HANDLE hMutext = ::CreateMutex(NULL, FALSE, _T("A"));
if(hMutext && ERROR_ALREADY_EXISTS == GetLastError())
{
::CloseHandle(hMutext);
HWND hWnd = ::FindWindow(NULL, _T("A"));
if(hWnd && ::IsIconic(hWnd))
{
::ShowWindow(hWnd, SW_RESTORE);
}
BringWindowToTop(hWnd);
SetForegroundWindow(hWnd);
return FALSE;
}