Mutex(互斥体),创建的互斥体可以被不同的进程所访问,但是互斥体具有同步性,禁止多个线程同时访问,在任意时刻,一次只允许一个线程进行访问。利用互斥体的这一特性,我们可以以此用来判断程序是否重复运行。
//打开一个互斥体
function OpenMutex(
dwDesiredAccess: DWORD; {安全访问权限}
bInheritHandle: BOOL; {能否被当前进程所继承}
lpName: PwideChar {互斥体名称}
): THandle; stdcall;
//创建一个互斥体
function CreateMutex(
lpMutexAttributes: PSecurityAttributes; {一般为Nil,采用默认安全属性}
bInitialOwner: BOOL; {创建进程是否立即拥有互斥体的所有权}
lpName: PwideChar {互斥体对象名称}
): THandle;
//释放互斥体
function ReleaseMutex(
hMutex: Thandle
): BOOL; stdcall;
//关闭内核对象
function CloseHandle(
hObject: Thandle
): BOOL; stdcall;
联系客服