可以,然后呢。我需要一些指导。对于这篇文章的篇幅,我深表歉意,但我需要提供一些细节:
我有一个对我感兴趣的人为他们做一个小项目。通常,该应用程序是一个非常简单的员工记录/文档应用程序,但是它大量使用了模板化的Word和Lotus文档。这样的想法是,您选择员工的“事件”,例如表彰,晋升,纪律等,然后加载适当的模板文档,然后从中填写,然后选择员工,查看所有“事件”, ”并查看与每个文档相关联的单个文档。
因此,应用程序必须在用户完成后知道.docs的保存位置。
客户端实际上有一个此应用程序的v1版本(它不对文件或任何内容进行任何管理,只是通过要在system()调用中启动要在新实例中查看的文档的Word / Lotus。)尚未进入详细的需求阶段,但是我和客户都同意,要使其真正起作用,对用户将.doc保存到的位置进行某种控制非常关键,因为否则应用程序会为他们提供模板文档的新副本,它们在其他位置“另存为”,并且应用程序指向它提供给他们的空白副本。
显然,我无法想到通过启动Word的新实例以任何方式实现“另存为”限制/控制的方法。当您选择一个模板时,客户端会想到使用模板文档在应用程序中嵌入Word / Lotus实例,但对此我几乎没有保留:
因此,……本能地,我觉得嵌入式Word / Lotus要做的事情最终要比其值得做的更多。
因此,我还提出了其他一些想法。
我需要在这里输入一些信息。这是TLDR问题:
最佳答案
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
希望这可以帮助。
关于c++ - 自定义客户端应用程序-需要控制文档保存位置的能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7034662/