Guten Morgen,
ich wollte ein Script schreiben, das ein Programm startet und dort Eingaben macht, die sich in verschiedenen Zellen befinden, die allerdings nach einanderliegen (TAB). Dann muss es noch mit Ok bestätigen.
Ich denke mir .vbs wäre dafür am besten.
Über Google finde ich allerdings keine Anleitung für sowas und ich kenne mich natrülich nicht damit aus.
Weiß jemand Rat.
Falls ihr genauere Infos braucht, bitte sagen
Liebe Grüße
Seite 1 von 1
Bestimmte Eingaben Per Script
#1
geschrieben 03. April 2007 - 07:26
Software is like sex. It is better when it's free.. (Linus Torvalds)
Anzeige
#2
geschrieben 03. April 2007 - 09:43
Set oWsh = CreateObject("WScript.Shell")
oWsh.Run("""C:\Programme\SAP\FrontEnd\SAPgui\saplogon.exe""")
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 500 ' Give SAP some time to load
WshShell.SendKeys "Hello World!"
WshShell.SendKeys "{ENTER}"
Nun will ich den benutzernamen eingeben, aber das geht nicht mit SendKeys irgendwie
oWsh.Run("""C:\Programme\SAP\FrontEnd\SAPgui\saplogon.exe""")
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 500 ' Give SAP some time to load
WshShell.SendKeys "Hello World!"
WshShell.SendKeys "{ENTER}"
Nun will ich den benutzernamen eingeben, aber das geht nicht mit SendKeys irgendwie
Software is like sex. It is better when it's free.. (Linus Torvalds)
#3
geschrieben 05. April 2007 - 10:01
So ich habe alles soweit geschafft.
Einziges Problem:
Jeder Rechner startet diese Anwendung verschieden schnell.
Ist sie noch nicht geladen, kommt es zu dazu, dass das Script einfach abläuft und Mist baut, weil die Anwendung mit der jeweiligen Option nicht da ist.
Gibt es ein Befehl, der dem Script sagt WaitUntilXYstarted ?
2te Frage:
Bietet das vbs Script eine Möglichkeit ein Fenster zur Eingabe zu öffnen. Danach diese Eingabe einfügen in das Feld?
Beispiel ich gib in das Fenster 2007 ein, dann gibt er später in der Anwendung auch 2007 ein.
Geb ich aber 2006 ein, gibt er 2006 ein.
Quasi : Abfrage Fenster -> if... than
Danke euch
Gruß
Bartek
Einziges Problem:
Jeder Rechner startet diese Anwendung verschieden schnell.
Ist sie noch nicht geladen, kommt es zu dazu, dass das Script einfach abläuft und Mist baut, weil die Anwendung mit der jeweiligen Option nicht da ist.
Gibt es ein Befehl, der dem Script sagt WaitUntilXYstarted ?
2te Frage:
Bietet das vbs Script eine Möglichkeit ein Fenster zur Eingabe zu öffnen. Danach diese Eingabe einfügen in das Feld?
Beispiel ich gib in das Fenster 2007 ein, dann gibt er später in der Anwendung auch 2007 ein.
Geb ich aber 2006 ein, gibt er 2006 ein.
Quasi : Abfrage Fenster -> if... than
Danke euch
Gruß
Bartek
Software is like sex. It is better when it's free.. (Linus Torvalds)
#4
geschrieben 05. April 2007 - 10:09
WSH habe ich bei mir ausgestellt, so dass ich das vorher nicht ausprobieren konnte.
2te Frage:
Es sollte aber in etwa so funktionieren.
Zu 1.
Ich erinnere mich dunkel, dass es tatsächlich so was in die Richtung gab. Aber fällt mir natürlich gerade nicht ein
2te Frage:
Es sollte aber in etwa so funktionieren.
retVal = makeMsgBox("Hi","how are you?",32,1,256,4096);
Zu 1.
Ich erinnere mich dunkel, dass es tatsächlich so was in die Richtung gab. Aber fällt mir natürlich gerade nicht ein
#5
geschrieben 05. April 2007 - 13:50
Zitat (Witi: 05.04.2007, 11:09)
WSH habe ich bei mir ausgestellt, so dass ich das vorher nicht ausprobieren konnte.
2te Frage:
Es sollte aber in etwa so funktionieren.
Zu 1.
Ich erinnere mich dunkel, dass es tatsächlich so was in die Richtung gab. Aber fällt mir natürlich gerade nicht ein
2te Frage:
Es sollte aber in etwa so funktionieren.
retVal = makeMsgBox("Hi","how are you?",32,1,256,4096);
Zu 1.
Ich erinnere mich dunkel, dass es tatsächlich so was in die Richtung gab. Aber fällt mir natürlich gerade nicht ein
danke dir
Dim Eingabe
Eingabe = InputBox("Geben Sie Ihren Namen ein")
MsgBox ("Ihre Eingabe: " & Eingabe)
sowas wars,
ich glaube ich würde nicht klarkommen mit VB zu programmieren, deswegen benutzt ich WSH um ein bißchen zu testen.
Dieser Beitrag wurde von bartek2k bearbeitet: 05. April 2007 - 14:05
Software is like sex. It is better when it's free.. (Linus Torvalds)
#6
geschrieben 22. Mai 2007 - 10:25
Gibt es eine Möglichkeit das anders zu machen?
und zwar geht mir das um Sleep 1500, bei jedem Rechner ist das ja anders; wie lange er zum laden einer App. braucht.
Habe jetzt ausprobiert:
WshShell.WinWaitActive "SAP Logon 620"
WshShell.WaitActive "SAP Logon 620"
läuft leider nicht.
Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "C:\Programme\SAP\FrontEnd\SAPgui\saplogon.exe" WScript.Sleep 1500 ' Give SAP some time to load WshShell.AppActivate "SAP Logon 620"
und zwar geht mir das um Sleep 1500, bei jedem Rechner ist das ja anders; wie lange er zum laden einer App. braucht.
Habe jetzt ausprobiert:
WshShell.WinWaitActive "SAP Logon 620"
WshShell.WaitActive "SAP Logon 620"
läuft leider nicht.
Software is like sex. It is better when it's free.. (Linus Torvalds)
#7
geschrieben 22. Mai 2007 - 14:06
Hmm.... versuch's mal so:
Konnte ich hier nicht testen. Die Idee ist, den Rückgabewert von "AppActivate" zu benutzen um festzustellen, ob das Fenster "SAP Logon 620" schon existiert oder nicht. "AppActivate" gibt false zurück,
falls der Wechsel nicht erfolgreich war. Solange bleibt das Skript dann in der while-Schleife undschläft, um Rechenzeit zu sparen. Wenn "AppActivate" erfolgreich ist, wird die Schleife verlassen.
EDIT:
Vorsicht: Falls sich SAP aus irgendeinem Grund nicht starten lässt, dann wird aus der DO-Schleife eine Endlosschleife. Du solltest dich da mit einem Zähler (50 Versuche dauern 10 Sekunden) oder etwas in der Art absichern.
Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "C:\Programme\SAP\FrontEnd\SAPgui\saplogon.exe" Do sapFound = WshShell.AppActivate("SAP Logon 620") WScript.Sleep 200 Loop Until sapFound
Konnte ich hier nicht testen. Die Idee ist, den Rückgabewert von "AppActivate" zu benutzen um festzustellen, ob das Fenster "SAP Logon 620" schon existiert oder nicht. "AppActivate" gibt false zurück,
falls der Wechsel nicht erfolgreich war. Solange bleibt das Skript dann in der while-Schleife undschläft, um Rechenzeit zu sparen. Wenn "AppActivate" erfolgreich ist, wird die Schleife verlassen.
EDIT:
Vorsicht: Falls sich SAP aus irgendeinem Grund nicht starten lässt, dann wird aus der DO-Schleife eine Endlosschleife. Du solltest dich da mit einem Zähler (50 Versuche dauern 10 Sekunden) oder etwas in der Art absichern.
Dieser Beitrag wurde von MNG bearbeitet: 22. Mai 2007 - 14:12
#8
geschrieben 22. Mai 2007 - 14:11
Danke dir probiere es gleich mal aus
Hast es ja mitten drin editiert
EDIT:
Läuft DANKE !
Hast es ja mitten drin editiert
EDIT:
Läuft DANKE !
Dieser Beitrag wurde von bartii bearbeitet: 22. Mai 2007 - 14:16
Software is like sex. It is better when it's free.. (Linus Torvalds)
#9
geschrieben 22. Mai 2007 - 14:24
Bitte, bitte
Ja, und zwar dreimal... verfluchte Tippfehler!
bartii sagte:
Hast es ja mitten drin editiert
Ja, und zwar dreimal... verfluchte Tippfehler!
Thema verteilen:
Seite 1 von 1