11

我需要在名为 Arthropod 的 Adob​​e Air 应用程序中单击一个名为“保存”的按钮。我可以使用以下命令在 bat 文件中启动应用程序:

cd C:\Program Files\Arthropod
start /w Arthropod.exe

一旦它弹出,用户界面上有一个保存按钮。如何使用 bat 文件单击它?

我在读这个:

http://www.ehow.com/how_7788761_press-buttons-batch-file.html

它展示了如何在 MS Word 中模拟对文件菜单和其他选项卡的单击,但是如何在任何其他按钮上执行此操作?

PS按钮上的文本是“保存”,这是我能想到的那个按钮的唯一唯一标识符。有没有什么是批处理的,我可以说类似(伪代码):

$('button[text="Save"]').click();
4

4 回答 4

16

没有本地方法可以干净地做到这一点。

但是如果你愿意,你可以用它VBS来模拟击键,类似于 AutoIT,但没有那么灵活。在加号方面,您不需要下载 VBS。自 95 年以来,它已包含在每个版本的 Windows 中。


我包含一个启动的示例notepad.exe,然后在其中键入以下内容:

Hello World!
abcDEF

.
调用以下单行LaunchNotepad.bat

cscript /nologo LaunchNotepad.vbs

.
以下是 的内容LaunchNotepad.vbs

' Create WScript Shell Object to access filesystem.
Set WshShell = WScript.CreateObject("WScript.Shell")

' Start / Run NOTEPAD.EXE
WshShell.Run "%windir%\notepad.exe"

' Select, or bring Focus to a window named `NOTEPAD`
WshShell.AppActivate "Notepad"

' Wait for 5 seconds
WScript.Sleep 5000

WshShell.SendKeys "Hello World!"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "abc"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "def"

请注意,如果有一个或多个Notepad.exe已打开的实例,并且打开记事本的时间超过 5 秒,则上述代码可能会选择记事本的最后一个活动实例并输入。


要使VBS代码按您的意愿工作,您需要学习如何通过键盘在 Adob​​e Air 中导航。通常选项卡和/或箭头键就足够了。有时您可能需要使用ALT键进入菜单。

此外,您实际上可能能够使用一系列键盘命令,例如ALT+ FSENTER,甚至是键盘快捷键,例如CTRL+ S

To send TAB, ALT+F, and CTRL+S :

WshShell.SendKeys "{TAB}"        ' TAB                TAB Key
WshShell.SendKeys "%F"           ' ALT-F              (F)ile Menu
WshShell.SendKeys "^S"           ' CTRL-S             Save File
WshShell.SendKeys "%(Fa){ENTER}" ' ALT-F+ALT-A ENTER  (F)ile -> Save (A)s -> (ENTER)
WshShell.SendKeys "{UP}"         ' Up Arrow           Up Arrow
WshShell.SendKeys "{DOWN}"       ' Down Arrow         Down Arrow
WshShell.SendKeys "{LEFT}"       ' Left Arrow         Left Arrow
WshShell.SendKeys "{RIGHT}"      ' Right Arrow        Right Arrow
于 2012-10-26T05:04:26.583 回答
6

您可以使用AutoIt来执行此操作。您可以生成一个可以单击“保存”按钮的脚本,并从批处理文件中调用生成的 EXE 文件。

于 2012-10-25T15:30:33.527 回答
2

Winbatch is another program that can send keystrokes, but unlike AutoIt I don't believe it's free.

于 2014-05-29T23:09:55.807 回答
0

您不能使用 bat 文件自动单击按钮。如果可能的话,您仍然需要某种用于 Adob​​e Air 的 API 来访问控件本身。但是,如果此按钮有键盘快捷键,您可以模拟击键并将其发送到应用程序。

于 2012-10-25T15:29:29.833 回答