文章收藏-FAQ 位置:电脑学习网

在 Delphi 中判断本程序是否已经运行?

要判断实例是否运行,必须在程序的消息循环之前,在 Delphi 中,是在 Application.Initialize 之前。实现本功能, Delphi 使用的主要函数是 CreateMutex。这个函数用来生成一个 Mutex 对象的句柄,这个句柄具有操作系统的全局命名空间。
  Delphi 例子程序的部分代码如下:
  const MB_MINE = MB_OK or MB_ICONINFORMATION or MB_TASKMODAL;
  var
   hMutex: DWORD;
  begin
   hMutex := CreateMutex(nil, TRUE,‘MyMutex’); //TRUE 标明该进程拥有此 Mutex 对象
  if (GetLastError = ERROR_ALREADY_EXISTS) then //Mutex 对象是否存在
   begin
    ReleaseMutex(hMutex);
   Exit; //退出程序
    end
   else
   if hMutex = ERROR_INVALID_HANDLE then //检查"mymutex"这个名字是否被其他诸如文件映射、信号灯和事件等对象占用
  MessageBox(0, ‘The name matched with a existing object!’, ‘Information’,MB_MINE)
  else
   begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.Run;
   ReleaseMutex(hMutex); //释放 Mutex 对象
   end;

     [文章来源:“十万个为什么”电脑学习网]
     [网络地址:http://why100000.com]
     [版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
 

【字体:[大] [中] [小] 【加入收藏】 【发表评论】 【关闭本窗口】

Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com  QQ:9365822