新聞| | PChome| 登入
2007-10-25 23:09:24 | 人氣205| 回應0 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

如何改變桌布

原始來源:王國榮

Const SPI_SETDESKWALLPAPER = 20
Const SPIF_UPDATEINIFILE = &H1
Private Declare Function SystemParametersInfo Lib "user32" Alias _
   "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _
    ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long


 Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BMP圖檔名稱,  _
	 SPIF_UPDATEINIFILE)
 例如: 將桌面圖片設定成 c:\windows\setup.bmp
 Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", _
			   SPIF_UPDATEINIFILE)

 將桌面圖片清掉
 Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_UPDATEINIFILE)


但以上程式設定圖片之後, 必須等到下次 Windows 重新啟動時才生效, 如果希望設定
之後立刻生效, 則程式須修改如下:
Const SPIF_SENDWININICHANGE = &H2
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", _
			   SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE )

此外希望只有本次使用 Windows 時改變桌面圖片(下次開機時還原原狀), 則
程式如下:

Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", _
			  SPIF_SENDWININICHANGE ) ' 去掉 SPIF_UPDATEINIFILE

上述方法並不能設定圖片的顯示方式(包含「置於中央」、「並排」、及「展開」)
怎樣讓在改變桌面圖片時, 也設定顯示方式呢?

方法就是在呼叫 SystemParametersInfo 之前, 利用改變登錄資料庫的以下設定值:

    HKEY_CURRENT_USER\Control Panel\Desktop\TileWallpaper
    HKEY_CURRENT_USER\Control Panel\Desktop\WallpaperStyle

這兩個設定值的意義如下:

展開
TileWallpaper的設定值 WallpaperStyle的設定值 顯示方式
"0" "0" 置於中央
"0" "2" 並排顯示
"1" - 展開
註:所謂「展開」是當圖片與螢幕不等大時, 將圖片調整成語螢幕等大小, 這是 Windows 98 新增的
   功能, 但如果您的機器安裝有 IE 4.x, 則 Windows 95 也具備相同的功能。

台長: Kenny
人氣(205) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 教育學習(進修、留學、學術研究、教育概況) | 個人分類: 程式設計 |
此分類下一篇:取得檔案的圖示
此分類上一篇:如何取得與設定、刪除Registry內的值

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文