如何做到应用程序只运行一个实例?

失落的羊 2012-03-13 04:18:31
WinXP + BCB6.0

开发的应用程序,如何确保只运行一个实例?

我用HANDLE HMutex=CreateMutex 方式未遂。求解!
...全文
87 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落的羊 2012-03-19
  • 打赏
  • 举报
回复
果然是位置的问题。已然解决了。谢谢
我不懂电脑 2012-03-14
  • 打赏
  • 举报
回复
(1)、 h_mutex1=CreateMutex(NULL,FALSE,"mutex_for_readcount");//创建一个互斥体   (2)、HANDLE m_hMutex = CreateMutex(NULL, FALSE, "Sample07");// 检查错误代码   if (GetLastError() == ERROR_ALREADY_EXISTS)   {   // 如果已有互斥量存在则释放句柄并复位互斥量   CloseHandle(m_hMutex);   m_hMutex = NULL;   // 程序退出   return FALSE;   };   //上面这段代码演示了有名互斥量在进程互斥中的用法。代码的核心是CreateMutex()对有名互斥量的创建。   CreateMutex() 用于有独占要求的程序 (在其进程运行期间不允许其他使用此端口设备的程序运行,或不允许同名程序运行)。
ccrun.com 2012-03-14
  • 打赏
  • 举报
回复
Google "site:csdn.net Application CreateMutex"
nanjun520 2012-03-13
  • 打赏
  • 举报
回复
CreateMutex可行的,要看你代码放的位置,也就是说如果你放的位置在实例已经出来了就没有意义了。
缘中人 2012-03-13
  • 打赏
  • 举报
回复
CreateMutex是可行的,看你的代码是否有问题
__lhy 2012-03-13
  • 打赏
  • 举报
回复
HANDLE hmute=CreateMutex(NULL,FALSE,"BCB");  
if(GetLastError()==ERROR_ALREADY_EXISTS)
{
Application->MessageBoxA("程序已运行","提示",MB_OK);//此处你可以做其他处理 如激活已运行的实例
return 1;
}//记得CloseHandle:)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧