你的窗口名是什么呀?比如说是form1
然后在你的程序窗休的create事件中写下:
var hand1:thandle;
begin
hand1:=findwindow('','form1');
if hand1<>0 then
begin
showmessage('本程序只能运行一次');
exit;
end;
end;
本程序段没有经过测试,不知道行不行。
小弟我也来说个
一种方法是程序运行时先查找有没有相同的运行了,如果有,就立刻退出程序.
修改dpr项目文件,修改begin和end之间的代码如下:
begin
Application.Initialize;
if FindWindow('TForm1','Form1')=0 then begin
//当没有找到Form1时执行下面代码
Application.ShowMainForm:=False; //不显示主窗口
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
另一种方法是启动时会先通过窗口名来确定是否已经在运行,如果是则关闭原先的再启动。
方法如下:修改dpr项目文件
uses
Forms,windows,messages,
Unit1 in 'Unit1.pas' {Form1};
procedure TForm1.Button1Click(Sender: TObject);
var
a:hwnd;
begin
a:=findwindow(nil,'QQ用户登录');
if a<>0 then
begin
end
else
winexec(pchar('可执行文件'),SW_SHOW);
showmessage(inttostr(a));
end;