per Batch Programme in best. Reihenfolge starten (1 Viewer)

schleichi

MP Donator
  • Premium Supporter
  • March 31, 2008
    119
    2
    Stuttgart
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    Nächste Frage: kann ich irgendwie eine Tastatureingabe über die Batch eingeben? Hintergrund ist, dass ich mich bei einigen Programmen einloggen muss. Wenn ich da was mit TAB und Tastatureingaben machen könnte, dann knutsch ich Dich.(*) :D

    (*)unter Vorbehalt, Irrtum nicht auszuschliessen.

    Eindeutig: Jain :D

    WEnn die Software die du starten möchtest den User + Passwort als Argument versteht geht das. Also "Logmichein.exe" %Loginname% %Passwort%. Allerdings würde dann das Passwort acuh im Klartext stehen, was weniger schön ist...

    Alternativ gibt es AutoIt für nicht parameterisierbare Automatisierungsabläufe (man, was das wieder für ein Wortschatz ist heute...).

    Küsse nehm ich immer entgegen :D
    Bitte Frei Haus liefern :p
     

    Ponyriemen

    MP Donator
  • Premium Supporter
  • July 9, 2007
    2,570
    110
    /root/home
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    ...hm, wie Larry gerade meint, soll ich mal versuchen obs per VBS geht...

    Guck mal das vorletzte Posting....


    //edit: hab gerade mal nach dieser Anleitung ein Script erstellt (KLICK!) - funktioniert zwar nicht, dass ein Programm geöffnet wird, aber ich krieg ne Fehlermeldung, dass in der VBS an sich was falsch ist, es kommt KEINE Fehlermeldung von wegen "Du darfst das nicht".
    Sieht also so aus, als wenn VBS möglich ist...

    nur kenn ich mich da ned aus...
    wie starte ich denn Notepad mit den richtigen Argumenten und wie gebe ich automatisch Login Daten ein, usw.?
     

    larry_S

    MP Donator
  • Premium Supporter
  • December 11, 2008
    1,441
    167
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    Schreib einfach mal folgende Zeile in eine textdatei:
    msgbox "Hallo"

    Und speichere diese mit der Endung vbs.
    Wenn beim starten ein Hallo kommt geht es.

    Gruß
    Larry
     

    schleichi

    MP Donator
  • Premium Supporter
  • March 31, 2008
    119
    2
    Stuttgart
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    Ich dachte VBS darfs nicht sein!?
    Damit kenn ich mich auch nicht aus.

    Kannst es ja mal hiermit probieren:
    "Shell(pathname[,windowstyle]) "

    als Beispiel
    Code:
    Shell "C:\Program Files\Internet Explorer\iexplore.exe https://www.team-mediaportal.com"
     

    Ponyriemen

    MP Donator
  • Premium Supporter
  • July 9, 2007
    2,570
    110
    /root/home
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    @ Larry: geht, funktioniert!

    @ schleichi: Sorry, davon bin ich bislang sicher ausgegangen, aber es geht DOCH....
     

    schleichi

    MP Donator
  • Premium Supporter
  • March 31, 2008
    119
    2
    Stuttgart
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    Kein Problem :)

    Dann "übergebe" ich mal an larry_s :D

    Bin gespannt, wie das mit dem Ausfüllen von Eingabemasken mit VBS aussieht :confused:
     

    lembugu

    Portal Pro
    December 21, 2007
    93
    5
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    Ich bin kein Coder aber lese hin und wieder mal über VBS was nach und hab mal als bsp.: diese Page als anregung.

    Autoload

    Innerhalb von Formularen kann man mittels des KeyPress-Ereignisses und der KeyUp-/KeyDown-Ereignisse komfortabel auf Tastatureingaben des Benutzers reagieren. Wenn ein Fenster allerdings unsichtbar ist oder lediglich den Fokus verloren hat, werden diese Ereignisse nicht mehr ausgelöst. Um trotzdem auf Tastatureingaben reagieren zu können, zeigt dieser Tipp wie man mit einem Timer und der API-Funktion GetAsyncKeystate den Status einer Taste überprüfen kann. Durch die Übergabe des KeyCodes aus der KeyCodeConstants-Aufzählung lässt sich mit Hilfe dieser API-Funktion ermitteln, ob die Taste momentan gedrückt ist, seit der letzten Überprüfung gedrückt wurde oder nicht gedrückt wurde.


    Option Explicit

    Private Declare Function GetAsyncKeyState Lib "user32" ( _
    ByVal vKey As Long) As Integer

    Private Declare Sub CopyMemory Lib "kernel32" Alias _
    "RtlMoveMemory" (lpDest As Any, lpSource As Any, _
    ByVal cBytes As Long)

    Private Sub Form_Load()
    Dim i As Long
    For i = 0 To (chkFKey.Count - 1)
    chkFKey(i).Caption = chkFKey(i).Caption & CStr(i + 1)
    Next i
    End Sub

    Private Sub tmrCheckKeys_Timer()
    Dim i As Long
    Dim nRetVal As Long

    For i = KeyCodeConstants.vbKeyF1 To KeyCodeConstants.vbKeyF12
    nRetVal = GetAsyncKeyState(i)
    If (HiWord(nRetVal) <> 0) Or (LoWord(nRetVal) <> 0) Then
    chkFKey(i - 112).Value = 1
    Else
    chkFKey(i - 112).Value = 0
    End If
    Next i
    End Sub

    Private Function LoWord(ByVal dwValue As Long) As Integer
    Call CopyMemory(LoWord, dwValue, 2&)
    End Function

    Private Function HiWord(ByVal dwValue As Long) As Integer
    Call CopyMemory(HiWord, ByVal VarPtr(dwValue) + 2, 2&)
    End Function
     

    larry_S

    MP Donator
  • Premium Supporter
  • December 11, 2008
    1,441
    167
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    lembugu
    Dein Code dürft nur mit Visual Studio laufen.

    Ponyriemen
    Hier mal ein simpler Code welcher eine Excel Tabelle aufruft, wartet bis das Fenster "Kennwort" kommt und dann test123 eingibt.

    Code:
    Set WshShell = Wscript.CreateObject("WScript.Shell")
    
    intreturn = wshshell.run(chr(34) & "S:\xxx\xxx\Tabelle.XLS"&chr(34) ,9,false)
    PW="test123"
    
    'Warten bis das Fenster Kennwort kommt. Nach 10 Sekunden abbrechen.
    while wshShell.AppActivate("Kennwort") = FALSE and a<>20
        a=a+1
        wscript.sleep 500 '500 Millisekunden warten
    wend
    
    if  wshShell.AppActivate("Kennwort") = True then
      wshShell.AppActivate("Kennwort")
      wscript.sleep 150
      wshShell.SendKeys PW
      wscript.sleep 150
      wshShell.AppActivate("Kennwort")
      wscript.sleep 150
      wshShell.SendKeys "{TAB}"
      wscript.sleep 150
      wshShell.AppActivate("Kennwort")
      wscript.sleep 150
      wshShell.SendKeys " "
    end if

    Gruß
    Larry
     

    lembugu

    Portal Pro
    December 21, 2007
    93
    5
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    :oops:
    wirklich nur mit Visual Studio... *ichpfeiffe*
     

    Ponyriemen

    MP Donator
  • Premium Supporter
  • July 9, 2007
    2,570
    110
    /root/home
    Home Country
    Germany Germany
    AW: per Batch Programme in best. Reihenfolge starten

    larry_S

    Danke soweit!
    habe das mal testweise mit Notepad versucht und Notepad wird auch aufgerufen.

    Code:
    Set WshShell = Wscript.CreateObject("WScript.Shell")
    
    intreturn = wshshell.run(chr(34) & "C:\WINDOWS\Notepad.exe"&chr(34) ,9,false)
    PW="test123"
    
    'Warten bis das Fenster Kennwort kommt. Nach 10 Sekunden abbrechen.
    while wshShell.AppActivate("Kennwort") = FALSE and a<>20
        a=a+1
        wscript.sleep 500 '500 Millisekunden warten
    wend
    
    if  wshShell.AppActivate("Kennwort") = True then
      wshShell.AppActivate("Kennwort")
      wscript.sleep 150
      wshShell.SendKeys PW
      wscript.sleep 150
      wshShell.AppActivate("Kennwort")
      wscript.sleep 150
      wshShell.SendKeys "{TAB}"
      wscript.sleep 150
      wshShell.AppActivate("Kennwort")
      wscript.sleep 150
      wshShell.SendKeys " "
    end if

    es wäre für mich, was die Eingabe des Passworts angeht, deutlich simpler und einfacher, wenn das Script Stumpf was eingibt, dann TAB drückt und wieder was eingibt, dann Enter, dann einmal Alt+N - zack, nächstes Programm starten.
    Eine Abfrage mit if und so scheint mir etwas zu kompliziert, vor allem, weil ich sie nicht verstehe und damit auch nicht richtig umändern kann... :oops:

    Geht sowas auch ganz simpel wie o.g. beschrieben von mir?
     

    Users who are viewing this thread

    Top Bottom