看著大兒子的**,突然想要將所有兒子的**都作為牆紙。而且打算每次開機都換一張**作為桌面。
所以就查了查資料,做了乙個桌面的自動更新程式,只要將其快捷方式放入啟動組內就可以了。
下面說說**吧:
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...