打开Microsoft Word并使用SendKeys键入文本

时间:2017-03-06 20:45:24

标签: vbscript

我正在尝试创建一个打开Word并将文本输入其中的VBScript。

我的代码:

::Set wshshell = WScript.CreateObject("WScript.Shell")
::Set objShell = CreateObject("WScript.Shell")
::objShell.AppActivate "word"
::userProfilePath = objShell.ExpandEnvironmentStrings("%UserProfile%")
::WScript.Sleep 10000
::wshshell.SendKeys "Hello World!"

1 个答案:

答案 0 :(得分:0)

也许令人惊讶的是,除非您实际上首先启动了该程序,否则无法与Word交互。作为documentedAppActivate方法激活应用程序窗口,即将已经运行的应用程序的窗口带到前台。

以编程方式启动Word,使用以下内容:

Set wd = CreateObject("Word.Application")
wd.Visible = True

你可以open这样的文件:

Set doc = wd.Documents.Open("C:\path\to\your.docx")

或创建一个new文档,如下所示:

Set doc = wd.Documents.Add

例如,可以通过TypeText方法输入文字:

doc.Selection.TypeText "some text"

Save这样的文件:

doc.Save
doc.Close

like this(如果它是新文档,或者您想将其保存在不同的名称/路径下):

doc.SaveAs "C:\path\to\new.docx", 16
doc.Close
来自应用程序的

Exit如下:

wd.Quit

NOT 使用SendKeys进行任何操作。 EVER。 除非您被枪口逼迫,否则不会。

同时执行 NOT 编写Frankenscript,在同一文件中混合使用不同语言(如批处理和VBScript)。调试和维护是后方的痛苦。