用命名内核对象防止windows同时运行两个程序

来源:互联网 发布:咏春 实战 知乎 编辑:程序博客网 时间:2024/05/16 10:01
利用创建命名内核对象的方法可以防止同时运行程序,由于可能其他人写的程序用的命名会与自己的重复,
所以建议采用唯一的GUID。
以下代码根据《winows核心编程》整理。
  1. #include <windows.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.     HANDLE h = CreateMutexW(NULL, FALSE, L"{FA531CC1-0497-11d3-A180-00105A276C3E}");
  6.     if ( GetLastError() == ERROR_ALREADY_EXISTS )
  7.     {
  8.         printf("The application exists!/n");
  9.     }
  10.     else
  11.     {
  12.         printf("Run./n");
  13.     }
  14.     system("pause");
  15.     CloseHandle(h);   
  16.     return 0;
  17. }