WinFuture-Forum.de: Bestimmte Eingaben Per Script - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Bestimmte Eingaben Per Script


#1 Mitglied ist offline   bartii 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.428
  • Beigetreten: 02. August 05
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 03. April 2007 - 07:26

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
Software is like sex. It is better when it's free.. (Linus Torvalds)
0

Anzeige



#2 Mitglied ist offline   bartii 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.428
  • Beigetreten: 02. August 05
  • Reputation: 1
  • Geschlecht:Männlich

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
Software is like sex. It is better when it's free.. (Linus Torvalds)
0

#3 Mitglied ist offline   bartii 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.428
  • Beigetreten: 02. August 05
  • Reputation: 1
  • Geschlecht:Männlich

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
Software is like sex. It is better when it's free.. (Linus Torvalds)
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

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.

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 :rolleyes:
0

#5 Mitglied ist offline   bartii 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.428
  • Beigetreten: 02. August 05
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. April 2007 - 13:50

Beitrag anzeigenZitat (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.

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 :rolleyes:

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)
0

#6 Mitglied ist offline   bartii 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.428
  • Beigetreten: 02. August 05
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 22. Mai 2007 - 10:25

Gibt es eine Möglichkeit das anders zu machen?
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)
0

#7 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 22. Mai 2007 - 14:06

Hmm.... versuch's mal so:

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

0

#8 Mitglied ist offline   bartii 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.428
  • Beigetreten: 02. August 05
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 22. Mai 2007 - 14:11

Danke dir probiere es gleich mal aus


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)
0

#9 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 22. Mai 2007 - 14:24

Bitte, bitte <_<

bartii sagte:

Hast es ja mitten drin editiert

Ja, und zwar dreimal... verfluchte Tippfehler!
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0