DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: palmcivetcn1
今日帖子: 16
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 sysease (sysease) ★☆☆☆☆ -
盒子活跃会员
2004/7/8 0:49:36
标题:
各位高手帮帮忙,解释一下! 浏览:1240
加入我的收藏
楼主: uses 
Registry; 


function RefreshScreenIcons : Boolean; 
const 
KEY_TYPE = HKEY_CURRENT_USER; 
KEY_NAME = 'Control Panel\Desktop\WindowMetrics'; 
KEY_VALUE = 'Shell Icon Size'; 
var 
Reg: TRegistry; 
strDataRet, strDataRet2: string; 


procedure BroadcastChanges; 
var 
success: DWORD; 
begin 
SendMessageTimeout(HWND_BROADCAST, 
WM_SETTINGCHANGE, 
SPI_SETNONCLIENTMETRICS, 
0, 
SMTO_ABORTIFHUNG, 
10000, 
success); 
end; 


begin 
Result := False; 
Reg := TRegistry.Create; 
try 
Reg.RootKey := KEY_TYPE; 
// 1. open HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics 
if Reg.OpenKey(KEY_NAME, False) then 
begin 
// 2. Get the value for that key 
strDataRet := Reg.ReadString(KEY_VALUE); 
Reg.CloseKey; 
if sDataRet <> '' then 
begin 
// 3. Convert sDataRet to a number and subtract 1, 
// convert back to a string, and write it to the registry 
sDataRet2 := IntToStr(StrToInt(strDataRet) - 1); 
if Reg.OpenKey(KEY_NAME, False) then 
begin 
Reg.WriteString(KEY_VALUE, strDataRet2); 
Reg.CloseKey; 
// 4. because the registry was changed, broadcast 
// the fact passing SPI_SETNONCLIENTMETRICS, 
// with a timeout of 10000 milliseconds (10 seconds) 
BroadcastChanges; 
// 5. the desktop will have refreshed with the 
// new (shrunken) icon size. Now restore things 
// back to the correct settings by again writing 
// to the registry and posing another message. 
if Reg.OpenKey(KEY_NAME, False) then 
begin 
Reg.WriteString(KEY_VALUE, strDataRet); 
Reg.CloseKey; 
// 6. broadcast the change again 
BroadcastChanges; 
Result := True; 
end; 
end; 
end; 
end; 
finally 
Reg.Free; 
end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
RefreshScreenIcons 
end; 


帮帮忙,最好是能一句一句的解释一下
解释后请发送到:achinacracker@163.com  谢谢~
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行93.75毫秒 RSS