一些关于vc的问答
源代码在线查看: subject_45107.htm
序号:45107 发表者:阳光之子 发表日期:2003-06-26 16:10:46
主题:如何禁止一个程序被多次执行?
内容:如何禁止一个程序被多次执行?
返回上页访问论坛
回复者:剑剑 回复日期:2003-06-27 17:00:23
内容:BOOL RunUniqueInstance(){ HANDLE hInst=CreateMutex(NULL,TRUE,"Chevaler.Clear"); if (hInst!=NULL) { if (GetLastError()==ERROR_ALREADY_EXISTS) { AfxMessageBox("你已启动了该程序!"); CloseHandle(hInst); ExitProcess(99); return TRUE; } } return FALSE;}把它放在 initinstance上BOOL CClearMoudleApp::InitInstance(){ AfxEnableControlContainer(); RunUniqueInstance();
返回上页访问论坛
回复者:阳光之子 回复日期:2003-06-29 08:11:20
内容:谢谢yikun,再想问一下:BOOL RunUniqueInstance()放在哪呢?
返回上页访问论坛
回复者:剑月明 回复日期:2003-06-30 00:11:58
内容:放在CXXAPP那吧
返回上页访问论坛
回复者:阳光之子 回复日期:2003-06-30 15:29:02
内容:麻烦大家说清楚些,好吗?我等你们的好消息!!!!!!!
返回上页访问论坛
答案被接受回复者:Sorrow 回复日期:2003-06-30 21:01:33
内容:.h 文件中...class CYourApp : public CWinApp{public:......//--- 添加一个访问级别为private的变量private: HANDLE m_hSingle;...}.cpp 文件中...BOOL CYourApp::InitInstance(){ CString strSingle = "YourAppSingleInstance"; m_hSingle = OpenMutex( MUTEX_ALL_ACCESS, FALSE, strSingle ); //--- m_hSingle 不存在, 正常启动程序, 并创建 m_hSingle if ( m_hSingle == NULL ) { m_hSingle = CreateMutex( NULL, TRUE, strSingle ); } // m_hSingle 已存在, 显示警告信息, 退出程序 else { ::AfxMessageBox( "本程序已经在运行中." ,MB_OK | MB_ICONWARNING ); //--- 终止程序 return FALSE; } ...}
返回上页访问论坛
回复者:剑剑 回复日期:2003-07-01 10:21:04
内容:我放在全局函数。楼上的应该也可以,原理也是一样的。给分
返回上页访问论坛
回复者:阳光之子 回复日期:2003-07-01 10:57:40
内容:谢谢大家的帮忙,可分只能给一个人,对不起了,没得到分的朋友!!!
返回上页访问论坛