枚举所有打开的Office文件路径

上一篇文章说了怎么得到当前活动的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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本资源包含两部分,第一部分是WPS OFFICE 2012二次开发FAQ,目录如下,内含部分VC和VB的源码指导,第二部分是WPS Office二次开发帮助文档,详细描述了wps,et,wpp的对象、属性和方法等接口,值得你拥有 1 二次开发的兼容性FAQ.....................................................................................................................3 1.1 WPS Office 2012 的二次开发开发和微软的Office 二次开发有什么异同..........................3 1.1.1 模块对象的区别........................................................................................................... 3 1.1.2 枚举常量的区别........................................................................................................... 3 1.1.3 commandbars 调用的区别............................................................................................. 3 1.2 WPS Office2012 的接口类对象和对应的DLL 文件.............................................................4 1.3 原有的与WPS Office 2003(WPS2003)、WPS Office 2002(WPS2002)、WPS Office2005 (WPS2005)、WPS Office 2007(2007)、WPS Office 2009(2009)结合的第三方程序,可 以直接和WPS Office2012 结合运行吗?.................................................................................... 4 1.4 原有的与WPS Office 2003 或者WPS Office 2002 结合的第三方程序,需要做什么改动 才能正常和WPS Office2012 结合运行?.................................................................................... 4 1.5 调用WPS 接口API 方法时要注意Variant 参数类型的传递。.......................................... 5 1.6 通过注册表修改宏代码的安全级别。.................................................................................. 5 2 二次开发文字部分FAQ.....................................................................................................................6 2.1 如何启动WPS 文字模块?....................................................................................................6 2.2 如何退出WPS 文字模块?....................................................................................................6 2.3 如何得到WPS 中的工具栏数?............................................................................................6 2.4 如何隐藏工具栏?..................................................................................................................6 2.5 如何使工具栏的按钮失效?.................................................................................................. 7 2.6 如何获得一个文档?..............................................................................................................7 2.7 如何打开wps 文档?............................................................................................................. 7 2.8 如何关闭一个文档?..............................................................................................................7 2.9 如何保存一个文档?..............................................................................................................7 2.10 如何获得或修改当前用户名?............................................................................................7 2.11 如何在当前文档中添加一个表格?.................................................................................... 8 2.12 如何获取表格的行和列?....................................................................................................8 2.13 如何选中一个表?................................................................................................................8 2.14 如何修改一个表格的某个单元格的内容?........................................................................8 2.15 .如何设置一个表格的单元格的高度和宽度?....................................................................8 2.16 表格增加一行之后,要获取增加表格的内容,必须重新给表格变量赋值.................... 9 2.17 如何添加一个书签?............................................................................................................9 2.18 如何替换一个书签的内容?..............................................................................................10 2.19 如何获取和设置默认打印机?..........................................................................................10 2.20 如何打印一篇已打开的文档?..........................................................................................10 2.21 如何获取和设置某些文字的字体属性?..........................................................................10 2.22 如何获取和设置段落的格式?.......................................................................................... 11 2 2.23 如何通过注册表获取WPS 安装版本及安装路径?........................................................11 2.24 如何在插入对象里添加WPS 文档对象?.......................................................................12 2.25 在WPS 文字中使用Find 的用法...................................................................................... 12 2.26 去掉Find 替换后出现的对话框........................................................................................ 12 2.27 如何通过MIME 设置实现WPS 文字嵌入浏览器的方式打开服务器DOC 或WPS 文档 ...................................................................................................................................................... 12 2.28 如何在不破坏书签的情况下设置内容?..........................................................................13 2.29 为什么在使用Range.Text 为文档、书签,或用FormField.Result 为窗体域设置文本内 容时,回车符不见了?............................................................................................................... 13 2.30 如何判断文档的设计模式状态,如何退出设计模式?.................................................. 13 2.31 如何隐藏表格的智能扩展标记?......................................................................................13 2.32 如何通过API 实现不显示表格虚线?............................................................................. 14 3 二次开发电子表格部分FAQ...........................................................................................................14 3.1 如何启动WPS 电子表格模块?..........................................................................................14 3.2 如何退出电子表格?............................................................................................................14 3.3 如何打开一个电子表格文档?............................................................................................ 14 3.4 如何关闭一个电子表格文档?............................................................................................ 15 3.5 如何保存一个电子表格文档?............................................................................................ 15 3.6 如何设置一个单元格的大小?............................................................................................ 15 3.7 如何获取单元格中的内容?................................................................................................ 15 3.8 如何设置单元格中的内容?................................................................................................ 15 3.9 如何设置单元格中的公式?................................................................................................ 16 3.10 如何设置单元格的边框?..................................................................................................16 3.11 如何读取批注的内容.......................................................................................................... 16 3.12 如何添加批注?..................................................................................................................16 3.13 如何设置单元格内字体的属性?......................................................................................17 3.14 如何打印电子表格文档?.................................................................................................... 17 3.15 如何在插入对象里添加WPS 表格对象?.........................................................................17 3.16 WPS 表格中如何在默认位置插入图片..............................................................................18 3.17 WPS 表格中如何插入图表................................................................................................. 18 3.18 通过MIME 设置WPS 表格嵌入浏览器方式打开服务器的et 或xls 文档....................18

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值