如何程序控制任务栏自动隐藏 ( 积分: 100 )

  • 主题发起人 主题发起人 ZBJ2001_KF
  • 开始时间 开始时间
Z

ZBJ2001_KF

Unregistered / Unconfirmed
GUEST, unregistred user!
var<br>&nbsp;&nbsp;a:TAPPBARDATA;<br>begin<br>&nbsp;&nbsp;a.cbSize&nbsp;:=&nbsp;Sizeof(a);<br>&nbsp;&nbsp;if&nbsp;(SHAppBarMessage(ABM_GETSTATE,a)&nbsp;AND&nbsp;ABS_AUTOHIDE)&gt;0&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage('exist')<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;a.ucallbackmessage:=0;<br>&nbsp;&nbsp;&nbsp;&nbsp;a.lParam:=LParam(True);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHAppBarMessage(ABM_SETAUTOHIDEBAR,a);<br>&nbsp;&nbsp;end;<br>end;<br><br>以上从网上找的,根据实现不了。
 
//DisableTaskmgr(True);<br>procedure&nbsp;DisableTaskmgr(Key:&nbsp;Boolean);<br>Var<br>&nbsp;&nbsp;Reg:TRegistry;<br>Begin<br>&nbsp;&nbsp;Reg:=TRegistry.Create;<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;Reg.RootKey&nbsp;:=&nbsp;HKEY_CURRENT_USER;<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Reg.OpenKey('/Software/Microsoft/Windows/CurrentVersion/Policies/System',&nbsp;True)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Key&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reg.WriteString('DisableTaskMgr','1')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reg.WriteInteger('DisableTaskMgr',0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reg.CloseKey;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;Reg.Free;<br>&nbsp;&nbsp;end;<br>end;
 
1。用spy++查看到window任务栏的类名<br>2。用Findwindow函数取Handle<br>3。有了Handle那就你看着办了!
 
1。用spy++查看到window任务栏的类名<br>2。用Findwindow函数取Handle<br>3。有了Handle那就你看着办了!&nbsp;&nbsp;<br><br>这个方法&nbsp;最好了
 
var<br>&nbsp;&nbsp;hDesktop&nbsp;:&nbsp;THandle;<br>begin<br>&nbsp;&nbsp;hDesktop&nbsp;:=&nbsp;FindWindow('Progman',&nbsp;nil);<br>&nbsp;&nbsp;ShowWindow(hDesktop,&nbsp;SW_HIDE);<br><br>以上是控制桌面的显示与隐藏.
 
procedure&nbsp;TForm1.BitBtn4Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;hDesktop&nbsp;:&nbsp;THandle;<br>begin<br>&nbsp;&nbsp;hDesktop&nbsp;:=&nbsp;FindWindow('Shell_TrayWnd',&nbsp;nil);<br>&nbsp;&nbsp;ShowWindow(hDesktop,&nbsp;SW_HIDE);<br>end;<br><br>procedure&nbsp;TForm1.BitBtn5Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;hDesktop&nbsp;:&nbsp;THandle;<br>begin<br>&nbsp;&nbsp;hDesktop&nbsp;:=&nbsp;FindWindow('Shell_TrayWnd',&nbsp;nil);<br>&nbsp;&nbsp;ShowWindow(hDesktop,&nbsp;SW_NORMAL);<br>end;<br><br>以上是隐藏与还原任务栏
 
我要的是自动隐藏功能,不是隐藏功能。
 
晕,不管如何,别人回答了问题,你这样谁会给你回答问题.
 
我的意思是以上大部分实现的是隐藏任务栏,不是WINDOWS系统的设置任务栏自动隐藏功能。我只是把问题说清楚。我从网上搜了,只有一个判断是不是自动隐藏的例子
 
超级难问题,大家都是来摸鱼的(挣点分),我也不会n年了,<br>要是哪一天你会了,一定要记住通知我么.<br>建议你不要研究这个了.浪费时间.
 
delphi群:23981160,爱好d的都来
 
uses&nbsp;ShellApi就可以了;不过好像设置未起作用,读取状态的倒是没问题.
 
就是就是。读取状态可以。设置不行。我想一定能可以吧。查查MSDN吧
 
来自:delphi大男孩,&nbsp;时间:2007-10-17&nbsp;17:00:08,&nbsp;ID:3843409<br>delphi群:23981160,爱好d的都来&nbsp;&nbsp;<br><br><br>你贴的是你的QQ号吧.我加了不是群号啊..
 
参与的这么少啊
 
时代在天天进步,可各位的水平怎么没有见长啊。。。。。。。。。<br><br>给你们一个最笨的办法:<br><br>找一个注册表比较软件,然后手工设置一下自动隐藏,通过软件比较注册表的变化就知道怎么做了
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
677
import
I
I
回复
0
查看
559
import
I
I
回复
0
查看
611
import
I
后退
顶部