——此文章摘自《Delphi开发经验技巧宝典》定价¥特价¥ 购买>>http://tracklinktechcn/?m_id=dangdang&a_id=A&l=&l_type= width= height= border= nosave> 在开发过程中可以使用互斥对象控制应用程序只能打开一个进程避免误操作或其他原因造成因同时打开多个应用程序而使数据录入或统计错误本例是在工程单元中打开互斥对象如果句柄为说明互斥对象不存在创建互斥对象并运行程序如果句柄大于说明存在互斥对象程序直接退出主要代码如下 if OpenMutex(MUTEX_ALL_ACCESSTrueMutex)= then begin CreateMutex(nilTrueMutex); ApplicationInitialize; ApplicationCreateForm(TForm Form); ApplicationRun; CloseHandle(OpenMutex(MUTEX_ALL_ACCESSTrueMutex)); end; 使用CreateMutex函数创建互斥对象 语法格式如下 Handle CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes BOOL bInitialOwner LPCTSTR lpName ); 参数说明 lpMutexAttributes安全属性 BInitialOwner指定互斥对象是否拥有所有者标识值为true时程序创建的Create Process 方法能够继承互斥对象句柄 LpName创建的互斥对象名称 Return_Value返回创建的互斥对象句柄 使用OpenMutex函数打开互斥对象 语法格式如下 Handle OpenMutex( DWORD dwDesiredAccess // access flag BOOL bInheritHandle // inherit flag LPCTSTR lpName // pointer to mutexobject name ); 参数说明 dwDesiredAccess访问标识 BInheritHandle继承标识 LpName互斥对象名称 Return_Value返回打开的互斥对象句柄 |