Liebe/-r Experte/-in,
Ich möchte auf Arbeit mit Hilfe von VBScript(Geplante Tasks)mich an SAP anmelden, bestimmte Daten holen(Lagerbestände, Personaldaten,…) und dann wieder schließen und dies auch wenn ich nicht an Windows angemeldet bin(Computer gesperrt)
Habe folgende String:
Public Function OpenConnection( _
ByVal Description As String, _
Optional ByVal Sync As Variant, _
Optional ByVal Raise As Variant _
) As GuiConnection
aber wie kann ich den einsetzen um mein Problem zu lösen?
Bisher habe ich es gelöst mit dem Code unten, aber es ist halt so dass mit SendKeys alles nicht immer gut läuft und beim gesperrten Rechner geht nichts:
set Wshell = CreateObject(„WScript.Shell“)
zeile = 1 'Zeilenposition im SAP Logon
system = „_P41“ 'SAP - Systembezeichnung
mandant = „101“ 'SAP - Mandant
name = „sap“ 'Name des Anwenders
Dim Monat, Jahr
'######Diese Location anpassen######
Wshell.run „D:\SAP\Frontend\SAPgui\SapLogon.exe“ 'Pfad von SAP Logon
Do
bWindowFound = Wshell.AppActivate(„SAP Logon“) 'Warten auf das Fenster “SAP Logon”
WScript.Sleep 1000
Loop Until bWindowFound
Wshell.appActivate „SAP Logon“
WScript.Sleep 200
Wshell.sendkeys „^{HOME}“ 'An den Anfang springen
WScript.Sleep 100
For i=1 to zeile - 1
Wshell.sendkeys „{DOWN}“ 'Eine Zeile runter
WScript.Sleep 50
Next
Wshell.sendkeys „{ENTER}“ 'ENTER drücken
'Do
bWindowFound = Wshell.AppActivate („P41“) 'Warten auf das Anmeldefenster
WScript.Sleep 300
'Loop Until bWindowFound
'Wshell.appActivate „SAP Logon“
WScript.Sleep 200
'Wshell.sendkeys „%{F4}“ 'Beenden von SAP Logon
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
'user = InputBox(„SAP User eingeben“)
'pwd = InputBox(„SAP Passwort eingeben“)
session.findById(„wnd[0]“).maximize
session.findById(„wnd[0]/usr/txtRSYST-MANDT“).text = 101
session.findById(„wnd[0]/usr/txtRSYST-BNAME“).text = „Username“
session.findById(„wnd[0]/usr/pwdRSYST-BCODE“).text = „XXXXXXXX“
session.findById(„wnd[0]/usr/pwdRSYST-BCODE“).setFocus
session.findById(„wnd[0]/usr/pwdRSYST-BCODE“).caretPosition = 6
session.findById(„wnd[0]“).sendVKey 0
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]“).sendVKey 0
Ich habe schon gehört dass dies möglich ist(VBS oder nicht), aber ich komme nicht voran und hoffe von euch Hilfe zu bekommen.
Gruß
Gustave