vb實現桌面牆紙自動更換

2021-04-19 00:05:04 字數 2257 閱讀 9139

看著大兒子的**,突然想要將所有兒子的**都作為牆紙。而且打算每次開機都換一張**作為桌面。

所以就查了查資料,做了乙個桌面的自動更新程式,只要將其快捷方式放入啟動組內就可以了。

下面說說**吧:

setkeyvalue和setvalueex是在網上抄來的對登錄檔進行操作的函式,最後乙個setdesktop的函式就是將你的位址imgstr直接設定為牆紙的函式了。

private sub setkeyvalue(skeyname as string, svaluename as string, vvaluesetting as variant, lvaluetype as long, lpredefinedkey as long)

lretval = regopenkeyex(lpredefinedkey, skeyname, 0, key_all_access, hkey)

lretval = setvalueex(hkey, svaluename, lvaluetype, vvaluesetting)

regclosekey (hkey)

end sub

private function setvalueex(byval hkey as long, svaluename as string, ltype as long, vvalue as variant) as long

dim lvalue as long

dim svalue as string

select case ltype

case reg_sz

svalue = vvalue & chr$(0)

setvalueex = regsetvalueexstring(hkey, svaluename, 0&, ltype, svalue, len(svalue))

case reg_dword, reg_binary

lvalue = vvalue

setvalueex = regsetvalueexlong(hkey, svaluename, 0&, ltype, lvalue, 4)

end select

end function

private sub setdeskimage(index as long)

'寫入登錄檔

if index = 1 then

'設定居中

setkeyvalue "control panel/desktop", "tilewall*****", "0", reg_sz, hkey_current_user

setkeyvalue "control panel/desktop", "wall*****style", "0", reg_sz, hkey_current_user

'設定平鋪

elseif index = 2 then

setkeyvalue "control panel/desktop", "tilewall*****", "0", reg_sz, hkey_current_user

setkeyvalue "control panel/desktop", "wall*****style", "2", reg_sz, hkey_current_user

elseif index = 3 then

'設定拉伸

setkeyvalue "control panel/desktop", "tilewall*****", "1", reg_sz, hkey_current_user

setkeyvalue "control panel/desktop", "wall*****style", "0", reg_sz, hkey_current_user

end if

'更換牆紙

changewp = systemparametersinfo(spi_setdeskwall*****, 0, imgstr , spif_updateinifile )

'在登錄檔中記錄位置

setkeyvalue "control panel/desktop", "wall*****", imgstr , reg_sz, hkey_current_user

end sub

上面的方法完全可以立即進行牆紙的變換,但是不知道為什麼對於居中/對稱/平鋪的設定並不能立即見效。

但我想很多人都沒有這個需求,所以就不再介紹了,上面的應該可以滿足大多數人的要求了。:)

桌面牆紙路徑

hkey hkey tchar szoriginalwall max path tchar szwall max path dword dwbuflen max path regopenkeyex hkey current user,text control panel desktop 0,key ...

用C 設定桌面牆紙

網上有很多用其它語言來設定桌面桌布的方法,但是我沒有找到用 c 語言來寫的,由於自己需要在專案中做這樣乙個功能,所以通過察看其它語言寫的資料來自己用 c 寫了乙個這樣的程式。主要是同過 windows api 函式來設定桌布,然後還要通過寫登錄檔來設定桌布的顯示方式 中心 平鋪 拉伸 注意事項 首先...

VB 實現「顯示桌面」功能

在窗體上建立乙個 mand1按鈕 private declare sub keybd event lib user32 byval bvk as byte,byval bscan as byte,byval dwflags as long,byval dwextrainfo as long publ...