1.请问怎么判断一个应用程序已经启动一次了!
2.启动一次后就不让程序再启动了!
请问用程序怎么实现呀!
谢谢!
2.启动一次后就不让程序再启动了!
请问用程序怎么实现呀!
谢谢!
解决方案 »
- 为什么添加断点调试的时候能正确运行,直接运行就出错?
- 《深入浅出MFC》中讲窗口注册时的::RegisterClass()函数
- 我的程序在98下出现"A required resource was unavailbale"错误,请帮忙啊!!
- 关于编辑框的问题???
- 有两年编程经验,应该如何学习VC,严格地说好像是学习MFC。
- 请问什么是mfc??
- 非模式对话框的数据交换
- 在Excel自动化编程中,如何将时间格式转化为文本格式?
- 请教关于ACCESS中字段类型的问题
- MCSE 2000 会过时吗?
- 上次的问题没解决,我重开了一个贴(ShowModelessHTMLDialog)
- 请问出现LINK : fatal error LNK1561: entry point must be defined怎么回事?
看这里
http://www.csdn.net/Develop/article/15/15174.shtm
2.在你的工程中找到InitInstance()这个函数,然后添加如下的代码!!!
int x;
x=GetProfileInt("test", "times", 0);
if(x>1)
{
AfxMessageBox("1 times!", MB_OK);
return false;
}
WriteProfileInt("test", "times", x+1);
上面这断代码要添加在InitInstance()函数中LoadStdProfileSettings();的后面就可以了.
2. 在CWinApp::InitInstance()里做如下代码
g_Mutex = CreateMutex(NULL, FALSE, _T("YourAppName"));
if(g_Mutex == NULL)
{
DWORD dwErr;
dwErr = GetLastError();
if(dwErr == ERROR_ALREADY_EXISTS)
{ // 已有一个程序正在运行
....
}
else
{
....
}
}3. 在ExitInstance()中
CloseHandle(g_Mutex);
在应用类xxxApp::InitInstance()中的开始加入: ::CreateMutex(NULL,TRUE,"Your program name or else");
if ( GetLastError() == ERROR_ALREADY_EXISTS )
{
AfxMessageBox("程序已经在运行");
return FALSE;
}
if(hMutex)
{
if(GetLastError()==ERROR_ALREADY_EXISTS)
return 0;
}