안녕하세요. 이 웹사이트를 처음 사용하는 것이므로 잘못된 형식으로 질문하지 않기를 바랍니다.
아무튼 제목처럼 저도 비슷한 문제가 있습니다얼마 전에 답변된 스레드에답변이 있었지만 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에서는 작동합니다.