首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
tellmenow (22)
cutemouse (22)
softj (78)
iiprogram (69)
qdzx2008 (50)
goodboy1881 (14)
wangchinaking (58)
fancyhf (1)
harrymeng (41)
yjz0065 (113)
CSDN - 文档中心 - Delphi 阅读:1992   评论: 1    参与评论
标题   防止程序多次运行     选择自 wnhoo 的 Blog
关键字   防止程序多次运行
出处  

网络ID:wnhoo or sos_admin
网名:e梦缘
Mail:wnhoo@163.com
风花雪月 e梦情缘

http://delphi.ur-solution.com/delphi_download/upload/33954_wnhoo.rar

[dpr部分]
program Project1;

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

const
hfck=wm_user+$1000;
appname='myname';
var
myhandle:hwnd;
{$R *.res}

begin
myhandle:=findwindow(appname,nil);
if myhandle>0 then
begin
postmessage(myhandle,hfck,0,0);
exit;
end;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

[form部分]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
const
hfck=wm_user+$1000;
appname='myname';
type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
  procedure createparams(var params:tcreateparams);override;
  procedure restorerequest(var msg:tmessage);message hfck;


    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.createparams(var params:tcreateparams);
begin
  inherited createparams(params);
  params.WinClassName:=appname;
end;
  procedure TForm1.restorerequest(var msg:tmessage);
  begin
  if isiconic(application.Handle )=true then
  application.Restore
  else
  application.BringToFront ;

  end;
end.


相关文章
对该文的评论
CSDN 网友 ( 2004-09-19)
为什么不用Mutex?