SetLastError(0);
    HANDLE hmutex = CreateMutex(NULL, FALSE, (LPCSTR)L"5D0E714F-8C2E-94D3-E819-92C54FDD2EDC");
    if (GetLastError() == ERROR_ALREADY_EXISTS) {
        return 0;
    }
SetLastError(0);

在程序开始时,创建一个互斥量对象。如果运行一个程序两次,在第二次运行程序时,由于已经创建同名互斥量对象,再次创建互斥量对象会失败。程序结束时,操作系统会自动释放该互斥量对象。所以通过这个方法可以检测程序是否只有一个实例在运行。

互斥量对象名字可以通过vs自带的GUID生成器生成,防止不同程序互斥量对象名字相同。

相关文章:

  • 2022-02-27
  • 2021-06-23
  • 2022-12-23
  • 2021-12-13
  • 2022-03-02
  • 2021-06-23
  • 2022-01-31
  • 2021-06-27
猜你喜欢
  • 2021-09-14
  • 2021-06-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案