用进程互斥 FindWindow ATOM
请问你要那一个
请问你要那一个
解决方案 »
- Delphi中的关于TImage循环填充两种色块从而达到闪烁效果的问题!
- 有没有用DXDBGrid控件的啊
- 请教大家一个关于cxGrid与AdoQuery的问题。。。熟大家指点。
- 关于dll窗体定位的问题
- 怎么把日期时间字段连毫秒都存进去?
- 请教:DBChart如何给Y轴赋最大值,而不是自动产生!
- 为广大编程爱好者提供软件发布平台
- 如何在应用程序中同时创建两个系统热键Ctrl+B,Ctrl+N.(乞求代码,100分赠送!)
- 用线程实现对数据库表的操作,一运行就提示出错:未知的软件异常,Access violation,相互身份验证失败.该服务器在域控制器的密码过期
- DELPHIXE APP中怎样将TJavaArray数组转为Array
- 急!急!急!边吃月饼边回答吧
- 整个SQL被删了,我把数据库文件.mdf和.log文件恢复回来了,但不知道如何恢复到SQL里面去!
hwndsbsz:hwnd;
begin
hwndsbsz:=findwindow(nil,pchar(''); //引号中为另一应用程序的Application.Title,
即该程序运行时在任务栏上的名称 if hwndsbsz <> 0 then
application.MessageBox('模块正在运行中!','提示',mb_ok);
end;
CreateMutex(nil,False,'字符串');
if GetLastError=Already_Exists then begin
Halt(0);
end;
Application.Initialize;
.......................
Application.Run
用CreateMutex会较好,它的参数值不依赖于界面元素;我一般会生成一个GUID来填充第三个参数,这样一般就不会与其它应用程序具有相同的特征了。
用Atom也挺好,不过我没亲自试过。
你的代码忘了释放建立的Mutex。