dephi中如何实现一键切换隐藏与显示隐藏文件

jupiter418 2008-08-24 08:15:30
dephi中如何通过一个按钮实现隐藏与显示隐藏文件之间的切换。希望提供代码,谢谢!
...全文
950 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jupiter418 2008-08-25
  • 打赏
  • 举报
回复
还是没效果啊。
我看到注册表中CheckedValue已改为00000001了,但即使重启电脑,隐藏文件夹仍然看不到。
gyk120 2008-08-25
  • 打赏
  • 举报
回复
没效果?
你的 SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_idlist,nil, nil); 放在这里?我没这样试过不知道有没有用……
放在regfree后面试试……
jupiter418 2008-08-25
  • 打赏
  • 举报
回复
大侠,好事做到底,帮忙检查一下,为什么不行啊?

procedure TForm1.Button1Click(Sender: TObject);
var
myReg:TRegistry;
begin
myReg:=TRegistry.Create;
myReg.RootKey:=HKEY_LOCAL_MACHINE;
myReg.OpenKey('Software\Microsoft\windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL',True);
myReg.WriteInteger('CheckedValue',1);
SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_idlist,nil, nil);
myReg.CloseKey;
myReg.Free;
end;
oosmile 2008-08-25
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
myReg:TRegistry;
begin
myReg:=TRegistry.Create;
myReg.RootKey:=HKEY_LOCAL_MACHINE;
myReg.OpenKey('Software\Microsoft\windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL',True);
myReg.WriteInteger('CheckedValue',1);
SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_idlist,nil, nil);
myReg.CloseKey;
myReg.Free;
end;

那你就先看CheckedValue 的值啊,是1就改为0,是零就变1
gyk120 2008-08-25
  • 打赏
  • 举报
回复
use ...,registry,...
procedure TForm1.Button1Click(Sender: TObject);
var
r:Tregistry;
begin
r := Tregistry.Create;
r.RootKey := HKEY_LOCAL_MACHINE;
r.OpenKey('SOFTWARE\youkey',true);
r.Writestring('youval','11111');
showmessage(r.Readstring('youval'));
r.Free;
end;
寒……
上面是一个例子,你参照着改下
jupiter418 2008-08-25
  • 打赏
  • 举报
回复
请教修改键值函数是什么?
neweipeng 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liangpei2008 的回复:]
修改后用SHChangeNotify刷新一下
[/Quote]
gyk120 2008-08-25
  • 打赏
  • 举报
回复
对,忘记说了,不刷新的话要重启之后才能生效的
多谢liangpei2008的提醒和补充
liangpei2008 2008-08-25
  • 打赏
  • 举报
回复
修改后用SHChangeNotify刷新一下
gyk120 2008-08-25
  • 打赏
  • 举报
回复
HKEY_LOCAL_MACHINE\Software\Microsoft\windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL,
将CheckedValue键值修改为1即可显示,改为0就是隐藏……
程序……就一个注册表的修改,不至于很难吧
别忘了uses Registry
gyk120 2008-08-25
  • 打赏
  • 举报
回复
既然如此,你用模拟点击看下
procedure TForm1.Button1Click(Sender: TObject);
begin
application.Minimize;
keybd_event(92,0,0,0);
keybd_event(68,0,0,0);
keybd_event(68,0,KEYEVENTF_KEYUP,0);
keybd_event(92,0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event(93,0,0,0);
keybd_event(93,0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event(69,0,0,0);
keybd_event(69,0,KEYEVENTF_KEYUP,0);
application.Restore;
end;
……在车上颠了几个小时,刚下来头还是晕的……
jupiter418 2008-08-25
  • 打赏
  • 举报
回复
发现:
CheckedValue已改为0后,通过工具-文件夹选项-查看-显示所有文件,将显示不了隐藏文件;
CheckedValue已改为1后,还是要通过工具-文件夹选项-查看-显示所有文件,隐藏文件才能显示。

而我是想实现:
按一下按钮可以显示隐藏文件,再按一下就又隐藏文件,从而代替“工具-文件夹选项-查看-显示所有文件”冗长的过程。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧