VBScript - Daten-Synchronisation nach Aufwachen aus dem Ruhezustand

Candyno

Stammgast
Hallo zusammen

Möchte mit der Freeware "Personal Backup" meine Daten synchronisieren, und zwar automatisiert nach dem Aufwachen des PCs aus dem Ruhezustand.

Weil ich null Ahnung habe mit der Programmierung von VBScript, probierte ich es mit diesem gefundenen VBScript (.vbs).
Und diese Datei dann, in den Autostart-Ordner kopiert.
Code:
Dim T1, T2, X0, X1, X2, P1, P2
X2=0

Do While 1 > 0

if X2 < 7855 then

Set WshShell = WScript.CreateObject("WScript.Shell")

P1="C:\Program Files\Personal Backup 5\Persbackup.exe"
P2="C:\Program Files\Personal Backup 5\Aufträge\Synchronisation von D.lnk"

WScript.Sleep 30000

WshShell.Run P1, P2

end if

T1 = time
WScript.Sleep 10000
T2 = time

X0 = T2-T1
X1 = CDate(X0)
X2 = CLng(1/X0)

if X2 < 1 then
X2 = 8640
end if

Loop
Nun erscheint folgende Fehlermeldung (siehe Anhang).

Zur Erklärung:
Bei "P1" steht der Pfad zur Programm-Datei (.exe)
Bei "P2" ist die Datei der Auftrags-Verknüpfung (.lnk) angegeben. Wenn ich übrigens auf diese Datei von Hand darauf klicke, funktioniert es einwandfrei. Der Synchronisations-Auftrag startet. Nur möchte ich es halt gerne automatisieren.

Hat jemand eine Idee ? Evtl. ist das Script nicht richig geschrieben ?

Grüsse, Candyno
 

Anhänge

  • screeni.jpg
    screeni.jpg
    23,5 KB · Aufrufe: 4

Nebuk

PCtipp-Moderation
Teammitglied
Gleich vorweg: Ich hab mich schon seit sehr langer Zeit nicht mehr mit VBA auseinandergesetzt und hab es damals auch nicht wirklich gut beherrscht.

In der WshShell.Run Funktion hast du ja zwei Argumente die du mitgibst (P1 und P2). Für mich hört es sich so an, als ob eine der beiden Parameter nicht wie von der Funktion gebraucht mitgegeben werden.

Quasi so: Funktionsname(Object parametername, string irgendeinstring) und du machst sowas wie Funktionsname(Object parametername, int irgendeinezahl)

Wie gesagt, ich kenne mich da nicht so aus. :)
 

Triggerfish

Stammgast
Das hat nichts mit einem fehlerhaften Skript zu tun, sondern mit der Tatsache, dass das Starten aus dem Ruhemodus nicht dem "normalen" Aufstarten entspricht. -> der Autostart-Ordner wird nicht abgearbeitet.

Du musst also eine Aufgabenplanung vornehmen.
Dazu Windows-Taste drücken, dann compmgmt.msc eingeben und Eingabetaste betätigen.
Dann Aufgabenplanung, dann rechts "einfache Aufgabe erstellen" wählen.
Dort dann "Bei Protokollierung eines bestimmten Ereignisses" auswählen.

Das Protokoll ist "System", die Quelle "Power-Troubleshooter", die ID 1.
Falls das Ganze auf einem Laptop funktionieren soll, wäre wohl unter den Bedingungen noch der Haken bei "Aufgabe nur starten, falls Computer im Netzbetrieb ist" zu deaktivieren.

Dann noch dein Skript verlinken und gut ist.

Gruss
Triggerfish
 

Candyno

Stammgast
Achso, es geht gar nicht mit einem VBScript. Werde es also mit der Aufgabenplanung versuchen.

Besten Dank für den Hinweis, und ein schönes Wochenende
Grüsse, Candyno
 

Triggerfish

Stammgast
Nein, da haben wir wohl gerade aneinander vorbeigeredet.

Es geht nicht über den Autostart -> weil aus dem Ruhemodus der Autostartordner nicht abgearbeitet wird.

Deshalb musst du die Aufgabenplanung benutzen. In der Aufgabenplanung gibst du dann einfach dein VBS-Skript an, damit es ausgeführt wird. Weiter sagst du mit der Anleitung weiter oben, dass er nach dem "Starten aus dem Ruhemodus" das VBS-Skript ausführen soll.

Dein VBS-Skript kann also unverändert von der Aufgabenplanung gestartet werden.

Die Aufgabenplanung ist nur ein Tool, um Dinge wie dein Skript durch verschiedene Abhängigkeiten und Ereignisse ausführen zu lassen. (Eben zum Beispiel um ein VBS-Skript nach dem Ruhemodus auszuführen ;))

Ich hoffe, das klärt die Sachlage ein wenig, ansonsten kannst du gerne nochmals nachhaken ;)

Gruss
Triggerfish
 
Oben