delphi程序只允许运行一个实例的简单方法:

原理:在程序运行前用FindWindow函数查找具有相同窗口类名和标题的窗口,如果找到了,就说明已经存在。

注意:FindWindow()函数带两个参数(类名和标题的窗口)其中的一个参数可以忽略,但最好将两个参数都用上,免得凑巧别的程序也在使用相同的类名,就得不到正确的结果了。

缺点:如果是在Delphi IDE窗口中运行该程序,将一次都不能运行,因为已经存在相同类名和标题的窗口:设计时的窗口。

操作:1、项目源文件Project中 uses 加入 windows 

   2、申明互斥变量Var Hwnd:Thandle;

     3、加入下面代码

  Hwnd:=FindWindow('TForm1','Form1');//两参数-类名,标题名
If Hwnd
<>0 then Begin Application.MessageBox(pchar('此程序已经运行!'),pchar('提示!'),MB_OK); Exit; End;

 

posted on 2014-11-12 09:55  酷瑞  阅读(287)  评论(0编辑  收藏  举报

导航