枚举所有打开的Office文件路径
来源:互联网 发布:淘宝如何开好直通车 编辑:程序博客网 时间:2024/05/22 22:35
上一篇文章说了怎么得到当前活动的WORD文件路径,那如果当前打开了好多WORD,EXCEL等Office文件的话,那个方法也只能获取到当前获得焦点的实例所打开的文件。
其实还有一种方法可以获取到所有打开的Office文件路径,其实不光是Office,包括VS的实例也会被列出来,具体代码如下:
#include <stdio.h>#include <conio.h>#include <Windows.h>#include <tchar.h>#include <iostream>using namespace std;#pragma comment(lib,"Ole32.lib")#pragma comment(lib,"OleAut32.lib")bool EnumAllOfficeFilePath(){CLSID clsid;CoInitialize(NULL);HRESULT hr = S_FALSE;IRunningObjectTable* pRot = NULL;IEnumMoniker* pEnumMoniker = NULL;IMoniker* pMoniker = NULL;hr = GetRunningObjectTable(0,&pRot);if(FAILED(hr)){cout<<"GetRunningObjectTable failed"<<endl;return false;}hr = pRot->EnumRunning(&pEnumMoniker);if(FAILED(hr)){cout<<"EnumRunning failed"<<endl;return false;}hr = pEnumMoniker->Reset();if(FAILED(hr)){cout<<"Reset failed"<<endl;return false;}IBindCtx *pbc;CreateBindCtx(0, &pbc);int index = 1;while( (hr = pEnumMoniker->Next(1, &pMoniker,NULL)) ==S_OK){OLECHAR* szDisplayName;hr = pMoniker->GetDisplayName(pbc,NULL, &szDisplayName);if(FAILED(hr)){cout<<"GetDisplayName failed"<<endl;}else{DWORD dwLen = WideCharToMultiByte(CP_ACP,0, szDisplayName,-1,NULL,0,NULL,FALSE);char* szResult = new char[dwLen];WideCharToMultiByte(CP_ACP,0,szDisplayName,-1, szResult,dwLen,NULL,FALSE);printf("%d:%s\n",index++, szResult);delete[] szResult;}pMoniker->Release();}pbc->Release();pEnumMoniker->Release();pRot->Release();CoUninitialize();return true;}int main(int argc, char* argv[]){EnumAllOfficeFilePath();return 0;}
0 0
- 枚举所有打开的Office文件路径
- 枚举当前打开的所有窗口
- 枚举当前打开的所有窗口
- C++获取某路径下所有文件名,ifstream打开某路径下的指定文件
- MFC编程实践--枚举某路径下的所有文件
- SSIS【Foreach 循环容器_Foreach 文件枚举器】(导入路径下的所有txt文件的内容)
- SSIS【Foreach 循环容器_Foreach 文件枚举器】(导入路径下的所有txt文件的内容) (转)
- 枚举已打开文件的标题
- 打开路径打开文件
- VC++MFC 枚举当前打开的所有窗口
- 枚举当前环境中打开的所有IE
- MDI环境下枚举所有打开的窗口
- 获取目标路径下所有文件名的枚举集合
- [IE技巧] IE 中打开Office文件的设置
- Office的安装路径
- 列举linux进程打开的所有文件
- 查看xx进程打开的所有文件
- 查找给定路径下的所有文件
- ARM+Linux应用程序调试环境
- Commentator problem(爬山)
- Android 源码获取-----在Windows环境下通过Git得到Android源代码
- 一种带有返回值的,动态的线程池的实现(版本之一,草版)。从jdk1.5测试通过。
- MLSBS v0.21RC,Linux 一键运维脚本(新增脚本加密)
- 枚举所有打开的Office文件路径
- 如何让出色团队在享受中创造更棒的游戏
- cocos2d-x项目的开始
- 郭芳芳
- JQUERY’S JSONP EXPLAINED WITH EXAMPLES
- 【leetcode】Validate Binary Search Tree
- 同一天认要
- 每日一小练——数值自乘非递归解
- CATransform3DMakeRotation 旋转,翻转