스크립트를 통해 시간에 따라 바탕 화면 배경 변경 Windows 8.1

스크립트를 통해 시간에 따라 바탕 화면 배경 변경 Windows 8.1

안녕하세요. 이 웹사이트를 처음 사용하는 것이므로 잘못된 형식으로 질문하지 않기를 바랍니다.

아무튼 제목처럼 저도 비슷한 문제가 있습니다얼마 전에 답변된 스레드에답변이 있었지만 Windows 8.1을 실행하는 내 컴퓨터에서 테스트하기 위해 실행하려고 하면 작동하지 않았습니다. 나는 이미지가 있는 곳의 경로를 변경하여 지침을 따랐다고 확신하며, 이미지가 작동하도록 하려면 무엇을 변경해야 하는지 또는 코드가 완벽하게 괜찮은지, 아니면 어딘가에서 엉망이 될 수 있는지 궁금합니다.

dim shell
Set shell = WScript.CreateObject("WScript.Shell")
wallpaper = "C:\path\to\wallpaper.jpg"
shell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
shell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True

나는 또한원본 코드하지만 시스템이 코드의 마지막 줄에 지정된 파일을 찾을 수 없다는 오류가 발생합니다.

어떤 도움이라도 주시면 감사하겠습니다!

답변1

이것은 잘못된 답변이므로 사용해서는 안 됩니다.

이 스크립트는 그림을 마우스 오른쪽 버튼으로 클릭하고 "바탕 화면 배경으로 설정"을 누르는 것을 에뮬레이트합니다. 스크립트 사용법이 명확해야 합니다 SetWallPaper "directory to picture", "filename of picture", "name context menu to run".

'File encoding should be in ANSI
SetWallPaper "C:\icons\", "Potato-icon.png", "Set as desktop &background"

Sub SetWallPaper(WallPaperFolder, WallpaperFile,VerbName)
dim objShell, objFolder, objFolderItem, objVerb, colVerbs
Set objShell = CreateObject("Shell.Application")
set objFolder=objShell.NameSpace(WallPaperFolder)
set objFolderItem=objFolder.ParseName(WallPaperFile)
set colVerbs=objFolderItem.Verbs
for each objVerb in colVerbs
    'msgbox objVerb ,0, "Press CTRL+C for copy text" 'uncomment for debug names in contextmenu
    if objVerb=VerbName then
        'x=msgbox(objVerb ,0, "omg found")
        objVerb.DoIt
        'Without the sleep command the change never takes effect on Win7.
        wscript.sleep(2000)
        wscript.quit
    end if
next
End Sub

그림을 마우스 오른쪽 버튼으로 클릭할 때 Windows의 "바탕 화면 배경으로 설정"에 다른 이름이 있는 경우:

  • 다음 줄의 주석 처리를 제거해야 합니다(작은따옴표 제거).colVerbs의 각 objVerb에 대해
  • 그런 다음 스크립트를 실행하고 해당 언어에 대해 "데스크톱 및 배경으로 설정"과 동일한 문자열을 찾은 다음(다음 메시지를 보려면 Enter를 누르세요) Ctrl+C를 눌러 메시지를 저장하세요.
  • 메모장을 열고 Ctrl+V를 누르면 메시지가 붙여넣어집니다. 이 이름을 스크립트에 복사합니다.

기반으로이것

실수하지 않으면 적어도 Windows 7에서는 작동합니다.

관련 정보