关于网友提出的“ 避免程序多次运行”问题疑问,本网通过在网上对“ 避免程序多次运行”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 避免程序多次运行
描述: 我想让我的程序避免多次运行,但希望达到像词霸一样,如果再次运行时自动将前一个运行词霸设为当前活动程序,哪位高手教我如何实现呢?
解决方案1: //只允许运行一次
HANDLE hMutex=OpenMutex(MUTEX_ALL_ACCESS,0,"ONLYONETIME");
if(hMutex==NULL)
CreateMutex(0,TRUE,"ONLYONETIME");
else
return 0;
解决方案2: 在BOOL CTFApp::InitInstance()中加入这段:
CString swndname = "";//你程序启动后的窗口名字
HWND pw = NULL;
pw = FindWindow(NULL,swndname.GetBuffer(swndname.GetLength()));
if(pw == NULL )
return ;
else
{
CWnd wnd;
wnd.Attach(pw);
wnd.ShowWindow(SW_SHOW);
wnd.Detach();
}
解决方案3: 给应用设一个静态变量
unsigned int CYourApp::hInstance = 0;
然后在初始化中判断:
BOOL CYourApp::InitInstance()
{
if ( hInstance == 0 )
hInstance++;
else
{
AfxMessageBox("Don't load another instance.");
return FALSE;
}
以上介绍了“ 避免程序多次运行”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2799234.html