透過腳本 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
  • 然後運行腳本並找到(為下一則訊息輸入)等於您的語言的字串“設定為桌面和背景”,然後按 CTRL+C 儲存訊息。
  • 打開記事本並按 CTRL+V 以便貼上訊息。將此名稱複製到腳本中。

基於

如果你沒有犯錯的話,至少可以在 Windows 7 中運作。

相關內容