我有一个脚本,我通过VBA在SAP中完成批量发货。在每个完成发货结束时,我希望SAP打印完成的页面作为确认。
if (keyCode == KeyEvent.KEYCODE_BACK && webViewsupport.canGoBack()) {
webViewsupport.goBack();
}
我可以让SAP打开打印对话框,但用户仍然需要手动点击"确定"为了实际打印页面。这是一个小小的不便,但我想知道它是否可以。 Print dialogue
如果有的话,我可以使用SendKeys将打印对话框发送到{Enter},但我不知道如何让SAP挂钩到框上发送该命令。< / p>
答案 0 :(得分:0)
多年来,我们一直在类似的地方使用以下程序代码:
. . .
dim Wshell as Object
set Wshell = CreateObject("WScript.Shell")
on error resume next
Do
bWindowFound = Wshell.AppActivate("Print")
Application.Wait (Now + TimeValue("0:00:01"))
Loop Until bWindowFound
bWindowFound = Wshell.AppActivate("Print")
if (bWindowFound) Then
Wshell.appActivate "Print"
Application.Wait (Now + TimeValue("0:00:01"))
Wshell.sendkeys "{ENTER}"
end if
bWindowFound = Wshell.AppActivate("Print")
if (bWindowFound) Then
Wshell.appActivate "Print"
Application.Wait (Now + TimeValue("0:00:01"))
Wshell.sendkeys "{TAB}{ENTER}"
end if
bWindowFound = Wshell.AppActivate("Print")
if (bWindowFound) Then
Wshell.appActivate "Print"
Application.Wait (Now + TimeValue("0:00:01"))
Wshell.sendkeys "{TAB}{TAB}{ENTER}"
end if
'It could be superfluous under certain circumstances.
session.findById("wnd[1]").Close
Application.Wait (Now + TimeValue("0:00:01"))
on error goto 0
. . .
但是,由于您无法知道光标当前所在的位置,因此可以执行所有可能性。但如果你知道,你可以留下一些东西。
此致 ScriptMan