如何判断Excel已经开启了

fairyhoodwater 2005-03-22 10:19:11
如何判断Excel已经开启了
...全文
182 点赞 收藏 5
写回复
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进程
回复 点赞
发动态
发帖子
Windows SDK/API
创建于2007-08-02

797

社区成员

2.2w+

社区内容

Delphi Windows SDK/API
社区公告
暂无公告