关于CreateDispatch...

VirtualRookit 2013-06-07 10:46:25
环境win7旗舰+vs2008Sp1:
小弟有个项目需调用MsOffice和WpsOffice组件。现有问题如下:

微软Office:以普通用户身份或管理员身份调用CreateDispatch加载MsOffice组件都能成功。

金山Office:以普通用户身份调用CreateDispatch加载WpsOffice成功,但以管理员身份则失败,GetLastError值1008(试图引用不存在的令牌。)

小弟写的程序涉及系统操作,所以必须以管理员身份运行,求高手指点!!!
...全文
165 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-06-07
  • 打赏
  • 举报
回复
据说WpsOffice是开源的。
赵4老师 2013-06-07
  • 打赏
  • 举报
回复
引用 2 楼 VirtualRookit 的回复:
引用 1 楼 zhao4zhong1 的回复:
据说WpsOffice是开源的。
貌似没开源。大神对wps的ole开发这一块熟悉不?
不熟。
VirtualRookit 2013-06-07
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
据说WpsOffice是开源的。
貌似没开源。大神对wps的ole开发这一块熟悉不?
源代码 void CExcelTestDlg::OnExceltest() { // TODO: Add your control notification handler code here _Application ExcelApp; Workbooks wbsMyBooks; _Workbook wbMyBook; Worksheets wssMysheets; _Worksheet wsMysheet; Range rgMyRge; //创建Excel 服务器(启动Excel) if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) { AfxMessageBox("创建Excel服务失败!"); exit(1); } //利用模板文件建立新文档 wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t("g:\\exceltest\\MyTemplate.xlt"))); //得到worksheets wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); //得到sheet1 wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true); //得到全部的cells,此时,rgMyRge是cells的集合 rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); //设置一行一列的单元的值 rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("This is a Excel Test Program!")); //得到所有的列 rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true); //设置第一列 rgMyRge.AttachDispatch(rgMyRge.GetItem(_variant_t((long)1),vtMissing).pdispVal,true); //设置列宽 rgMyRge.SetColumnWidth(_variant_t((long)200)); //调用模版预先存放的宏 ExcelApp.Run(_variant_t("CopyRow"),_variant_t((long)10),vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing); //打印浏览 wbMyBook.SetSaved(true); ExcelApp.SetVisible(true); wbMyBook.PrintPreview(_variant_t(false)); //释放内存 rgMyRge.ReleaseDispatch(); wsMysheet.ReleaseDispatch(); wssMysheets.ReleaseDispatch(); wbMyBook.ReleaseDispatch(); wbsMyBooks.ReleaseDispatch(); ExcelApp.ReleaseDispatch(); } MFC调用excel
本资源包含两部分,第一部分是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

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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