使程序只能运行一个唯一的实例
2006-10-01 22:59
531 查看
使程序运行唯一的一个实例常用的有两种方法:
第一种,使用MUTEX,源码如下:
第二种方法,唯一窗口法,源代码如下:
第一种,使用MUTEX,源码如下:
HANDLE g_hMutexOnly = NULL; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { g_hMutexOnly = CreateMutex( NULL, TRUE, _T("OnceOnlyMutex") ); if( g_hMutexOnly != NULL ) { DWORD err = GetLastError(); if( err == ERROR_ALREADY_EXISTS ) { //the program is already running CloseHandle(g_hMutexOnly); return -1; } } else { return 0; } MSG msg; while( GetMessage( &msg, NULL, NULL, NULL ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } CloseHandle(g_hMutexOnly); return 0; }
第二种方法,唯一窗口法,源代码如下:
const TCHAR g_mainWndClassName[]=_T("MyWindowClass"); const TCHAR g_mainTitleName[]=_T("MyWindowTitle"); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hwnd = FindWindowEx( NULL, NULL, g_mainWndClassName, g_mainTitleName ); if( hwnd ) return -1; //register window class //create window CreateWindow( g_mainWndClassName, g_mainTitleName ... ); ... return 0; }
相关文章推荐
- MFC程序唯一运行判断(只能运行一个实例)
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- 使Qt程序只能运行一个实例的3种方法
- MFC 程序只能运行一个实例 互斥对象
- 让你的程序只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- FCL小应用系列-----------如何使得程序只能有一个实例运行?
- C# WINFORM判断程序是否运行,且只能运行一个实例
- windows mobile 只能运行一个程序实例
- 让程序只能运行一个实例(来自ccrun)
- qt编写一个只能运行单个实例的程序,不用Windows API
- [C#]只能运行程序的一个实例
- C#winform判断程序已经运,且只能运行一个实例
- 怎样让我的MFC程序只能运行一个实例?
- 使程序只能运行一个实例
- 让程序只能运行一个实例
- C# 创建互斥进程(程序只能运行一个实例)
- 使Qt 程序只能运行一个实例的3种方法
- 让程序只能运行一个实例(来自ccrun)