C++ 自定义客户端应用程序-需要能够控制文档的保存位置
好吧。我需要一些指导。我为这篇文章的篇幅感到抱歉,但我需要提供一些细节: 我有人对我感兴趣,可以为他们做一个小项目。该应用程序通常是一个相当简单的员工记录保存/文档应用程序,但它大量使用模板化Word和Lotus文档。其思想是您选择员工“事件”,如表扬、晋升、纪律等,然后加载相应的模板文档,然后您从中填写,然后您可以选择一名员工,查看所有“事件”,并查看与每个事件关联的单个文档 因此,应用程序必须知道用户完成后.docs保存在何处 客户机实际上有这个应用程序的v1(它不做任何文件管理或任何事情,只是在一个新实例中启动Word/Lotus,其中包含您想要查看的文档,可能是通过system()调用)。我们还没有进入详细的需求阶段,但客户机和我都同意这一点,对用户保存doc的位置的某种控制将是至关重要的,因为否则应用程序为他们提供模板DOC的新副本,它们“保存”在其他地方,并且应用程序指向它提供的空白副本。 很明显,我想不出一种方法来通过仅仅启动一个新的Word实例来实现“另存为”限制/控制。当您选择一个模板文档时,客户端的想法是在应用程序中嵌入Word/Lotus实例,但我对此没有什么保留意见:C++ 自定义客户端应用程序-需要能够控制文档的保存位置,c++,visual-c++,ms-word,lotus,C++,Visual C++,Ms Word,Lotus,好吧。我需要一些指导。我为这篇文章的篇幅感到抱歉,但我需要提供一些细节: 我有人对我感兴趣,可以为他们做一个小项目。该应用程序通常是一个相当简单的员工记录保存/文档应用程序,但它大量使用模板化Word和Lotus文档。其思想是您选择员工“事件”,如表扬、晋升、纪律等,然后加载相应的模板文档,然后您从中填写,然后您可以选择一名员工,查看所有“事件”,并查看与每个事件关联的单个文档 因此,应用程序必须知道用户完成后.docs保存在何处 客户机实际上有这个应用程序的v1(它不做任何文件管理或任何事情,
- 我在网上翻了翻,我读到无论从哪个版本的Word借用MSWORD.OLB,最终用户都会需要它
- 我曾经尝试过嵌入Word文档的MSDN示例,但随着我逐渐习惯,MSDN示例甚至无法编译
- 即使我知道如何将.doc文件嵌入到他们的应用程序中,我也不知道是否可以控制“另存为…”的使用
- 这一切还没有触及莲花(!)
Word允许通过其对象模型编程一些“保存”和“另存为”控件。任何用VBA编码并放入Word模板中的子程序都将复制到该模板生成的所有文档中。此外,大多数菜单和功能区命令都可以通过创建一个模块来拦截,该模块包含为拦截的命令命名的子例程。因此,例如,如果模块包含名为FileSaveAs()的子模块,则将执行该子模块中的所有代码,而不是执行标准的File | Save As命令。最后,此代码将替换通过按键、工具栏、菜单或功能区执行的另存为命令 每当执行“保存”或“另存为”命令时,下面的代码将启动一个对话框到预定路径:
Sub FileSave()
ControlSaveLocation
End Sub
Sub FileSaveAs()
ControlSaveLocation
End Sub
Sub ControlSaveLocation()
Dim Directory As String
Directory = "C:\Documents\"
With Application.Dialogs(wdDialogFileSaveAs)
.Name = Directory
.Show
End With
End Sub
希望这有帮助。+1好问题,有很多细节,谢谢!我的直觉反应是,我同意植入是个坏主意。正如您直觉所示,嵌入它不会让您控制它的实现。类似地,您可能会遇到一个问题,您可能会找到一个注册表路径,该路径显示word默认保存到的位置,但我敢打赌Lotus不会使用该路径。即使我可以找到默认保存到的位置,我也无法阻止用户保存到其他位置。如果我不能做到这一点,那么我的应用程序就不知道用户可能在哪里实际保存了文件。我所能做的就是将模板复制到像/doc/lastnamfirstnametemplatename.doc这样的文件中,希望他们只使用Save而不是Save As。。。也许如果我可以直接将文档嵌入GUI并删除菜单栏(ribbon?嵌入的另一个原因让我感到紧张,主要的版本差异…),那么我也许可以让它工作。。但是那可能是很多……的确。一件事;有多少人会使用这个应用程序,你会在用户教育足够的地方进行大量编码吗?这听起来像是一个Microsoft Sharepoint可能成为解决方案的项目。您最好的选择可能是findin