
Estoy ejecutando Windows 7 de 64 bits. Cuando apago mi computadora tengo muchos programas abiertos en el escritorio. Cuando inicio mi computadora quiero que estos programas se abran automáticamente. Conozco SaveMyCache, esto requiere que marque casillas cada vez que apago mi computadora, quiero algo automático.
Respuesta1
Algo que se acerca a lo que estás pidiendo: habilita la hibernación en la administración de energía y en lugar de apagar tu PC, usa la opción de hibernación. Esto apaga la alimentación de su PC y la restaura al estado en el que se encontraba cuando apagó el sistema.
Aparte de eso, no hay ninguna funcionalidad integrada que haga lo que usted solicita. El administrador de reinicio de Windows se creó para situaciones como esta, pero el software debe admitirlo y, por lo general, solo se usa al instalar software nuevo o cuando se instalan actualizaciones.
Respuesta2
Así que decidí crear este script de Powershell.
Versión que también captura los argumentos del proceso.
Las acciones realizadas:
- Eliminar archivo anterior.
- Verifique los procesos en ejecución.
- Filtre la lista por ruta que contenga una palabra específica (Programa) que supone que todos los programas están instalados enArchivos de programaoArchivos de programa (x86)
- Obtenga las rutas absolutas a los ejecutables de los procesos que se encontraron.
- Escriba rutas al archivo temporal en el directorio temporal.
- Mueva el archivo temporal al directorio de destino, es decir, a la carpeta de inicio del usuario.
Ventajas:
- Escrito en PowerShell, por lo que el código es nativo y debería funcionar en Windows Vista y superior.
- Obras.
Contras:
Los programas instalados en otra ruta (no en archivos de programa) no serán detectados en esta versión. Por supuesto, esto es necesario para evitar iniciar procesos nativos de Windows como explorer.exe, etc. Sin embargo, si tiene una ruta como
D:\Apps
donde también instala programas, puede modificar la línea$_.Path -match "Programa"
a
$.Path -match "Programa" -o $.Path -match "D:\Aplicaciones"
y funcionará de todos modos.
Ahora el código del script:
###############################
# 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
Simplemente copie este código y péguelo en el archivo shutdown.ps1
de su escritorio. Guarde y cierre este archivo. Ahora crea un segundo archivo shutdown.bat
y pon el código.
powershell shutdown.ps1
shutdown -s -t 1
en este archivo. Guarde y cierre el archivo bat. Ahora puede mover ambos archivos al directorio preferido. Después de eso, puede hacer clic Right Mouse Buttonen un archivo bat y crear un acceso directo a este archivo. Luego haga clic con Right Mouse Buttonen unatajoesta vez y eligeAnclar al menú Inicio. Esto agregará el acceso directo a su menú Inicio.
Ahora, cada vez que desee cerrar la PC y guardar los programas en ejecución para un inicio automático después del arranque, puede usar este acceso directo.
Editar-Incluyendo argumentos de línea de comando
Como también desea guardar los argumentos de la línea de comando del proceso, debe cambiar las secciones Rellenar matrices y Crear archivos a estas:
# 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
}
El cambio consiste en usar WMI ahora en lugar de get-process. Además, esta vez se deben omitir las comillas.
Aviso
En caso de que tenga un error al ejecutar el script, probablemente tenga una configuración incorrecta para la Política de ejecución de PowerShell. Para cambiar eso, debe abrir la consola de PowerShell como administrador y escribir Set-ExecutionPolicy Unrestricted
y escribir Y
cuando se le solicite confirmar. Eso es todo. Debería funcionar bien.
Respuesta3
Otra opción es extraer enlaces al software para iniciarlo en la carpeta "Inicio" en el menú Inicio; es lento, pero funciona. Sin embargo, no abre los programas abiertos "previamente", solo un conjunto preestablecido.