Win 10 Aufgabenplanung Programmstart als Trigger

Nilo

Lt. Commander
Dabei seit
Mai 2017
Beiträge
1.267
Hallo,
ich hoffe, ich bin hier richtig. Und zwar möchte ich, dass eine Batch Datei mit dem Inhalt
set backupordner=E:\Benutzer\A-Nils\Dokumente\Rockstar Games\GTA V\videos\clips

forfiles /p "%backupordner%" /s /c "cmd /c IF @isdir==FALSE del /s /q @path"
beim Start von GTA automatisch ausgeführt wird.
In der Aufgabenplanung habe ich einen entsprechende Aufgabe erstellt, und als Trigger "Bei einem Ereignis - Anwendung - und dann den Pfad des GTA Launchers" angegeben. Allerdings passiert einfach nichts wenn ich GTA nun starte.
Wenn ich die Aufgabe manuell ausführe, leert sich der Ordner wie gewünscht. Liegt das jetzt daran, dass Windows die Ereignis ID nicht kennt, oder was muss ich anders machen?
Vielen Dank im Voraus!
 

BFF

Admiral
Dabei seit
Okt. 2017
Beiträge
9.890
Hi,

Erzeugt denn der Launcher ueberhaupt ein Ereignis was die Aufgabenplanung "triggern" kann?
Schau in die Ereignisanzeige. Ist da nix, dann ist da nix zum Triggern.

Wie waere es, wenn Du das was Du tun willst einfach auf ein Ergeignis aka "Anmeldung des Benutzers" legst?

Andere Idee waere, das Du Dein GTA per Batch startest und den o.g. Batch-Krams vor Ausfuehren von GTA machen laesst.

BFF
 

alxa

Lt. Commander
Dabei seit
Jan. 2018
Beiträge
1.406
Falls Steam-GTA v:
start steam://rungameid/271590
 

Nilo

Lt. Commander
Ersteller dieses Themas
Dabei seit
Mai 2017
Beiträge
1.267
Falls Steam-GTA v:
start steam://rungameid/271590
Nein kein Steam.
Ergänzung ()

@BFF in der Ereignisanzeige finde ich nichts, bin da aber auch Anfänger. Nur mit tasklist in der CMD finde ich 10316 als PID... geht das auch irgendwie?
An Batch habe ich auch schon gedacht, möchte aber nach Möglichkeit erst eine andere Lösung finden.
Ergänzung ()

Dumme Frage, aber für den Fall, dass ich es mit dem Systemstart triggere, wenn der Ordner leer ist, passiert einfach nichts oder?
 
Zuletzt bearbeitet:

BFF

Admiral
Dabei seit
Okt. 2017
Beiträge
9.890
Hi,

Wenn nix im Eventlog, kann Windows mit seiner Aufgabenplanung nix triggern.
Mach es per batch.

Fertigen Code kann ich nicht liefern, GTA ist nicht in meiner Liste.

BFF
 

Nilo

Lt. Commander
Ersteller dieses Themas
Dabei seit
Mai 2017
Beiträge
1.267
Ich habe das ganze jetzt per Batch gemacht. Allerdings dauert der ganze Programmstart durch diese gefühlt minimal länger.... Naja falls noch jemand einen besseren Vorschlag hat, immer her damit.
Vielen dank an @BFF !
 
  • Gefällt mir
Reaktionen: BFF

Micha45

Commander
Dabei seit
Mai 2009
Beiträge
2.269
Wahrscheinlich klappt das ganze Vorhaben mit Powershell besser. Wäre jedenfalls mal nen Versuch wert.
Wie man in der Aufgabenplanung mittels Powershell Trigger erstellt und ausführt, ist hier beschrieben:
https://www.windowspro.de/script/register-scheduledtask-geplante-aufgaben-erstellen-powershell

Was das Auslesen des Ordners mit der GTAV-ID (ist das der Ordner nach "..\Profiles, der gemeint ist?) im Dokumentenverzeichnis betrifft, geht das via Powershell beispielsweise so:

PowerShell:
$MYDocu = [Environment]::GetFolderPath('MyDocuments')
$ProfID = (Get-ChildItem "$MYDocu\Rockstar Games\GTA V\Profiles\*").Name
$FullDirName = (Get-Item "$MYDocu\Rockstar Games\GTA V\Profiles\$ProfID").FullName
#Zum Testen in der PS-Konsole:
$FullDirName
 

Nilo

Lt. Commander
Ersteller dieses Themas
Dabei seit
Mai 2017
Beiträge
1.267
Wahrscheinlich klappt das ganze Vorhaben mit Powershell besser. Wäre jedenfalls mal nen Versuch wert.
Wie man in der Aufgabenplanung mittels Powershell Trigger erstellt und ausführt, ist hier beschrieben:
https://www.windowspro.de/script/register-scheduledtask-geplante-aufgaben-erstellen-powershell

Was das Auslesen des Ordners mit der GTAV-ID (ist das der Ordner nach "..\Profiles, der gemeint ist?) im Dokumentenverzeichnis betrifft, geht das via Powershell beispielsweise so:

PowerShell:
$MYDocu = [Environment]::GetFolderPath('MyDocuments')
$ProfID = (Get-ChildItem "$MYDocu\Rockstar Games\GTA V\Profiles\*").Name
$FullDirName = (Get-Item "$MYDocu\Rockstar Games\GTA V\Profiles\$ProfID").FullName
#Zum Testen in der PS-Konsole:
$FullDirName
Schau ich mir gleich mal an, danke. Allerdings ist mir nicht so ganz klar, wie du auf den profiles Ordner kommst?
Ziel ist es, dass beim Starten von GTA5 (per Verknüpfung auf dem Desktop) automatisch der Ordner Clips gelöscht wird.
 

Micha45

Commander
Dabei seit
Mai 2009
Beiträge
2.269
Ach so, ich dachte, das Problem mit dem Erkennen der ID in der Batch sei auf den Profilordner bezogen.
Na dann ist es mit Powershell wahrscheinlich gar kein Problem mit der Aufgabenplanung.

Einen Moment, ich bastle das jetzt mal zusammen.

PowerShell:
$MyDoc = [Environment]::GetFolderPath('MyDocuments')
$backupordner = (Get-Item "$MyDoc\Rockstar Games\GTA V\videos\clips").FullName
If (!(Test-Path "$backupordner")){Remove-Item -Recurse -Force "$backupordner\*"}
 
Zuletzt bearbeitet:

Nilo

Lt. Commander
Ersteller dieses Themas
Dabei seit
Mai 2017
Beiträge
1.267

Micha45

Commander
Dabei seit
Mai 2009
Beiträge
2.269
So, ich habe das jetzt mal etwas ausführlicher dargestellt und den Ablauf versucht, nachzuvollziehen.

PowerShell:
#Verzeichnisse definieren
$MyDoc = [Environment]::GetFolderPath('MyDocuments')
$backupordner = (Get-Item "$MyDoc\Rockstar Games\GTA V\videos\clips").FullName

#Verknüpfung erstellen
$wshShellObject = New-Object -com WScript.Shell
$wshShellLink = $wshShellObject.CreateShortcut("$Home\Desktop\PlayGTAV.lnk")
$wshShellLink.TargetPath = "C:\Program Files\Rockstar Games\Grand Theft Auto V\PlayGTAV.exe"
$wshShellLink.WindowStyle = 1
$wshShellLink.IconLocation =  "C:\Program Files\Rockstar Games\Grand Theft Auto V\PlayGTAV.exe"
$wshShellLink.WorkingDirectory = "C:\Program Files\Rockstar Games\Grand Theft Auto V"
$wshShellLink.Save()

#Vor dem Spielstart prüfen, ob der Ordner clips leer ist
#Falls ja, starte das Spiel
#Andernfalls, lösche den Inhalt im Ordner clips
#..und starte, nach 5 Sekunden Pause, anschließend das Spiel über den Desktop-Link
If (!(Test-Path "$backupordner\*"))
{
    Start-Process "$Home\Desktop\PlayGTAV.lnk" -Verb RunAs -PassThru
}
Else
{
    Remove-Item -Recurse -Force "$backupordner\*"
    Start-Sleep 5
    Start-Process "$Home\Desktop\PlayGTAV.lnk" -Verb RunAs -PassThru
}
Musst du dann ggf. weiter an deine Anforderungen anpassen.

Das Script dann unter "IrgendeinName.ps1" abspeichern.
Ich hoffe, es funktioniert. Ich habe im Moment keine Möglichkeit, das selbst zu testen, da ich auf der Arbeit bin.
 

BFF

Admiral
Dabei seit
Okt. 2017
Beiträge
9.890
Hi,

@Micha45
Nix gegen Deine Arbeit. Ist richtig gut gemacht. Aber...
Kann es sein, das dieses Powershell-Script das Gleiche macht wie seine eigene Batch? ;)

Einfach nur schaut ob Verzeichnis leer, wenn nicht mach es leer und dann starte GTA?

@Nilo
Ja Dein GTA starten per Batch dauert etwas laenger, weill erst die Dateien geloescht werden muessen.

Um Zeit fuer den Start von GTA zu sparen, bleibt der Weg, dass Du einen Task erstellst welcher beim Anmelden des Benutzers die Dateien des oder den Backupordner loescht.

BFF
 

Micha45

Commander
Dabei seit
Mai 2009
Beiträge
2.269
@BFF
Danke für die Blumen, das hab ich dann mal auf die Schnelle und aus dem Gedächtnis entworfen und sollte auch nur als Anhaltspunkt dienen. Bin leider noch auf der Arbeit und kann meine eigenen Scripte zuhause nicht einsehen und demzufolge auch nicht selbst testen.:)

Klar ist in dem PS-Script im Grunde der selbe Ablauf wie in einem Batch-Script.
Nur, meiner Erfahrung nach funktionieren Batch-Scripte, die man nicht manuell, sondern durch andere Scripte oder Anwendungen startet, vor allem unter Windows 10 oft nicht oder nicht korrekt.
Ich habe früher unter Windows 7 sehr viel mit Batches gearbeitet und da hatte es noch sehr gut funktioniert.

Ich denke mal, dass GTA V in einem der Programmverzeichnisse auf der Systemplatte liegt.
Genauso wie das Nebenverzeichnis von GTA V im Dokumentenverzeichnis des Systems.
Dort etwas auszuführen, auch noch über ein Batch-Script, könnte unter Umständen durch die bekannt stringenten Systemeinstellungen von Windows 10 ein schwieriges Unterfangen sein.
Mit PS-Scripten hat man da weniger Probleme. Vorausgesetzt, die entsprechenden Ausführungsrichtlinien sind auf die entsprechenden Einstellungen gesetzt. (Remote-Signed oder Bypass).

Der Weg über die Anmeldung wäre natürlich die ideale Lösung. Ich habe aber keine Ahnung, wie man das in den Ablauf einbinden könnte.
 

BFF

Admiral
Dabei seit
Okt. 2017
Beiträge
9.890
Das ist schon klar. :daumen:

Nur das was er, der TE, wollte/will im Post #1 ist ein Triggern aus der Ereignisanzeige.
Das geht so nicht, wenn das Programm was er triggern will nix dort hinterlaesst.

Fuer mich die beste Loesung fuer ihn ist immer noch, per "was auch immer" das Backup zu killen und dann GTA zu starten.

Einen Ordner "leer" zu machen nach Anmeldung klappt definitiv mit Deinem Script plus einen Eintrag in den Geplanten Aufgaben. :) Einfach nur das Starten von GTA wech lassen. ;)

Schoenes WE! Weil ich habe ein langes davon ;)

BFF
 

Micha45

Commander
Dabei seit
Mai 2009
Beiträge
2.269
Danke, dir auch ein schönes (langes) WE.:daumen: Du hast es gut.:D
 
  • Gefällt mir
Reaktionen: BFF

Nilo

Lt. Commander
Ersteller dieses Themas
Dabei seit
Mai 2017
Beiträge
1.267
Kann leider erst morgen wieder testen.
Falls es im Startpost noch nicht ganz klar war, Ziel war es, wenn ich GTA über die Standard Verknüpfung, welche sich bei der Installation von GTA erstellt, starte, dass dann der Ordner Clips, welcher überflüssige Videodateien aus GTA enthält, gelöscht wird.
Bei jedem Systemstart ist dies schlicht nicht notwendig, auch wenn es natürlich so gemacht werden könnte... Daher wollte ich meine Batch zum Löschen mit dem Start von GTA starten/triggern.

Ob das Powershell Script hier eleganter ist teste ich dann morgen ausführlich.
Auch von mir bereits allen ein schönes Wochenende!
 

BFF

Admiral
Dabei seit
Okt. 2017
Beiträge
9.890
Genau das geht nicht.

Ziel war es, wenn ich GTA über die Standard Verknüpfung, welche sich bei der Installation von GTA erstellt, starte, dass dann der Ordner Clips, welcher überflüssige Videodateien aus GTA enthält, gelöscht wird.
Nur wenn Du Helferlein nimmst wie Deinen eigenen Batch oder das PD vom Micha.

Bei beiden wird u.U. einen Verzoegerung sein wenn "viel" geloescht werden muss.

Deswegen der Hinweis von mir, dass das Verzeichnis geleert werden sollte wenn der Benutzer sich anmeldet.
Andererseits kann es sich bei der Verzoegerung nur um Sekunden handeln. Also nicht so wirklich wichtig, oder?

BFF
 

Nilo

Lt. Commander
Ersteller dieses Themas
Dabei seit
Mai 2017
Beiträge
1.267
Bei beiden wird u.U. einen Verzoegerung sein wenn "viel" geloescht werden muss.

Deswegen der Hinweis von mir, dass das Verzeichnis geleert werden sollte wenn der Benutzer sich anmeldet.
Andererseits kann es sich bei der Verzoegerung nur um Sekunden handeln. Also nicht so wirklich wichtig, oder?
Ja in der Regel, sollte sich durch die dann relativ regelmäßige Löschung bei jedem Spielstart nie mehr als 4GB ansammeln. Was aber ja schon eine ausreichende Menge darstellt. Ich Versuche halt die Verzögerung weitestgehend zu eliminieren, bzw im Optimalfall das Script zum Löschen parallel zum Spielstart auszuführen ohne Verzögerung von diesem. Werde mir das Script von Micha dahingehend noch ein wenig anpassen. Mal schauen ob eine extra Verknüpfung zu Bat, die auch das Spiel startet, wie von dir vorgeschlagen, oder das ganze wie anfangs geplant über die Aufgabenplanung mit der PS am besten funzt. Vlt. finde ich ja noch nen passenden Trigger...
 
Zuletzt bearbeitet:

BFF

Admiral
Dabei seit
Okt. 2017
Beiträge
9.890
Wozu sind die Daten gut, die Du geloescht haben willst?

Wenn das eh bloss Cache oder was immer ist und sowieso vom Spiel ueberschrieben wird spar Dir den Aufwand.

BFF
 

Nilo

Lt. Commander
Ersteller dieses Themas
Dabei seit
Mai 2017
Beiträge
1.267
Wozu sind die Daten gut, die Du geloescht haben willst?

Wenn das eh bloss Cache oder was immer ist und sowieso vom Spiel ueberschrieben wird spar Dir den Aufwand.

BFF
GTA nimmt bei mir wenn ich am Controller auf die falsche Taste komme, automatisch Clips vom Spiel auf. Das umzustellen funktioniert leider nicht. Deswegen muss ich die Videos regelmäßig löschen um meine Festplatte nicht unnötig zu zu müllen.
 
Top