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;
|
|