关于GetActiveObject,如何判断所取得对象的类型
可以用来检测某个程序是否运行
-
Tuesday, 21 October 2008 2:11 AM
- Moved bySheng Jiang 蒋晟MVP, ModeratorTuesday, 3 February 2009 6:00 AMOffice开发 (从 Visual C++ 移动到 Office Business Application)
Answers
-
Tuesday, 21 October 2008 4:05 AMSheng Jiang 蒋晟
Sheng Jiang 蒋晟
MVP
Recent Achievements 13 6 4Proposed Answerer I Forums Curator II Forums Curator I(MVP)104,520ModeratorIOleObject::GetUserClassID- Marked As Answer by宋翔MVP, ModeratorSunday, 10 April 2011 6:20 PM
All Replies
-
Tuesday, 21 October 2008 4:05 AMSheng Jiang 蒋晟
Sheng Jiang 蒋晟
MVP
Recent Achievements 13 6 4Proposed Answerer I Forums Curator II Forums Curator I(MVP)104,520ModeratorIOleObject::GetUserClassID- Marked As Answer by宋翔MVP, ModeratorSunday, 10 April 2011 6:20 PM
-
Tuesday, 21 October 2008 5:16 AM
不清楚你说的该如何使用
我现在的做法
对于word文档
hr = CLSIDFromProgID(L"Word.Application", &clsid); //通过ProgID取得CLSID
hr = GetActiveObject(clsid, NULL, &pUnk); //查找是否有WORD程序在运行
hr = pUnk->QueryInterface(IID_IDispatch, (LPVOID *)&app);
对于ppt文档
hr = CLSIDFromProgID(L"PowerPoint.Application", &clsid); //通过ProgID取得CLSID
hr = GetActiveObject(clsid, NULL, &pUnk); //查找是否有WORD程序在运行
hr = pUnk->QueryInterface(IID_IDispatch, (LPVOID *)&app);
我现在做的话,只能先用word来检测一遍,再用ppt来检测一边。如果L"Word.Application"能换成L"office.Application",取出后再通过Application.name来判断那就方便多了。