Inicie o Windows com programas abertos anteriormente

6

Estou executando o Windows 7 de 64 bits. Quando desligo meu computador, tenho muitos programas abertos na área de trabalho. Quando eu inicio meu computador, quero que esses programas sejam abertos automaticamente. Estou ciente do SaveMyCache, isso requer que eu marque as caixas toda vez que eu desligar meu computador, eu quero algo automático.

    
por Mowing Bar 18.07.2014 / 16:41

3 respostas

9

Algo que se aproxime do que você está perguntando: Ative a hibernação no gerenciamento de energia e, em vez de desligar seu PC, use a opção de hibernação. Isso desativa a energia do seu PC e restaura o seu PC para o estado em que estava quando você desligou o sistema.

Além disso, não há nenhuma funcionalidade incorporada que faça o que você está pedindo. O gerenciador de reinicialização do Windows foi criado para situações como essa, mas o software precisa suportar isso e isso geralmente é usado apenas ao instalar um novo software ou quando as atualizações são instaladas.

    
por 18.07.2014 / 16:55
2

Então eu decidi criar este script do Powershell.

projeto do Github aqui .

Versão com a captura dos argumentos do processo também

As ações realizadas:

  1. Excluir o arquivo anterior.
  2. Verifique os processos em execução.
  3. Filtre a lista pelo caminho que contém uma palavra específica ( Programa ), que pressupõe que todos os programas estejam instalados em Arquivos de programas ou Arquivos de programa (x86)
  4. Obtenha os caminhos absolutos para executáveis de processos que foram encontrados
  5. Gravar caminhos para o arquivo temporário no diretório temporário.
  6. Mova o arquivo temporário para o diretório de destino que está na pasta de inicialização do usuário.

Prós:

  • Escrito em powershell, então o código é nativo e deve funcionar em Windows Vista e acima.
  • Obras.

Contras:

  • Programas instalados em outro caminho - não em arquivos de programa - não é pego nesta versão. Isso é obviamente necessário para evitar o início de processos nativos do Windows como o explorer.exe e assim por diante. No entanto, se você tem um caminho como D:\Apps onde você também instala programas, você pode modificar a linha

    $ _. Path -match "Programa"

    para

    $ .Path -match "Programa" -ou $ .Path -match "D: \ Apps"

    e funcionará do mesmo jeito.

Agora, o código do 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

Simpy copie este código e cole-o no arquivo shutdown.ps1 em sua área de trabalho. Salve e feche este arquivo. Agora crie um segundo arquivo shutdown.bat e coloque o código

powershell shutdown.ps1
shutdown -s -t 1

neste arquivo. Salve e feche o arquivo bat. Agora você pode mover os dois arquivos para o diretório preferido. Depois disso, você pode clicar com o botão direito do mouse em um arquivo bat e criar um atalho para este arquivo. Em seguida, clique com Botão direito do mouse em um atalho desta vez e escolha Pin to Start Menu . Isso adicionará o atalho ao seu menu Iniciar.

Agora, toda vez que você quiser fechar o PC e salvar os programas em execução para uma inicialização automática após a inicialização, você poderá usar esse atalho.

Editar - Incluindo argumentos da linha de comando

Como você também deseja salvar os argumentos da linha de comando do processo, é necessário alterar as seções Matrizes de preenchimento e Criar arquivo para:

# 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
}

A mudança é com o uso do WMI agora, em vez de get-process. Além disso, as aspas devem ser omitidas desta vez.

Aviso

Caso você tenha um erro ao executar o script, você provavelmente terá uma configuração incorreta para a política de execução do PowerShell. Para alterar isso, você deve abrir o console do powershell como administrador e digitar Set-ExecutionPolicy Unrestricted e digitar Y quando solicitado a confirmar. É isso aí. Deve funcionar bem.

    
por 18.07.2014 / 23:17
0

Outra opção é puxar links para o software para iniciar a pasta 'Startup' no menu Iniciar - é lento, mas funciona. No entanto, ele não abre os programas abertos "anteriormente", apenas um conjunto predefinido.

    
por 18.07.2014 / 17:26