이전에 열려 있던 프로그램으로 Windows를 시작합니다.

이전에 열려 있던 프로그램으로 Windows를 시작합니다.

저는 Windows 7 64비트를 실행하고 있습니다. 컴퓨터를 종료하면 바탕 화면에 많은 프로그램이 열려 있습니다. 컴퓨터를 시작할 때 이러한 프로그램이 자동으로 열리도록 하고 싶습니다. 저는 SaveMyCache를 알고 있습니다. 이를 위해서는 컴퓨터를 종료할 때마다 확인란을 선택해야 하며 자동 기능을 원합니다.

답변1

귀하가 요구하는 것과 비슷한 내용은 전원 관리에서 최대 절전 모드를 활성화하고 PC를 종료하는 대신 최대 절전 모드 옵션을 사용하는 것입니다. 이렇게 하면 PC의 전원이 꺼지고 시스템을 끌 때의 상태로 PC가 복원됩니다.

그 외에는 요청한 작업을 수행하는 내장 기능이 없습니다. Windows 다시 시작 관리자는 이와 같은 상황을 위해 만들어졌지만 소프트웨어는 이를 지원해야 하며 일반적으로 새 소프트웨어를 설치하거나 업데이트를 설치할 때만 사용됩니다.

답변2

그래서 저는 이 Powershell 스크립트를 만들기로 결정했습니다.

Github 프로젝트는 여기.

프로세스 인수도 캡처하는 버전입니다.

수행된 작업:

  1. 이전 파일을 삭제하세요.
  2. 실행 중인 프로세스를 확인하세요.
  3. 특정 단어가 포함된 경로로 목록을 필터링합니다(프로그램) 이는 모든 프로그램이 다음 중 하나에 설치되어 있다고 가정합니다.프로그램 파일또는프로그램 파일(x86)
  4. 발견된 프로세스의 실행 파일에 대한 절대 경로를 가져옵니다.
  5. 임시 디렉터리에 임시 파일에 대한 경로를 씁니다.
  6. 임시 파일을 사용자의 시작 폴더에 있는 대상 디렉터리로 이동합니다.

장점:

  • Powershell로 작성되었으므로 코드는 기본이며 Windows Vista 이상에서 작동해야 합니다.
  • 공장.

단점:

  • 프로그램 파일이 아닌 다른 경로에 설치된 프로그램은 이 버전에서 선택되지 않습니다. 물론 explorer.exe 등과 같은 기본 Windows 프로세스를 시작하지 않으려면 필요합니다. 그러나 프로그램도 설치하는 경로가 있는 경우 D:\Apps다음 줄을 수정할 수 있습니다.

    $_.Path -일치 "프로그램"

    에게

    $.Path -match "프로그램" -또는 $.Path -match "D:\Apps"

    그리고 그것은 모두 똑같이 작동할 것입니다.

이제 스크립트 코드는 다음과 같습니다.

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

shutdown.ps1이 코드를 복사하여 데스크톱의 파일에 붙여넣으세요 . 이 파일을 저장하고 닫습니다. 이제 두 번째 파일을 만들고 shutdown.bat코드를 입력하세요.

powershell shutdown.ps1
shutdown -s -t 1

이 파일에. bat 파일을 저장하고 닫습니다. 이제 두 파일을 모두 원하는 디렉터리로 이동할 수 있습니다. 그런 다음 Right Mouse Buttonbat 파일을 클릭하고 이 파일에 대한 바로가기를 만들 수 있습니다. 그런 Right Mouse Button다음지름길이번엔 선택하고시작 메뉴에 고정. 그러면 시작 메뉴에 바로가기가 추가됩니다.

이제 PC를 닫고 부팅 후 자동 시작을 위해 실행 중인 프로그램을 저장하려고 할 때마다 이 바로가기를 사용할 수 있습니다.


편집하다-명령줄 인수 포함

프로세스 명령줄 인수도 저장하고 싶으므로 Filling Arrays 및 Creating file 섹션을 다음과 같이 변경해야 합니다.

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

변경 사항은 이제 get-process 대신 WMI를 사용하는 것입니다. 또한 이번에는 따옴표를 생략해야 합니다.


알아채다

스크립트를 실행할 때 오류가 발생하는 경우 powershell에 대한 실행 정책 설정이 잘못되었을 수 있습니다. 이를 변경하려면 관리자 권한으로 powershell 콘솔을 열고 입력 하고 확인하라는 메시지가 표시되면 Set-ExecutionPolicy Unrestricted입력해야 합니다 . Y그게 다야. 잘 작동합니다.

답변3

또 다른 옵션은 소프트웨어에 대한 링크를 시작 메뉴의 '시작' 폴더로 끌어오는 것입니다. 느리지만 작동합니다. 하지만 '이전에' 열려 있던 프로그램은 열리지 않고 사전 설정 세트만 열립니다.

관련 정보