Restauración de software abierto después de un evento de reinicio en Windows

36

Me parece que al final de un largo día, a veces tengo una gran cantidad de programas ejecutándose. Todo lo que necesitaré usar mañana. Normalmente, esto no es un problema, simplemente puedo bloquear la máquina y volver mañana. Mi problema surge cuando la actualización de Windows se inicia en medio de la noche y fuerza el reinicio de mi computadora. Eso a su vez cierra todo mi software abierto. Por supuesto, guardo todo regularmente para no perder nada, pero pierdo el tiempo reabriendo todos esos recursos cada vez que hay un reinicio.

[EDITAR]

Debo aclarar que todavía quiero poder reiniciar mi computadora cuando se produce una actualización. La prevención del reinicio solo retrasa el problema hasta más tarde. Debería haber sido más específico en que quiero poder recuperar mi entorno de trabajo después de un reinicio por cualquier motivo. Cosas como mantenimiento programado, pérdida de energía, actualizaciones e instalaciones de software.

[EDITAR]

No puedo simplemente configurarlos para que se inicien en el inicio porque esos archivos cambian de una semana a otra. Así que necesito algo que monitoree lo que tengo abierto y me da la opción de "recuperar" esas sesiones de software cuando vuelva a iniciar sesión.

¿Alguien tiene alguna sugerencia sobre lo que puedo hacer? Incluso estaría dispuesto a comprar software para hacer esto por mí si esa es la única opción.

Gracias

Doltknuckle
fuente
En realidad, recuerdo haber leído en alguna parte, que se suponía que Win7 tenía una característica como esta, aunque supongo que no pudieron prepararla a tiempo para su lanzamiento. Por lo tanto, puede venir en el futuro.
eidylon el
1
Parece que el comando "shutdown / g" se puede combinar con la función de recuperación automática de fallos de un programa para hacer el 75% de lo que estoy buscando. Tendré que hacer más pruebas para ver si esto funciona.
Doltknuckle
1
el comando de apagado no funciona realmente como se esperaba ... lo que realmente necesito es una forma de monitorear los archivos abiertos actualmente. Entonces puedo construir un script dinámico para volver a iniciar esos archivos.
Doltknuckle
1
6 años después y esto todavía no es una característica de Windows ... ¡OSX ha tenido esto por años!
GiH
7 años y contando .....
iAmLearning

Respuestas:

16

¡Es tan molesto que todavía no hay una solución elegante para este problema!

Nos sucede a todos: Windows simplemente se ralentiza hasta detenerse (algún tipo de pérdida de memoria lo está causando, ya que son 132 pestañas abiertas en Chrome, 57 abiertas en Firefox, 24 ventanas abiertas en total, haciendo un complejo operación que los involucra a todos al mismo tiempo que haces el trabajo encima del trabajo, encima del trabajo ... tipo de persona), y se vuelve tan lento que realmente comienzas a perder el tiempo solo esperando que las cosas sucedan en tu trabajo computadora ... así que simplemente TIENES que restablecer tu sesión que se ha estado acumulando lentamente durante las últimas 5 semanas, y finalmente sucumbir a la pesadilla que está recreando tu intrincado desorden de ventanas y archivos abiertos y carpetas de explorador, después de las temidas ventanas reiniciar.

BIEN.

He pasado mucho tiempo buscando soluciones elegantes que no lo conviertan en una pesadilla, y esta es mi conclusión y mi 'solución' actual.

Solo he encontrado un programa, que puede guardar y restaurar tanto los programas Y los archivos que tenían abiertos, y es realmente suave, en su mayoría. Es Twinsplay (Edición profesional) . ( CacheMyWork y SmartClose solo restauran los programas, pero no los archivos).

Sin embargo, Twinsplay tiene algunos problemas y advertencias reales (y tampoco es freeware, cuesta $ 40):

  1. Al restaurar Firefox, parece duplicar TODAS las pestañas en el interior, debe codificarse para tener en cuenta lo que ha cargado dentro de Firefox (como si cada pestaña fuera un 'archivo' como cómo restaurará fielmente todos sus archivos de Word), así que si Ya tengo Firefox configurado para abrir las pestañas de la sesión anterior y tenía 100 pestañas abiertas, intentará cargar 200 pestañas y, en general, será un desastre. Además, desordena las pestañas fuera de servicio !! (Afortunadamente, al menos aún mantiene las pestañas duplicadas en su propio 'grupo' comenzando después de la última de las pestañas originales, pero ambos grupos de pestañas tienen el orden desordenado, así que sí, también ensucia el orden de las pestañas originales). Estoy seguro de que este mismo problema ocurriría en Chrome ..... No lo probé (¡no me atreví!).

  2. El otro problema: para cualquier programa que comúnmente tenga abiertos varios archivos (como Word, Photoshop, InDesign): si por alguna razón aparece un cuadro de diálogo durante la carga del primer archivo en el programa (un error macro, o como en mi InDesign, me faltaba un enlace de imagen en el primer documento), luego todos los documentos después de ese primero no se abren porque Twinsplay por diseño carga todos los archivos en sus programas a la vez. Y Twinsplay no muestra en ninguna parte de su interfaz de usuario una lista de archivos de la sesión guardada (ni en los registros de Appdata / archivos de configuración, verifiqué), por lo que si ocurre este escenario, probablemente se olvide del quinto archivo en InDesign que ¡Estuvimos trabajando hace 4 semanas y todavía tengo que terminar!

SO: el método que estoy haciendo después de todo esto es:

Reviso cada archivo abierto en la barra de tareas, copio su ruta de archivo (lo cual es bastante fácil de hacer con bastante rapidez si conoce los cuadros de diálogo y menús de Windows y atajos de teclado), y para cualquier archivo o ventana donde estuve en un determinado detectado o tenía ciertas cosas resaltadas, etc., solo lo anoto para no olvidarlo 10 minutos después. Aquí hay un ejemplo ficticio de lo que quiero decir.

Luego, después de reiniciar, solo pego la ruta de cada archivo en la barra de direcciones del explorador de Windows para abrir cada archivo uno a la vez, con su programa asociado. Si tuviera un archivo que en realidad no estaba abierto en su programa asociado (como un TIFF en Photoshop), supongo que lo anotaría, así que lo recuerdo.

-

AHORA. Mi solución no es tan mala, pero todavía me lleva algún tiempo copiar la ruta del archivo de cada archivo abierto.

Lo ideal sería tener una herramienta que escupe TODAS las rutas de los archivos de Windows y las rutas del programa ("C: \ photoshop.exe" "C: \ image.TIFF") a la vez y luego puede poner esa información en scripts por lotes para abrir cada archivo con el programa en el que estaba, uno por uno, o todos a la vez en el mismo lote si lo desea. Eso sería perfecto.

Para acelerar las cosas, ¿hay alguna forma de copiar las rutas de archivo de TODOS los archivos abiertos de las ventanas activas? ¡Una pequeña herramienta para escupir rutas de archivos de todos los elementos actuales de la barra de tareas debería ser bastante fácil! Si Twinsplay puede hacerlo, obviamente se puede hacer de alguna manera ... He hecho esta pregunta en una publicación separada, aquí . ¿Podría este código hacerlo?

Dado que Microsoft no nos ha proporcionado una solución elegante de un solo clic de nivel de sistema operativo, no deberíamos intentar un método de restauración de sesión similar al hibernate del santo grial con solo acceso de terceros o, por ejemplo, jugar con hacks de recarga de caché de hibernación, etc.

Se supone que reiniciar Windows es una actualización para borrar la RAM y eliminar todo, no retenerlo todo, por lo que es mejor hacerlo como una reapertura manual de sus archivos (al tiempo que anota algunos detalles de dónde estaba en ciertos archivos) ), pero ESTO con la mayor elegancia posible.

Comunidad
fuente
Usar Twinsplay es probablemente la mejor opción que tengo en este momento. Funcionará para la mayoría de los usuarios y parece ser una gran herramienta. La solución real a esto es cambiar el comportamiento del usuario para que dejen de tener estos problemas.
Doltknuckle
para resolver los 'errores' en twinsplay, como dije antes, la mejor solución, creo que sería tener un archivo por lotes con un solo clic / pequeño ejecutable para copiar todas las rutas de los archivos abiertos y los programas en los que están, entonces usted puede configurar las cosas para que sean solo un solo clic más para restaurar después de reiniciar también. molesto aunque parece que hice mi pregunta al respecto de una manera poco clara, por lo que un mod cerró la pregunta :(.
44
Agregaré: Windows tiene algo integrado que utiliza para reiniciar después de instalar ciertas actualizaciones y forzar un reinicio, y restaurará muchas / la mayoría de las ventanas a su estado original. Por lo tanto, no es algún mecanismo nivel de sistema operativo para esto, no está seguro de lo que es, ni lo accesible que sería para nuestro uso.
boomhauer
1
@boomhauer Registrarse para reiniciar la aplicación señala que las aplicaciones que "[Registrarse] para reiniciar la aplicación también harán que Windows reinicie automáticamente la aplicación después de reiniciar la computadora ... debido a una actualización de software".
FriendlyGuy
6

Escuché que la gente usa un programa llamado CacheMyWork . Volverá a abrir las aplicaciones que tenía abiertas, pero no abrirá los archivos en los que está trabajando (a menos que el programa tenga esa función).

Otra opción es que puede evitar el problema de ejecutar sus aplicaciones en una máquina virtual. Luego, cuando vuelva a casa, puede pausar la máquina virtual con la cual el estado de la máquina virtual permanecerá en el disco. Luego, reanude la máquina virtual cuando regrese. Esto evita el problema porque algún día necesitará actualizar / parchear el sistema operativo de la máquina virtual. Además, probablemente recibirás un golpe de rendimiento (qué tan grande depende de lo que hagas).

Cuando se trata de dejar las cosas abiertas y las máquinas reiniciando desde parches, estoy ahí contigo.

Scott McClenning
fuente
1
La sugerencia de software es un paso en la dirección correcta. Creo que el problema es que no supervisa activamente los archivos abiertos, por lo que no puede restaurarlos más tarde. En el peor de los casos, es posible que tenga que hackear un script que detecte qué archivos están abiertos y luego los configure para que se inicien en orden.
Doltknuckle
1
Estoy de acuerdo, deseo que CacheMyWork supervise los documentos abiertos (como Windows Recent Docuemtns) y vuelva a ejecutar los documentos en el arranque. Al igual que hacer doble clic en un documento de Microsoft Word activará Word, CacheMyWork podría recorrer un largo camino al ejecutar el arranque de mis documentos.
Scott McClenning el
4

2016 y todavía nada de Microsoft ... Decidí probarlo vbscript. No es genial, pero activa todos los programas y, en algunos casos, incluso es Windows.

El primer script guarda todos los procesos en un archivo de texto en la carpeta especificada (escritorio) y todos los nombres de las ventanas en un archivo separado. El segundo script lee e inicia todos los procesos desde el archivo escrito por el primer script. Ambos deben guardarse con la extensión .vbs. Además, guardar los nombres de las ventanas requiere la instalación de Microsoft Word (no preguntar ...).

On Error Resume Next
Dim session, folder, Word, Tasks

Set Word = CreateObject("Word.Application")
Set Tasks = Word.Tasks

' folder is the folder in which the files will be created. Can also be instantiated by hardcoding a path
folder = getPathOfFolder("Desktop")
' The second argument of the function call (session.txt) is the filename of the file containing all window names
Set sessionFile = CreateFileAt(folder, "session.txt")

for Each Task in Tasks
    if Task.Visible Then
        sessionFile.WriteLine(Task.Name)
    End if
Next
sessionFile.Close
Word.Quit

' The second argument of the function call (processes.txt) is the filename of the file containing all processes
Set processesFile = CreateFileAt(folder, "processes.txt")
set processesList = getAllProcesses()

for Each Process in processesList
    processesFile.WriteLine(Process.CommandLine & "")
Next

processesFile.Close
MsgBox("Done!")




Function getPathOfFolder(path)
    ' Dim objShell As Object
    ' Dim strPath As String

    Set objShell = Wscript.CreateObject("Wscript.Shell")
    Path = objShell.SpecialFolders(path)
    getPathOfFolder = Path & "\"
End Function

Function CreateFileAt(filePath, fileName)
    Dim fso, session
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set session = fso.CreateTextFile(filePath & fileName, true)
    Set CreateFileAt = session
End Function

Function getAllProcesses()
    Const Computer = "." 
    Dim WMI, ProcessList
    Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
    Query = "Select * FROM Win32_Process"
    Set ProcessList = WMI.ExecQuery(Query)
    Set getAllProcesses = ProcessList
End Function

.

On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(getPathOfFolder("Desktop") & "processes.txt", 1)

Do While file.AtEndOfStream = False
    Set Shell = CreateObject("Wscript.Shell")
    Shell.Run(file.ReadLine)
Loop

MsgBox("Done!")

Function getPathOfFolder(path)
    ' Dim objShell As Object
    ' Dim strPath As String

    Set objShell = Wscript.CreateObject("Wscript.Shell")
    Path = objShell.SpecialFolders(path)
    getPathOfFolder = Path & "\"
End Function

Todavía no he encontrado una manera de obtener mediante programación las rutas de archivo que el usuario 78017 copia cada vez que se reinicia. Me gustaría saber para qué programas este script abre todos los archivos abiertos y para qué programas no lo hace. Si alguien quiere limpiar este código, edite la publicación.

Fr4nc3sc0NL
fuente
1

Obtuve este en el feed RSS de hoy:

CacheMyWork es una práctica utilidad que le permite reiniciar Windows sin perder su lugar en su trabajo. Construye una lista de verificación de las aplicaciones abiertas actualmente y reiniciará las aplicaciones que haya seleccionado la próxima vez que inicie sesión en la computadora.

Fuente

Steiv
fuente
+1 Ja, eso es lindo ... muy bonito hallazgo (pero ya había sido publicado por Scott).
0

Tengo el mismo problema. Después de un reinicio, tengo al menos media hora de reinicio de todos los procesos que normalmente uso.
Encontré una utilidad que tiene la capacidad de volver al estado previo al arranque, Slimbrowser . Querría mucho más.

Dave
fuente
1
He encontrado formas de guardar el navegador (usar Firefox) y las sesiones de carpeta (configuración de Windows) y hacer que se reinicien al inicio. Aún tengo que encontrar una buena solución para las otras cosas como Office (Word, Excel, Outlook), el bloc de notas y Adobe Reader.
Doltknuckle
Para un editor, ultra-edit tiene esa capacidad. Personalmente prefiero kedit debido a sus capacidades de script.
Dave
-1

No es exactamente lo que pediste, pero simplemente puedes poner tu computadora en modo de "suspensión" durante la noche. A menos que realmente tenga procesos en ejecución, esto no cambiará nada acerca de cómo funciona, solo tomará uno o dos segundos para que se suspenda por la mañana, y Windows Update no puede ejecutarse durante la suspensión.

Y es gratis.

CarlF
fuente
Buena idea, pero no resuelve el problema cuando el OP tiene que hacer una actualización de Windows.
ChrisF
1
He pensado en eso, la suspensión y la hibernación realmente no hacen nada por mí. No es que quiera ahorrar energía, es principalmente que quiero volver a mi entorno de trabajo anterior después de un reinicio completo.
Doltknuckle
Mi pensamiento era que si estuvieras allí, podrías rehusar reiniciar hasta que sea conveniente.
CarlF
Lo que Doltknuckle pregunta es "¿Cómo restauro las cosas en las que estaba trabajando después de un reinicio?" Sin embargo, la pregunta que la gente sigue respondiendo es "¿Cómo evito que mi computadora se reinicie automáticamente?" Esta última es una buena pregunta, pero es completamente irrelevante para la pregunta que realmente se hizo.
Martha