可视化 如何在 C++ 自动化中启动 ms Word 时防止运行自动宏
visual How to prevent the running of auto macros when starting ms word in c++ automation
我正在使用c ++为办公文件生成缩略图。我使用类似于以下内容的自动化打开并保存文件:https://support.microsoft.com/en-us/kb/179494。由于文件很多,这需要很多时间,程序应该整夜运行。
一切正常,除了文件包含自动启动宏时,它甚至不存在。
Sub AutoOpen()
Application.Run ("stupidMacroWhichDoesntExist")
End Sub
在这种情况下,循环将停止,并显示一条错误消息,指出无法执行宏。
当然,我已经将信任中心的宏设置设置为 ->禁用所有宏而不通知
错误消息仍然出现
在Excel中,我可以通过以下方法防止这种情况:
objExcelApp.SetEnableEvents(false);
不幸的是,c++ 中的"应用程序"一词没有 SetEnableEvents 方法。我已经用谷歌搜索了很多,发现了很多VB代码来防止这种情况。大多数情况下是这样的:
objWord.WordBasic.DisableAutoMacros 1
但是我在c ++中没有找到任何东西
我非常感谢您的帮助。
我相信
你正在寻找:
WordApplication.AutomationSecurity = msoAutomationSecurityForceDisable
"信任中心"设置不适用于使用自动化打开的文档。此属性及其枚举对应于对象模型中的该设置。
FWIW WordBasic方法也应该可以使用C++。我不知道C++语法,但是对于C#,我需要使用PInvoke(GetType()。调用成员)直接与IDispatch通信(我认为这是正确的术语)。
我已经解决了。我正在备份单词文件夹中的实际宏(vbaData.xml和vbaProject.bin),将虚拟宏放入word文件中,通过自动化打开它并保存以生成缩略图。之后,我将备份的宏放回word文件中。由于虚拟宏不执行任何操作,因此我可以安全地执行任何操作,无论原始宏中编程什么。
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在C应用程序中运行C++(带有STL)函数
- 运行程序时出现问题
- 控制允许动态运行c++的并发操作数
- 可视化 如何在 C++ 自动化中启动 ms Word 时防止运行自动宏