gpt4 book ai didi

powershell - 如何使用PowerShell打开包含AutoOpen宏的文档?

转载 作者:行者123 更新时间:2023-12-04 13:35:21 25 4
gpt4 key购买 nike

我当前的PowerShell脚本:

$document = "C:\\test.doc"
$word = new-object -comobject word.application
$word.Visible = $false
$word.DisplayAlerts = "wdAlertsNone"
$word.AutomationSecurity = "msoAutomationSecurityForceDisable"
$doc = $word.Documents.Open($document)
$word.ActivePrinter = "\\http://ptr-server:631\pdf-printer"
$background = $false
$doc.PrintOut([ref]$background)
$doc.close([ref]$false)
$word.quit()

但这会导致出现一个警告框。该项目中的宏被禁用。请引用联机帮助或主机应用程序的文档,以确定如何启用宏。

如何在不运行 AutoOpen宏或不显示任何对话框提示的情况下打开文档?

环境详细信息:
  • Word 2003 SP3的
  • Windows Server 2003 R2-标准版-Service Pack 2
  • Powershell版本1.0
  • 最佳答案

    事实证明,在VB.NET中比在C#中做起来要容易得多(我从没想过)。但是,您所需要做的就是创建一个具有单个例程的控制台应用程序。以下是说明:
    代码

    Imports word = Microsoft.Office.Interop.Word
    Module Module1
    Sub Main()
    Dim args() As String = Environment.GetCommandLineArgs
    Dim path = args(1)
    Dim printer = args(2)
    Dim wordApp As word.Application = New word.Application
    wordApp.WordBasic.DisableAutoMacros(1)
    wordApp.Visible = False
    Dim doc As word.Document = wordApp.Documents.Open(path)
    wordApp.ActivePrinter = printer
    Dim background As Object = False
    doc.PrintOut(background)
    doc.Close(False)
    wordApp.WordBasic.DisableAutoMacros(0)
    wordApp.Quit()
    End Sub
    End Module
    重新创建解决方案的步骤:
  • 打开VS2008并创建一个新的控制台
    在VB.NET中的应用。
  • 设置对的引用Microsoft.Office.Interop.Word (版本11)
  • 删除Module1中的任何代码,然后插入上面的代码。
  • 保存该项目并将其命名为“wordprinter”。生成项目。
  • 导航到“发布”文件夹,然后捕获“wordprinter.exe”并将其放在您喜欢的任何位置。这将是您的 $wordprinterpath
  • 注意文档和打印机的路径。这将分别是您的$doc$printer
  • 在PS中输入以下内容:

  • $ wordprinterpath =“C:\\path\\wordprinter.exe”
    $ doc =“”“C:\\Users\\me\\Documents\\您的doc.doc”“”
    $ printer =“\\http://ptr-server:631\pdf-printer”
    调用表达式“$ wordprinterpath $ doc $ printer” |零
    在此之后,您应该会很好。我还没有测试其中的打印部分,因此可能需要做一些工作,但是禁用了自动宏功能并打开了文档工作。

    关于powershell - 如何使用PowerShell打开包含AutoOpen宏的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846407/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com