救命关于CreateDispatch函数

VirtualRookit 2013-06-07 10:36:07
环境win7旗舰+vs2008Sp1:
小弟有个项目需调用MsOffice和WpsOffice组件。现有问题如下:
微软Office:以普通用户身份或管理员身份调用CreateDispatch加载MsOffice组件都能成功。

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

小弟写的程序涉及系统操作,所以必须以管理员身份运行,求高手指点!!!
...全文
619 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2013-06-07
  • 打赏
  • 举报
回复
这个问题...等高手
源代码 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

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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