怎样知道托盘中已存在某个应用程序?

憨逗熊 2004-12-03 10:20:31
怎样知道托盘中已存在某个应用程序?
...全文
148 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdq801104 2004-12-10
  • 打赏
  • 举报
回复
如果你做成了托盘程序,运行后当然会在右下角显示,你运行后知道这个程序在运行就不加载了嘛,我觉得楼主根本想问的并不是我们所答的,??
richard_ouyang 2004-12-10
  • 打赏
  • 举报
回复
zdq801104(【☆我很笨,但是我不傻!☆】) 只是说了判断这个程序是否在运行。没有解决是否在托盘呀。
具体的办法我不知道。我有一个笨方法当系统在托盘显示图标的时候把一个变量状态设置一下
dreamonce 2004-12-10
  • 打赏
  • 举报
回复
如果是想判断是是否有某程序在运行,最好是寻找
是否有程序的窗口,或是察看是否有进程
zdq801104 2004-12-06
  • 打赏
  • 举报
回复
实例只能运行一次的代码:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, CheckLst;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
//保存Mutex句柄
mHandle:THandle;
PreviousInstanceWindow:HWnd;
Project:String;
AppName:String;
implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin

end;

initialization
//定义自己的项目名称,作为要创建的互斥区名,最好有自己的特点以防止重复
Project:='RunOnlyOnce_MyProject';
//将lpMutexAttributes设为nil,bInitialOwner设为True(即本程序拥有该互斥区)
mHandle:=CreateMutex(nil,True,PChar(Project));
if GetLastError=ERROR_ALREADY_EXISTS then
//该互斥区已存在则表明已有本程序的另一个实例在运行
begin
ShowMessage('已经有该程序在运行');
//保存程序标题
AppName:=Application.Title;
//不显示本窗口
Application.ShowMainForm:=False;
//改变程序标题,以使函数FindWindow找到的是前一个实例窗口
Application.Title:='destroy me';
//寻找前一个实例窗口句柄
PreviousInstanceWindow:=FindWindow(nil,PChar(AppName));
//已经找到
if PreviousInstanceWindow<>0 then
//如果该窗口最小化则恢复
if IsIconic(PreviousInstanceWindow) then
ShowWindow(PreviousInstanceWindow,SW_RESTORE)
else
//如果程序在后台则将其放到前台
SetForegroundWindow(PreviousInstanceWindow);
//中止本实例
Application.Terminate;
end;
finalization
//该互斥区对象仍存在则关闭对象
if mHandle<>0 then
CloseHandle(mHandle);
end.


zdq801104 2004-12-06
  • 打赏
  • 举报
回复
不怎么明白楼主意思?我想你自己做一个让实例只能运行一次的判断不就可以了吗?
PrettyMurphy 2004-12-06
  • 打赏
  • 举报
回复
关注
zwb666 2004-12-05
  • 打赏
  • 举报
回复
帮顶

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧