首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi两个程序不能与此同时执行,只能执行一个

2012-08-10 
Delphi两个程序不能同时执行,只能执行一个在Delphi两个程序A/B,如果先打开A,在打开B时,仍旧弹出A,B没有显

Delphi两个程序不能同时执行,只能执行一个
在Delphi两个程序A/B,如果先打开A,在打开B时,仍旧弹出A,B没有显示;
如果先执行B,在打开A时,仍旧弹出B,A没有显示。
不知道什么原因。

[解决办法]
加互斥量就可以,供你参考:

Delphi(Pascal) code
const  CSMutexName = 'Global\*******_*******_******';var  OneInstanceMutex: THandle;  SecMem: SECURITY_ATTRIBUTES;  aSD: SECURITY_DESCRIPTOR;  s: string;begin  InitializeSecurityDescriptor(@aSD, SECURITY_DESCRIPTOR_REVISION);  SetSecurityDescriptorDacl(@aSD, True, nil, False);  SecMem.nLength := SizeOf(SECURITY_ATTRIBUTES);  SecMem.lpSecurityDescriptor := @aSD;  SecMem.bInheritHandle := False;  OneInstanceMutex := CreateMutex(@SecMem, False, CSMutexName);  if (GetLastError = ERROR_ALREADY_EXISTS)then  begin    //处理你的逻辑,是弹出B程序还是直接退出    CloseHandle(OneInstanceMutex);    Exit;      end;
[解决办法]
判断重复运行的方式有很多的 不只是CheckMutex互斥
还有信号判断 CreateSemaphore
映射判断 CreateFileMapping
原子判断 GlobalFindAtom 等等~~

[解决办法]
源流。
[解决办法]
CreateMutex
CreateEvent
CreateSemaphore
在工程文件里面找一下这几个函数。
[解决办法]
就是互斥好不..

你两个程序都按 F8 下断点调试一下就知道了.

热点排行