簡體   English   中英

從 Powershell 腳本調用 VB 腳本會在發送自動電子郵件時產生意外的運行時錯誤

[英]Calling a VB Script from a Powershell script produces unexpected runtime errors when sending automated emails

我有以下 VB 腳本:

Set MSOutlook = CreateObject("Outlook.Application")
Set MailMsg = MSOutlook.CreateItem(0)

With MailMsg            
        .To = "xyz@gmail.com"
        .Subject = "my subject"
        .HTMLBody = "my text"
        .Display
        SendKeys "{TAB}{DOWN}{DOWN}{ENTER}", True
        .Send
End With

Set MSOutlook = Nothing
Set MailMsg = Nothing

此腳本在 VB 編譯器(例如Microsoft Visual Basic for Applications )中執行時運行良好。

SendKeys是必需的,因為我們在工作中使用了這個該死的Titus分類系統來對所有內容進行分類,例如電子郵件和文檔。

email 發送良好,分類正確。

現在我正在嘗試從以下 Powershell 腳本中調用此腳本:

& cscript 'C:\Documents\sendEmail.vbs' //nologo

但是在 Powershell ISE 中或直接從 PowerShell 控制台調用 vb 腳本時會收到以下錯誤:

cscript.exe: C:\Documents\sendEmail.vbs Microsoft VBScript runtime error: Type mismatch: 'SendKeys'

任何人都對此非常了解,為什么 SendKeys function 顯然不能以這種方式使用?

為了搶先發表評論,是的,我真的很想將這個 vb 功能移動到 PowerShell 腳本中,但是 TITUS 插件現在正在引起各種各樣的麻煩。

謝謝

在 VBA 中, SendKeys命令是全局Interaction模塊的成員,因此始終在 scope 中。

在 VBScript 中,您需要使用WScript.Shell object 的SendKeys方法:

Dim shell
Set shell = CreateObject("WScript.Shell")
shell.SendKeys "{TAB}{DOWN}{DOWN}{ENTER}", True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM