DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: qiaoguoqiang
今日帖子: 14
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 yangguofa (杨国发) ★☆☆☆☆ -
普通会员
2004/6/10 10:30:32
标题:
禁止运用程序2次运行 浏览:856
加入我的收藏
楼主: 禁止运用程序2次运行,高手帮忙,这样怎么不行呀?

program Project2;

uses
  Forms,
  windows,
  Unit1 in 'Unit1.pas' {Form1};

var
 Hwnd:THandle;


{$R *.res}
begin

Hwnd:=FindWindow('TForm1','Form1'); //查找是否已有窗体Form1
if Hwnd<>0 then begin
SetForegroundWindow(Hwnd); //激活已运行的程序实例,但程序最小化时无效
Application.Terminate; //终止本次实例
end

else begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end;
end.

----------------------------------------------
生命是一场战斗,我们都是天生的战士,披战衣,上沙场,兵来将挡,水来土掩,受伤了,自己躲到一角舔伤口,休息一会再上沙场,渐渐地,受伤不再是一个伤口,而是一种习惯。
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/6/10 10:52:58
1楼: Hwnd := FindWindow('TForm1', 'Form1'); //查找是否已有窗体Form1
if Hwnd <> 0 then 
begin
  if IsIconic(Application.Handle) then Application.Restore;
  SetForegroundWindow(Hwnd); //激活已运行的程序实例,但程序最小化时无效
  Application.Terminate; //终止本次实例
end

建议你用CreateMutex代替FindWindow
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS