S
swlove
Unregistered / Unconfirmed
GUEST, unregistred user!
已经实现只让程序运行一个实例,但我想再次双击这程序时能正常显示该程序
在下代码中,发送ShowWindow(iHandle,SW_SHOWMAXIMIZED),这可以再次显示程序,但这是最大化显示,我想实现的是正常显示
而且我试过其他参数,如SW_NORMAL 之类的都不行
请问要如何修改才能实现我的要求呢 ? 谢谢
program Project1;
uses
Forms,Windows,
Unit1 in 'Unit1.pas ' {Form1};
{$R *.res}
const
iAtom= 'MyApplication ';
var
iHandle:THandle;
begin
if GlobalFindAtom(iAtom)=0 then
begin
GlobalAddAtom(iAtom);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
GlobalDeleteAtom(GlobalFindAtom(iAtom));
end
else if Application.MessageBox( '程序已经在运行! ', '提示 ',MB_YESNO+MB_ICONASTERISK)=IDYES then
begin
iHandle:=FindWindow(nil, 'Form1 ');
if iHandle < > 0 then
ShowWindow(iHandle,SW_SHOWMAXIMIZED);
end;
end.
在下代码中,发送ShowWindow(iHandle,SW_SHOWMAXIMIZED),这可以再次显示程序,但这是最大化显示,我想实现的是正常显示
而且我试过其他参数,如SW_NORMAL 之类的都不行
请问要如何修改才能实现我的要求呢 ? 谢谢
program Project1;
uses
Forms,Windows,
Unit1 in 'Unit1.pas ' {Form1};
{$R *.res}
const
iAtom= 'MyApplication ';
var
iHandle:THandle;
begin
if GlobalFindAtom(iAtom)=0 then
begin
GlobalAddAtom(iAtom);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
GlobalDeleteAtom(GlobalFindAtom(iAtom));
end
else if Application.MessageBox( '程序已经在运行! ', '提示 ',MB_YESNO+MB_ICONASTERISK)=IDYES then
begin
iHandle:=FindWindow(nil, 'Form1 ');
if iHandle < > 0 then
ShowWindow(iHandle,SW_SHOWMAXIMIZED);
end;
end.