CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

求程序只能打开一个实例得代码,谢谢

楼主professorzhou()2006-11-03 19:46:15 在 Delphi / Windows SDK/API 提问

就是同个程序只能打开一次,不能连续打开多个实例,请问有没有示例代码,谢谢 问题点数:20、回复次数:3Top

1 楼do2008(aiGooo·闲来吹吹牛,不亦乐乎)回复于 2006-11-03 20:30:00 得分 8

JF~~~  
   
  单击菜单“Project”,单击“View   Source”,这在代码编辑器中打开了工程文件  
   
  修改如下  
  var  
  hAppMutex:   THandle;  
   
  begin  
  Application.Initialize;  
  //创建互斥对象  
  hAppMutex   :=   CreateMutex(nil,   false,   PChar('OnlyOne'));  
  if   (hAppMutex   =   0)   then  
  begin  
   MessageBox(0,PChar('创建互斥对象失败!'),PChar('Error'),MB_OK   +   MB_ICONINFORMATION);  
   exit;  
  end;  
  //查看是否是第一次运行程序  
  if   ((hAppMutex   <>   0)   and   (GetLastError()   =   ERROR_ALREADY_EXISTS))   then  
  begin  
   MessageBox(0,PChar('不是第一次运行这个程序!'),PChar('OK'),MB_OK   +   MB_ICONINFORMATION);  
   //关闭互斥对象,退出程序  
   CloseHandle(hAppMutex);  
   exit;  
  end;  
  Application.CreateForm(TOnlyOneWindow,   OnlyOneWindow);  
  Application.Run;  
  //关闭互斥对象  
  CloseHandle(hAppMutex);  
  end.  
   
  注意:  
   
    1.在User中,要把Windows放在Form前头;  
   
    2.开始创建互斥对象的代码要在Application.Initialize之后;  
   
    3.关闭互斥对象操作要放在Application.Run之后;  
   
  参考:  
  http://news.newhua.com/html/VC/2006-3/6/063611375235000_27_2.shtml  
  http://www.stefli.com/blog/blogview.asp?logID=315  
  http://www.369xz.com/paper/24/7842.asp  
  Top

2 楼zhxfzhxf1(zhxfzhxf1)回复于 2006-11-03 21:14:32 得分 6

除了上面的方法外,还有   控件  
  可以在网上搜索Top

3 楼linzhengqun(风。我回来了)回复于 2006-11-03 22:48:39 得分 6

http://blog.csdn.net/linzhengqun/archive/2005/12/29/564646.aspx  
  看看这个。Top

相关问题

关键词

得分解答快速导航

  • 帖主:professorzhou
  • do2008
  • zhxfzhxf1
  • linzhengqun

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo