Delphi7
Windows电脑
打开Delphi7集成开发环境,F9编译运行默认工程,在工程文件目录下会生产Project1.exe可执行文件。因为本人电脑同时装了Delphi xe4,所以有些图标可能看起来和Delphi7不太一样。
关闭程序,回到编辑界面,点击Project-View Source,打开工程源代码文件。
在工程源代码文件,引入windows单元,并定义一个THandle变量即防止程序重复启动的句柄,和一个进程名的常量,代码如下:program Project1;uses Forms, Windows, Unit1 in 'Unit1.pas' {Form1};{$R *.res}var hMutex: THandle;const Name = 'Project1';
在工程源代码文件begin..end代码块,写如下代码,防止程序重复启动:begin hMutex := CreateMutex(nil, False, Name); if GetLastError = ERROR_ALREADY_EXISTS then begin MessageBox(0, '该程序已启动', '提示', MB_OK); Application.Terminate; end; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; ReleaseMutex(hMutex);end.解释一下:创建名为Name互斥体,如果GetLastError 为ERROR_ALREADY_EXISTS说明互斥体已存在,即程序已经启动,就退出。如果不存在,进行程序正常运行,最后释放互斥体。
F9运行程序,窗体显示,查看系统资源管理器,可以看到Project1.exe
进入第一步本程序文件目录,双击Project1.exe,运行程序,弹出‘改程序已启动’对话框。