Hallo Armado,
man könnte es wie folgt angehen:
1. Das von dir aufgezeichnete Skript muss an einer geeigneten Stelle um 3 Zeilen ergänzt werden:
z.B.
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "ftr_edit"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtFTR_ENTRY-BUKRS").text = "1050"
session.findById("wnd[0]/usr/ctxtFTR_ENTRY-RFHA").text = "6105000000000"
session.findById("wnd[0]/usr/ctxtFTR_ENTRY-RFHA").setFocus
session.findById("wnd[0]/usr/ctxtFTR_ENTRY-RFHA").caretPosition = 13
session.findById("wnd[0]/usr/btnDISPLAY").press
session.findById("wnd[0]/titl/shellcont/shell").pressContextButton "%GOS_TOOLBOX"
session.findById("wnd[0]/titl/shellcont/shell").selectContextMenuItem "%GOS_ARL_LINK"
FileName2 = "c:\temp\SAP.pdf"set Wshell = CreateObject("WScript.Shell")
Wshell.run "c:\temp\open.vbs " & FileName2,1,false
session.findById("wnd[1]/usr/ssubSUB110:SAPLALINK_DRAG_AND_DROP:0110/cntlSPLITTER/shellcont/shellcont/shell/shellcont[0]/shell").hierarchyHeaderWidth = 286
session.findById("wnd[1]/usr/ssubSUB110:SAPLALINK_DRAG_AND_DROP:0110/cntlSPLITTER/shellcont/shellcont/shell/shellcont[0]/shell").selectItem "0000000003","HITLIST"
session.findById("wnd[1]/usr/ssubSUB110:SAPLALINK_DRAG_AND_DROP:0110/cntlSPLITTER/shellcont/shellcont/shell/shellcont[0]/shell").ensureVisibleHorizontalItem "0000000003","HITLIST"
session.findById("wnd[1]/usr/ssubSUB110:SAPLALINK_DRAG_AND_DROP:0110/cntlSPLITTER/shellcont/shellcont/shell/shellcont[0]/shell").doubleClickItem "0000000003","HITLIST"
session.findById("wnd[2]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ssubSUB110:SAPLALINK_DRAG_AND_DROP:0110/cntlSPLITTER/shellcont/shellcont/shell/shellcont[1]/shell").setSelectionIndexes 39,65
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
2. Man speichert dann das nachfolgende Skript namens Open.vbs z.B. unter c:\temp ab:
Dim FileNam2
FileNam2 = WScript.Arguments.Item(0)
Set Wshell = CreateObject("WScript.Shell")
Do
bWindowFound = Wshell.AppActivate("Storing Files in Documents") 'Open
WScript.Sleep 1000
Loop Until bWindowFound
bWindowFound = Wshell.AppActivate("Storing Files in Documents") 'Open
if (bWindowFound) Then
Wshell.appActivate "Storing Files in Documents" 'Open
WScript.Sleep 100
Wshell.sendkeys "{TAB}"
Wshell.sendkeys "{TAB}"
Wshell.sendkeys "{TAB}"
Wshell.sendkeys "{TAB}"
WScript.Sleep 100
Wshell.sendkeys FileNam2
WScript.Sleep 100
Wshell.sendkeys "{ENTER}"
WScript.Sleep 100
end if
3. Bei den 4 TAB-Kommandos muss man testen, ob sie in der Anzahl überhaupt erforderlich sind. Das Ziel ist, dass der Cursor an der Stelle landet, wo der der Dateiname erwartet wird.
Wenn Hotkeys aktiv sein sollten, dann lässt man die TAB-Kommandos am besten komplett weg und verwendet stattdessen z.B. folgendes:
Wshell.sendkeys "%n"
Aber dazu müsste man das Fenster namens "Storing Files in Documents" zu sehen bekommen.
Grüße,
ScriptMan
Bearbeitet vom Benutzer
vor 7 Jahre
|
Grund: Nicht angegeben