您好,這是我第一次使用這個網站,所以我希望我沒有以錯誤的格式提出問題。
無論如何,正如標題所說,我有類似的問題到不久前回答的一個話題它有答案,但當我嘗試運行它來測試它時,它不適用於我運行 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
- 然後運行腳本並找到(為下一則訊息輸入)等於您的語言的字串“設定為桌面和背景”,然後按 CTRL+C 儲存訊息。
- 打開記事本並按 CTRL+V 以便貼上訊息。將此名稱複製到腳本中。
基於這
如果你沒有犯錯的話,至少可以在 Windows 7 中運作。