Probleme beim ausführen einer vbs-Datei

Von: , Frage gestellt am Mo, 20. Aug 2007

Hallo,

ich habe mal wieder ein merkwürdiges Problem:

Ich starte zwei Programme mit einer vbs-Datei im Autostartordner:

WScript.Sleep 1000
Set ShellWSH = CreateObject("WScript.Shell")
ShellWSH.Run """C:\Programme\Miranda\miranda32.exe""", 4, False
WScript.Sleep 3000
Set ShellWSH = CreateObject("WScript.Shell")
ShellWSH.Run """C:\Programme\Allway Sync\Bin\syncappw.exe""", 4, False
WScript.Sleep 5000
Set ShellWSH = CreateObject("WScript.Shell")
ShellWSH.Run """C:\Dokumente und Einstellungen\ICH\Eigene Dateien\vbs\minimieren_allwayssync.vbs""", 4, False


Da das Progg Allway Sync nicht im Tray startet (obwohl es ein Einstellung dafür gibt??) habe ich in einer zweiten Datei folgende Tastenkombi hinterlegt, die das Prog ins Tray minimiert:

Set WSHShell = CreateObject("Wscript.Shell")

WScript.Sleep 0
WSHShell.Sendkeys "^{m}"
wscript.sleep 0

WScript.Quit

Die Datei 1 läuft wunderbar die Programme starten.
Das Fenster von Allway Sync ist im Vordergrund aber nix passiert.
Starte ich die 2. Datei von Hand läuft kurz die Eieruhr aber es passiert nichts.

Nun das merkwürdige ist nun:
1. Hat das ganze bis vor zwei Std. noch funktioniert
2. Funktioniert das auf meinem zweiten Rechner immer noch.

Hat jemand ne Idee warum das eine Script läuft und das andere nicht?

Vielen Dank schon mal

Gruß tifi

6 Antworten zu dieser Frage

  1. Antwort von nach 7 Minuten 0 hilfreich
    Re: Probleme beim ausführen einer vbs-Datei

    PS: Das ganze läuft auf einem WinXP Pro mit SP2 Rechner...

  2. Antwort von nach 19 Minuten 0 hilfreich
    Re: Probleme beim ausführen einer vbs-Datei

    Hallo,

    WScript.Sleep 1000
    Set ShellWSH = CreateObject("WScript.Shell")
    ShellWSH.Run """C:\Programme\Miranda\miranda32.exe""", 4,False
    WScript.Sleep 3000
    Set ShellWSH = CreateObject("WScript.Shell")
    ShellWSH.Run """C:\Programme\Allway Sync\Bin\syncappw.exe""",4, False
    WScript.Sleep 5000
    Set ShellWSH = CreateObject("WScript.Shell")
    ShellWSH.Run """C:\Dokumente und Einstellungen\ICH\Eigene
    Dateien\vbs\minimieren_allwayssync.vbs""", 4, False
    


    ob das etwas mit Deinem Problem zu tun hat, weiß ich nicht, aber wieso steht in Deinem Script drei mal:
    Set ShellWSH = CreateObject("WScript.Shell")
    ?
    Ein mal am Start reicht. Ob das zu Problemen führt, weiß ich nicht, es ist zumindest überflüssig.

    Wieso eigentlich:
    ShellWSH.Run """C:\Programme\Miranda\miranda32.exe""", 4,False

    und nicht

    ShellWSH.Run "C:\Programme\Miranda\miranda32.exe", 4,False ? Was ,4,False heißt, weißt Du?

    An den Anfang würde ich noch schreiben:

    Dim ShellWSH

    Und an das Ende:

    Set ShellWSH = Nothing

    Das sind eventuell nur Kleinigkeiten, die an Deinem Code 'unsauber' aussehen, ob das etwas mit dem Verhalten des Scripts zu tun hat, weiß ich nicht.

    Ich habe Dein Projekt mal an den Inhalt meiner Platte angepasst und entsprechend meiner Vorschläge umgeschrieben ...

    Option Explicit
    
    Dim ShellWSH
    Set ShellWSH = CreateObject("WScript.Shell")
    
    WScript.Sleep 1000
    ShellWSH.Run "C:\Programme\Inkscape\inkscape.exe", 4,False
    
    WScript.Sleep 5000
    ShellWSH.Run "C:\VBSTest.vbs", 4, False
    
    Set ShellWSH = Nothing
    

    Das läuft so bei mir.

    Gruß, Rainer

    • Antwort von nach 10 Stunden 0 hilfreich
      Re^2: Probleme beim ausführen einer vbs-Datei

      Danke für die "Aufarbeitung".

      Das Problem ist aber nicht das Script welches Du aufgeräumt hast, sondern das zweite, welches die Tastenkombi senden soll.

      Ich habe Deine Änderungen ausprobiert -> hilft nix.
      Die Programme starten in der angegebenen Reihenfolge nur die Tastenkombi wird nicht gesendet und das Fenster bleibt offen ->> *nerv*

      Wie gesagt auf einem zweiten Rechner läuft alles?! Der ist allerdings mit WinXP Home kann das was machen?

      Gruß tifi

      • Antwort von nach 13 Stunden 0 hilfreich
        Re^3: Probleme beim ausführen einer vbs-Datei

        Hallo, Das Problem ist aber nicht das Script welches Du aufgeräumt
        hast, sondern das zweite, welches die Tastenkombi senden soll.

        Ich habe Deine Änderungen ausprobiert -> hilft nix.
        Die Programme starten in der angegebenen Reihenfolge nur die
        Tastenkombi wird nicht gesendet und das Fenster bleibt offen
        ->> *nerv*
        ich glaube, ich verstehe das Problem jetzt. Dein SendKeys kommt nicht da an, wo es hin soll.

        SendKeys simuliert nur einen Tastenanschlag, wo der ankommt, kann das Programm nicht steuern, dafür mußt Du selbst sorgen.

        das letzte Programm vorher öffnest Du mit:
        ShellWSH.Run """C:\Programme\Allway Sync\Bin\syncappw.exe""", 4, False

        Erinnerst Du Dich, daß ich gefragt hatte, ob Du weißt, was die 4 bedeuet?

        Auszug aus Script56.chm

        4: Zeigt ein Fenster in der jeweils aktuellen Größe und Position an. 
        Das aktive Fenster bleibt aktiv. 
        


        Das Programm wird ohne Focus geöffnet, bekommt das Zeichen nicht.

        Ersetze die 4 durch eine 1.
        1: Aktiviert ein Fenster und zeigt es an. Wenn das Fenster minimiert 
        oder maximiert ist, stellt das System es mit seiner ursprünglichen 
        Größe und Position wieder her. Eine Anwendung sollte dieses Flag 
        angeben, wenn das Fenster zum ersten Mal angezeigt wird. 
        


        und lass den Aufruf einer weiteren .VBS Datei weg, das SendKeys kannst Du auch mit in das erste Script schreiben. Eventuell ist auch die Wartezeit zu kurz, dann wird das Zeichen gesendet, bevor das Fenster aktiv ist. Wenn es nicht geht, solltest Du also den Wert für Sleep vor dem Sendkeys erhöhen.

        Das würde dann so aussehen ...

        Dim ShellWSH
        Set ShellWSH = CreateObject("WScript.Shell")
        
        WScript.Sleep 1000
        ShellWSH.Run "C:\Programme\Miranda\miranda32.exe", 4, False
        WScript.Sleep 3000
        ShellWSH.Run "C:\Programme\Allway Sync\Bin\syncappw.exe", 1, False
        WScript.Sleep 5000
        WSHShell.Sendkeys "^{m}"
        


        .... aber mir fällt noch etwas auf. Soll das Sendkeys die Fenster minimieren? Dann starte sie doch gleich minimiert, dann kannst Du Dir das sparen.
        7: Zeigt das Fenster als minimiertes Fenster an. Das aktive Fenster bleibt aktiv. 
        


        Dim ShellWSH
        Set ShellWSH = CreateObject("WScript.Shell")
        
        WScript.Sleep 1000
        ShellWSH.Run "C:\Programme\Miranda\miranda32.exe", 7, False
        WScript.Sleep 3000
        ShellWSH.Run "C:\Programme\Allway Sync\Bin\syncappw.exe", 7, False
        


        Gruß, Rainer

        • Antwort von nach 14 Stunden 0 hilfreich
          Re^4: Probleme beim ausführen einer vbs-Datei

          Hallo Rainer,

          danke für die Mühe ABER:

          Der Fehler liegt offensichtlich wo anders.
          Ich habe, dank Deiner Tipps, das Script verkürtz

          Dim ShellWSH
          Set ShellWSH = CreateObject("WScript.Shell")

          WScript.Sleep 4000
          ShellWSH.Run """C:\Programme\Allway Sync\Bin\syncappw.exe""", 1,False
          WScript.Sleep 5000
          WSHShell.Sendkeys "^{m}"

          Set ShellWSH = Nothing

          So bald ich das Sendkeys mit drin hab geht nichts mehr, auch der Programmstart nicht, lösche ich es raus startet das Prog wieder...

          Die Tastenkombi minimiert das Prog nicht sonder legt es in den Tray.

          Egal wie auch meine erste "Chaoten-Version" lief schon!
          Jetzt sind noch anderen Probleme mit Officedateien dazu gekommen.

          Ich denke das bei einem Systemabsturz etwas mehr kaputt gegangen ist.

          Danke

          Gruß tifi

  3. Antwort von nach 13 Stunden 0 hilfreich
    Re: Probleme beim ausführen einer vbs-Datei

    Hallo noch mal,


    ich habe eben festgestellt, dass es auch mit Word-Dateien Probleme gibt.

    Beim Doppelklick öffnet sich zwar Word, allerdings sagt der Rechner er könne das Worddokument nicht finden.
    Gehe ich in Word über Datei -> öffnen wird das Doc geladen

    ???

    Was das nun wieder?
    Ich denke, dass das zusammen hängt.

    Gruß tifi

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!