如何判断Excel已经开启了

fairyhoodwater 2005-03-22 10:19:11
如何判断Excel已经开启了
...全文
237 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fairyhoodwater 2005-03-31
  • 打赏
  • 举报
回复
这招挺好的吧?

uses ComObj,ActiveX;
function IsObjectActive(className : string):boolean;
var
ClassID: TCLSID;
Unknown: IUnknown;
begin
try
ClassID := ProgIDToClassID(ClassName);
result := GetActiveObject(ClassID, nil, Unknown) = S_OK;
except
// raise;
result := false;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsObjectActive('Word.Application') then ShowMessage('Word is running !');
if IsObjectActive('Excel.Application') then ShowMessage('Excel is running !');
if IsObjectActive('Outlook.Application') then ShowMessage('Outlook is running !');
if IsObjectActive('Access.Application') then ShowMessage('Access is running !');
if IsObjectActive('Powerpoint.Application') then ShowMessage('Powerpoint is running !');
end;
kp1150 2005-03-25
  • 打赏
  • 举报
回复
可以用這個試下:
hWnd := FindWindow('XLMAIN',nil)
if hWnd <> 0 then SendMessage(hWnd,WM_CLOSE,0,0);
pl5th2001 2005-03-22
  • 打赏
  • 举报
回复
方法2:用server组件上的EXCEL组件,主动去连接一下,看是否出错,连接成功的话就表明已经启动
pl5th2001 2005-03-22
  • 打赏
  • 举报
回复
最简单的方法:检查进程,转大写后是否等于'EXCEL.EXE'
纯冰糖 2005-03-22
  • 打赏
  • 举报
回复
遍历进程,看是否有excel进程

1,183

社区成员

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

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