Hallo zusammen,
heute möchte ich etwas aus der WSH-Trickkiste beisteuern. Für diejenigen, die schon lange nach einer einfachen Möglichkeit gesucht haben, sich automatisch in SAP an- und abzumelden, präsentiere ich hier folgenden Code:
Anmelden.vbs
set Wshell = CreateObject("WScript.Shell")
zeile = 7 ‘Zeilenposition im SAP Logon
system = "S01" ‘SAP - Systembezeichnung
mandant = "101" ‘SAP - Mandant
name = "sap" ‘Name des Anwenders
passwort = "xyz123“ ’Passwort des Anwenders
wshell.run "%WINDIR%\SAPwksta\setup\SAL\saplogon.sal" ’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(system) ‘Warten auf das Anmeldefenster
WScript.Sleep 1000
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
session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/txtRSYST-MANDT").text = mandant
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = name
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = passwort
session.findById("wnd[0]/usr/pwdRSYST-BCODE").setFocus
session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 6
session.findById("wnd[0]").sendVKey 0
Erläuterung zur Lösung:
Die Voraussetzung ist, dass sich der Focus in SAP Logon auf dem Reiter „Systeme“ befindet. Der Installationspfad von SAP Logon müsste u.U. auch noch angepasst werden.
Die Zeilenposition “zeile” muss auf den jeweiligen gewünschten Wert eingestellt werden. Sie repräsentiert die Position des aufzurufenden SAP-Systems in SAP Logon.
Alle anderen Parameter müssen selbstverständlich auch neu bestückt werden.
Nachdem man dann diese VBS-Datei z.B. unter %USERPROFILE%\SAPWorkDir\ abgespeichert hat, wird normalerweise sichergestellt, dass auch kein unbefugter Zugriff auf das offengelegte Passwort erfolgen kann. Noch schnell eine neue Verknüpfung auf dem Desktop auf diese VBS-Datei anlegen und anschließend über Eigenschaften eine Tastenkombination (z.B. STRG / F12) vereinbaren und die Ausführung auf minimiert einstellen. Das Anmelden kann dann einfach über STRG / F12 erfolgen.
Abmelden.vbs
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]").close
session.findById("wnd[1]/usr/btnSPOP-OPTION1").press
Ich denke, hier muss ich nicht viel erklären. Man kann sich auch hier eine Verknüpfung auf den Desktop legen und diese z.B. mit einer Tastenkombination STRG / F11 versehen.
Freundliche Grüße
ScriptMan
Bearbeitet vom Benutzer
vor 15 Jahre
|
Grund: Nicht angegeben