Restaurando o software aberto após um evento de reinicialização no Windows

36

Acho que, no final de um longo dia, às vezes tenho um grande número de programas em execução. Tudo o que precisarei usar amanhã. Normalmente, isso não é um problema; posso simplesmente bloquear a máquina e voltar amanhã. Meu problema surge quando o Windows Update é iniciado no meio da noite e a força reinicia o meu computador. Por sua vez, fecha todo o meu software aberto. É claro que guardo tudo regularmente para não perder nada, mas perco tempo reabrindo todos esses recursos sempre que há uma reinicialização.

[EDITAR]

Devo esclarecer que ainda quero reiniciar o computador quando uma atualização ocorrer. Impedir a reinicialização atrasa apenas o problema até mais tarde. Eu deveria ter sido mais específico, pois quero recuperar meu ambiente de trabalho após uma reinicialização por qualquer motivo. Coisas como manutenção programada, perda de energia, atualizações e instalações de software.

[EDITAR]

Não posso simplesmente configurá-los para iniciar na inicialização porque esses arquivos mudam de semana para semana. Por isso, preciso de algo que monitore o que tenho aberto e me dê a opção de "recuperar" essas sessões de software ao efetuar login novamente.

Alguém tem alguma sugestão sobre o que eu posso fazer? Eu estaria disposto a comprar software para fazer isso por mim, se essa for a única opção.

obrigado

Doltknuckle
fonte
Na verdade, lembro-me de ler em algum lugar que o Win7 deveria ter um recurso parecido com este, embora eu ache que eles não foram capazes de prepará-lo a tempo do lançamento. Portanto, pode estar chegando no futuro.
eidylon
1
O comando "shutdown / g" parece que pode ser acoplado ao recurso de recuperação automática de falhas de um programa para fazer 75% do que estou procurando. Vou ter que fazer mais testes para ver se isso funciona.
Doltknuckle
1
o comando shutdown realmente não funciona como esperado ... o que eu realmente preciso é uma maneira de monitorar os arquivos abertos no momento. Depois, posso criar um script dinâmico para reiniciar esses arquivos.
Doltknuckle
1
6 anos depois e este ainda não é um recurso do Windows ... OSX tem isso há anos!
GiH 31/03
7 anos e contando .....
iAmLearning 20/09

Respostas:

16

É tão chato que ainda não existe uma solução elegante para esse problema!

Isso acontece com todos nós: o Windows simplesmente fica mais lento (um tipo de vazamento de memória está causando isso, pois você é um típico 132 guias abertas no chrome, 57 abertas no firefox, 24 janelas abertas no total, fazendo um complexo operação envolvendo todos eles ao mesmo tempo em que você trabalha em cima de um emprego, em cima de um emprego ... tipo de cara), e fica tão lento que você realmente começa a perder tempo apenas esperando que as coisas aconteçam no seu computador ..... para que você simplesmente tenha que redefinir sua sessão que vem se acumulando lentamente nas últimas 5 semanas e finalmente sucumbir ao pesadelo que está recriando sua intrincada bagunça de janelas e arquivos abertos e pastas do explorador, após as temidas janelas reiniciar.

BEM.

Passei muito tempo procurando soluções elegantes que não o tornassem um pesadelo e essa é minha conclusão e minha atual 'solução'.

Eu encontrei apenas um programa que pode salvar e restaurar os programas E os arquivos que eles abriram - e é realmente suave, principalmente. É Twinsplay (Professional Edition) . ( CacheMyWork e SmartClose ambos restauram apenas os programas, mas não os arquivos.)

No entanto, o Twinsplay tem alguns problemas e ressalvas reais (e também não é freeware, custa US $ 40):

  1. Ao restaurar o firefox, parece duplicar TODAS as guias dentro, ele deve ser codificado para observar o que você carregou dentro do firefox (como se cada guia fosse um 'arquivo', como como restaurará fielmente todos os seus arquivos do word), portanto, se você Se o Firefox já está definido para abrir as guias da sessão anterior e tinha 100 guias abertas, tentará carregar 200 guias e geralmente será um desastre. Além disso, bagunça as abas fora de ordem !! (felizmente, ainda assim, pelo menos, mantenha as guias duplicadas em seu próprio 'grupo' começando após a última das guias originais, mas os dois grupos de guias têm a ordem interrompida; portanto, isso também interfere na ordem das guias originais). Esse mesmo problema, com certeza, aconteceria no Chrome ... Não testei (não ousei!).

  2. O outro problema: para todos os programas em que é comum haver vários arquivos abertos (como Word, Photoshop, InDesign): se por algum motivo uma caixa de diálogo aparecer durante o carregamento do primeiro arquivo no programa (um erro de macro ou como no meu No InDesign, eu tinha um link de imagem ausente no primeiro documento) e, em seguida, todos os documentos após o primeiro não abrem porque o Twinsplay por design carrega todos os arquivos em seus programas ao mesmo tempo. E o Twinsplay não mostra em nenhum lugar da interface do usuário uma lista de arquivos da sessão salva (nem nos arquivos de configuração / logs do Appdata, verifiquei); portanto, se esse cenário acontecer, você provavelmente esquecerá o quinto arquivo no InDesign que você estavam trabalhando há 4 semanas e ainda precisam terminar!

SO: o método que estou fazendo depois de tudo isso é:

Examino cada arquivo aberto na barra de tarefas, copio o caminho do arquivo (o que é bastante fácil de fazer rapidamente), se você conhece as caixas de diálogo e os menus e os atalhos do teclado do Windows e qualquer arquivo ou janela em que eu estivesse em particular. detectar ou destacar certas coisas, etc., anote isso para não esquecer 10 minutos depois. Aqui está um exemplo fictício do que quero dizer.

Depois de reiniciar, basta colar o caminho de cada arquivo na barra de endereços do Windows Explorer para abrir cada arquivo, um de cada vez, com o programa associado. Se eu tivesse um arquivo que não estivesse realmente aberto no programa associado (como um TIFF no Photoshop), acho que anotaria isso para que eu lembre.

-

AGORA. Minha solução não é muito ruim, mas ainda leva algum tempo para copiar o caminho do arquivo de todos os arquivos abertos.

O ideal seria ter uma ferramenta que descreva todos os caminhos de arquivos e programas do Windows ("C: \ photoshop.exe" "C: \ image.TIFF") de uma só vez e, em seguida, você poderá colocar essas informações em scripts em lote para abrir cada arquivo com o programa em que estava, um por um ou todos de uma vez no mesmo lote, se desejar. Seria perfeito.

Para acelerar as coisas, existe alguma maneira de copiar os caminhos de arquivos de TODOS os arquivos abertos do Windows ativo? Uma pequena ferramenta para cuspir caminhos de arquivos de todos os itens atuais da barra de tarefas deve ser bastante fácil! Se o Twinsplay puder fazer isso, obviamente isso pode ser feito de alguma forma ... Eu fiz essa pergunta em um post separado, aqui . Esse código poderia fazer isso?

Como a Microsoft não nos forneceu uma solução elegante com apenas um clique no sistema operacional, não devemos tentar um método de restauração de sessão semelhante a hibernação do Santo Graal com mero acesso de terceiros ou, por exemplo, mexer no cache de hibernação para recarregar hacks etc.

A reinicialização do Windows deve ser uma atualização para limpar a RAM e liberar tudo, sem reter tudo, por isso é melhor fazer uma reabertura manual de seus arquivos (anotando alguns detalhes de onde em certos arquivos você estava fazendo ), mas ISTO da maneira mais elegante possível.

Comunidade
fonte
Usar o Twinsplay é provavelmente a melhor opção que tenho neste momento. Funcionará para a maioria dos usuários e parece ser uma ótima ferramenta. A solução real para isso é alterar o comportamento do usuário para que eles parem de ter esses problemas.
Doltknuckle
para resolver os 'bugs' no twinsplay, como eu disse antes, a melhor solução, de longe, acho que seria ter um arquivo em lotes com um clique / minúsculo exe para copiar os caminhos de todos os arquivos abertos e os programas em que estão, então você também pode configurar as coisas para que sejam apenas mais um clique para restaurar após a reinicialização. embora irritante que parece que eu perguntei a minha pergunta sobre isso de forma pouco clara assim que um mod fechou a questão :(.
4
Acrescentarei: o Windows possui algo embutido no qual ele é usado para reiniciar após a instalação de determinadas atualizações e uma reinicialização forçada, e restaurará muitas / a maioria das janelas ao estado original. Assim, não é algum mecanismo de nível OS para isso, não tenho certeza o que é nem como acessível seria para nós usar.
boomhauer
1
@boomhauer Registrando para reiniciar o aplicativo observa que os aplicativos que "[Registrar] para reiniciar o aplicativo também farão com que o Windows reinicie automaticamente o aplicativo depois que o computador for reiniciado ... devido a uma atualização de software".
FriendlyGuy
6

Ouvi pessoas usarem um programa chamado CacheMyWork . Ele reabrirá os aplicativos que você abriu, mas não abrirá os arquivos em que está trabalhando (a menos que o programa tenha esse recurso).

Outra opção é que você pode evitar o problema e executar seus aplicativos em uma máquina virtual. Então, quando você voltar para casa, poderá pausar a máquina virtual e persistirá o estado da máquina virtual em disco. Em seguida, retome a máquina virtual quando você retornar. Isso evita o problema, porque um dia você precisará atualizar / corrigir o sistema operacional da máquina virtual. Além disso, você provavelmente sofrerá um impacto no desempenho (o tamanho depende do que você faz).

Quando se trata de deixar as coisas em aberto e as máquinas reiniciarem dos patches, eu estou lá com você.

Scott McClenning
fonte
1
A sugestão do software é um passo na direção certa. Acho que o problema é que ele não monitora ativamente os arquivos abertos, portanto não pode restaurá-los mais tarde. Na pior das hipóteses, talvez eu precise hackear um script que detecte quais arquivos estão abertos e os configure para iniciar em ordem.
Doltknuckle
1
Concordo, desejo que o CacheMyWork monitore os documentos abertos (como o Windows Recent Docuemtns) e execute novamente os documentos na inicialização. Assim como clicar duas vezes em um documento do Microsoft Word acionará o Word, o CacheMyWork pode percorrer um longo caminho executando a inicialização dos meus documentos.
Scott McClenning
4

2016 e ainda nada da Microsoft ... decidi experimentá-lo vbscript. Não é ótimo, mas dispara todos os programas de backup e, em alguns casos, até é o Windows.

O primeiro script salva todos os processos em um arquivo de texto na pasta especificada (área de trabalho) e todos os nomes de janelas em um arquivo separado. O segundo script lê e inicia todos os processos do arquivo gravado pelo primeiro script. Ambos devem ser salvos com a extensão .vbs. Além disso, o salvamento dos nomes das janelas requer a instalação do Microsoft Word (não pergunte ..).

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

Ainda não encontrei uma maneira de obter programaticamente os caminhos de arquivo que o user78017 copia toda vez que ele reinicia. Gostaria de saber quais programas esse script abre todos os arquivos abertos e para quais programas não. Se alguém quiser limpar esse código, fique à vontade para editar a postagem.

Fr4nc3sc0NL
fonte
1

Tem este aqui no feed RSS hoje:

O CacheMyWork é um utilitário útil que permite reiniciar o Windows sem perder o seu lugar no trabalho. Ele cria uma lista de verificação dos aplicativos abertos no momento e reinicia os aplicativos que você selecionou na próxima vez que efetuar logon no computador.

Fonte

Steiv
fonte
+1 Ha, que fofo ... descoberta muito boa (mas já havia sido postada por Scott).
0

Eu tenho o mesmo problema. Após uma reinicialização, tenho pelo menos meia hora de reinicialização de todos os processos que normalmente uso.
Encontrei um utilitário que tem a capacidade de retornar ao status de pré-inicialização, o Slimbrowser . Eu adoraria muito mais.

Dave
fonte
1
Encontrei maneiras de salvar as sessões do navegador (usar o Firefox) e da pasta (configuração do Windows) e reiniciá-las na inicialização. Ainda tenho que encontrar uma boa solução para o Office (Word, Excel, Outlook), bloco de notas e leitor de adobe.
Doltknuckle
Para um editor, a ultra-edição tem esse recurso. Pessoalmente, prefiro o kedit por causa dos recursos de script.
Dave
-1

Não é exatamente o que você pediu, mas você pode simplesmente colocar o computador no modo "suspensão" da noite para o dia. A menos que você realmente tenha processos em execução, isso não mudará nada sobre como funciona, levará apenas um ou dois segundos para suspender pela manhã e o Windows Update não poderá ser executado durante a suspensão.

E é grátis.

CarlF
fonte
Boa ideia, mas não resolve o problema quando o OP precisa fazer uma atualização do Windows.
ChrisF
1
Eu pensei nisso, suspensão e hibernação realmente não fazem nada por mim. Não é que eu queira economizar energia, é principalmente o desejo de voltar ao meu ambiente de trabalho anterior após uma reinicialização forçada.
Doltknuckle
Meu pensamento era que, se você estivesse lá, poderia se recusar a reiniciar até que fosse conveniente.
CarlF 12/01/10
O que Doltknuckle está perguntando é "Como restauro as coisas em que estava trabalhando após uma reinicialização?" A pergunta que as pessoas continuam respondendo, no entanto, é "Como evito que meu computador seja reiniciado automaticamente?" A última é uma boa pergunta, mas é completamente irrelevante para a pergunta que realmente foi feita.
Martha