設定 Win XP 的桌布 |
|
HipHopRover
一般會員 發表:4 回覆:0 積分:0 註冊:2004-01-06 發送簡訊給我 |
<1>
我實驗後發現,用 SystemParametersInfo 這個 API,好像只能用 bmp 檔案去作桌面圖片。
所以我就先把選取到的照片,存成一個 pdWallPaper.bmp 檔案。
然後再用 SystemParametersInfo // ---- 更改桌布的程式段 AnsiString WallPaperPath="C:\\pdWallPaper.bmp";
SingleImg->Picture->Bitmap->SaveToFile(WallPaperPath);
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, WallPaperPath.c_str() , SPIF_UPDATEINIFILE ); // ---- <2>
另外,我測試了改變桌布的擺放方式。
但只能使用「置中」和「延展」兩種方式。 (並列顯示無法用此法達到,目前我也找不到方式) 使用 TRegistry 元件去更改 HKEY_CURRENT_USER\Control Panel\Desktop\WallpaperStyle 的值
WallpaperStyle=0 置中
WallpaperStyle=2 延展 // ---- 更改 WallpaperStyle 的程式段 TRegistry *chgStyle=new TRegistry
chgStyle->RootKey=HKEY_CURRENT_KEY;
chgStyle->OpenKey("Control Panel\\Desktop",false);
chgStyle->WriteString("WallpaperStyle",2);
chgStyle->CloseKey();
chgStyle->Free(); // ---- 然後再下達 <1> 的程式段即可做更改桌面的動作 ----
以上的方式用 BCB 6.0 Enterprise Suite Windows XP sp1 測試通過
寫出來分享,如果有其他方法的朋友們也可以一起討論。 ^^
|
chtai
高階會員 發表:68 回覆:238 積分:116 註冊:2004-05-21 發送簡訊給我 |
HipHopRover你好
無意間看到這篇文章,剛好我知道怎麼透過regedit調整桌布位置
就順手跟大家分享一下。
在[HKEY_CURRENT_USER\Control Panel\Desktop]底下建立或覆寫以下兩者的值
Name: Wallpaperoriginx, Wallpaperoriginy
Type: REG_SZ (String Value)
Value: Distance in Pixels
因為它的offset value是從桌布的center算起,所以可以是正的也可以是負的.
------
My Web: http://nelson.csie.us My Blog: http://blog.nelson.csie.us |
浮雲笑
一般會員 發表:2 回覆:6 積分:1 註冊:2004-02-11 發送簡訊給我 |
根據在下在win2000 裡面比對regedit檔的結果發現
TRegistry *Reg = new TRegistry;
Reg->RootKey=HKEY_CURRENT_USER;
Reg->OpenKey("\\Control Panel\\Desktop",false);
/*排列
Reg->WriteString("WallpaperStyle",0);
Reg->WriteString("TileWallpaper",1);
*/
/*置中
Reg->WriteString("TileWallpaper",0);
Reg->WriteString("WallpaperStyle",0);
*/
/*延展
Reg->WriteString("TileWallpaper",0);
Reg->WriteString("WallpaperStyle",2);
*/
Reg->CloseKey();
Reg->Free(); 發表人 - 浮雲笑 於 2005/02/14 23:50:07
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |