Starten Sie Windows mit zuvor geöffneten Programmen

Starten Sie Windows mit zuvor geöffneten Programmen

Ich verwende Windows 7 64-Bit. Wenn ich meinen Computer herunterfahre, sind viele Programme auf dem Desktop geöffnet. Wenn ich meinen Computer starte, möchte ich, dass diese Programme automatisch geöffnet werden. Ich kenne SaveMyCache, dafür muss ich jedes Mal, wenn ich meinen Computer herunterfahre, Kästchen ankreuzen, ich möchte etwas Automatisches.

Antwort1

Etwas, das Ihrer Frage sehr nahe kommt: Aktivieren Sie den Ruhezustand in der Energieverwaltung und verwenden Sie die Ruhezustandsoption, anstatt Ihren PC herunterzufahren. Dadurch wird die Stromversorgung Ihres PCs unterbrochen und Ihr PC wird in den Zustand zurückversetzt, in dem er sich befand, als Sie das System ausgeschaltet haben.

Abgesehen davon gibt es keine integrierte Funktion, die das tut, wonach Sie suchen. Der Windows-Neustart-Manager wurde für solche Situationen entwickelt, aber die Software muss dies unterstützen, und dies wird normalerweise nur verwendet, wenn neue Software installiert oder Updates installiert werden.

Antwort2

Deshalb habe ich beschlossen, dieses Powershell-Skript zu erstellen.

Github-Projekt hier.

Version mit zusätzlicher Erfassung der Prozessargumente.

Die durchgeführten Aktionen:

  1. Vorherige Datei löschen.
  2. Überprüfen Sie die laufenden Prozesse.
  3. Filtern Sie die Liste nach Pfaden, die bestimmte Wörter enthalten (Programm), wobei vorausgesetzt wird, dass alle Programme entweder inProgrammdateienoderProgrammdateien (x86)
  4. Holen Sie sich die absoluten Pfade zu den ausführbaren Dateien der gefundenen Prozesse
  5. Schreibe Pfade zur temporären Datei im temporären Verzeichnis.
  6. Verschieben Sie die temporäre Datei in das Zielverzeichnis, also in den Startordner des Benutzers.

Vorteile:

  • In Powershell geschrieben, daher ist der Code nativ und sollte unter Windows Vista und höher funktionieren.
  • Funktioniert.

Nachteile:

  • Programme, die in einem anderen Pfad installiert sind - nicht unter den Programmdateien - werden in dieser Version nicht erkannt. Das ist natürlich notwendig, um das Starten nativer Windows-Prozesse wie explorer.exe usw. zu vermeiden. Wenn Sie jedoch einen Pfad wie diesen haben, D:\Appsin dem Sie auch Programme installieren, können Sie die Zeile ändern

    $_.Path -match "Programm"

    Zu

    $.Pfad -match "Programm" -oder $.Pfad -match "D:\Apps"

    und es wird trotzdem funktionieren.

Nun der Skriptcode:

###############################
# AUTOMATIC STARTUP GENERATOR #
# ASGEN v.1.0 by mnmnc @ 2014 # 
###############################

# VARIABLES

    # CURRENT PATH
    $current = $(pwd).ToString()

    # DESTINATION PATH
    $destination_path = "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\programs.bat"

# MOVING TO TEMP    
cd $env:systemroot\Temp

# REMOVING OLD FILE
del $destination_path

# EMPTY ARRAYS
$arr_names = @()
$arr_paths = @()

# FILLING ARRAYS
Get-Process | Where-Object {$_.Path -match "Program" } | foreach { $arr_names += $_.Name; $arr_paths += $_.Path }

# CREATING FILE
for($i = 0; $i -le $arr_names.count -1; $i++) 
{ 
    $out = "`"" + $arr_paths[$i] + "`""
    write-output $out | out-file "programs.bat" -append -Encoding ascii
}

# INFO
Write-host "`nFolowwing programs will be started on next boot:`n"
cat programs.bat
Write-host "`n"

# MOVING TO STARTUP FOLDER
mv programs.bat "$destination_path"

# RETURNING
cd $current

exit

Kopieren Sie einfach diesen Code und fügen Sie ihn in die Datei shutdown.ps1auf Ihrem Desktop ein. Speichern und schließen Sie diese Datei. Erstellen Sie nun eine zweite Datei shutdown.batund fügen Sie den Code ein

powershell shutdown.ps1
shutdown -s -t 1

in dieser Datei. Speichern und schließen Sie die Bat-Datei. Sie können nun beide Dateien in das gewünschte Verzeichnis verschieben. Anschließend können Sie mit Right Mouse Buttonauf eine Bat-Datei klicken und eine Verknüpfung zu dieser Datei erstellen. Klicken Sie dann mit Right Mouse Buttonauf eineAbkürzungdieses Mal und wählen SieAns Startmenü anheften. Dadurch wird die Verknüpfung zu Ihrem Startmenü hinzugefügt.

Jetzt können Sie diese Verknüpfung jedes Mal verwenden, wenn Sie den PC schließen und die laufenden Programme für einen automatischen Start nach dem Booten speichern möchten.


Bearbeiten-Einschließen von Befehlszeilenargumenten

Da Sie auch die Befehlszeilenargumente des Prozesses speichern möchten, müssen Sie die Abschnitte „Arrays füllen“ und „Datei erstellen“ wie folgt ändern:

# FILLING ARRAYS
Get-WmiObject Win32_Process | Where-Object { $_.Path -match "Program" } | foreach { $arr_names += $_.Name; $arr_paths += $_.CommandLine;  }

# CREATING FILE
for($i = 0; $i -le $arr_names.count -1; $i++) 
{ 
    $out =  $arr_paths[$i] 
    write-output $out | out-file "programs.bat" -append -Encoding ascii
}

Die Änderung besteht darin, dass nun WMI statt get-process verwendet wird. Außerdem müssen diesmal die Anführungszeichen weggelassen werden.


Beachten

Falls beim Ausführen des Skripts ein Fehler auftritt, haben Sie wahrscheinlich eine falsche Einstellung für die Ausführungsrichtlinie für Powershell. Um dies zu ändern, müssen Sie die Powershell-Konsole als Administrator öffnen und eingeben Set-ExecutionPolicy Unrestrictedund bei Yder Bestätigungsaufforderung eingeben. Das ist alles. Sollte problemlos funktionieren.

Antwort3

Eine weitere Möglichkeit besteht darin, Links zu zu startender Software in den Ordner „Autostart“ im Startmenü zu ziehen. Dies ist zwar langsam, funktioniert aber. Allerdings werden dabei nicht die „zuvor“ geöffneten Programme geöffnet, sondern nur ein voreingestellter Satz.

verwandte Informationen