应@橙子 同学的要求,放出TaskbarHider的主要功能代码,大家可据此自由发挥,完善改造出更好的小软件(分享一下最好了)。
设置自动隐藏的代码如下:
procedure AutoHideTaskBar(bHide: BOOL); const ABM_SETSTATE = 10 ; // 0x0000000a var apBar: APPBARDATA; begin apBar.cbSize := sizeof(apBar); apBar.hWnd := FindWindow('Shell_TrayWnd', nil); if apBar.hWnd >0 then begin if (bHide = TRUE) then apBar.lParam := ABS_AUTOHIDE else apBar.lParam := ABS_ALWAYSONTOP; SHAppBarMessage(ABM_SETSTATE, apBar); end; end;
判断自动隐藏状态的代码如下:
function IsTaskbarAutoHideOn : boolean; var ABData : TAppBarData; begin ABData.cbSize := sizeof(ABData); Result := (SHAppBarMessage(ABM_GETSTATE, ABData) and ABS_AUTOHIDE) > 0; end;
至于隐藏任务栏,就更加的简单了,代码如下:
ShowWindow(findwindow('Shell_TrayWnd',nil),SW_HIDE); ShowWindow(FindWindow('Button',nil),SW_HIDE);
注(第二句):由于自Vista系统之后,开始按钮独立于任务栏之外,故需单独隐藏,XP及之前系统,不需要这一句。
以上就是TaskbarHider的核心代码了,在参考网络资料的基础上,贡献了一部分脑细胞,就生出了这么个软件。
是不是很简单, 有需要的可稍微参考一下,如此文对您有任何一点点帮助,则足矣。
SHAppBarMessage函数除了此处的自动隐藏任务栏之外,还有其他的一些作用,可自行参考MSDN。
谢谢
好喜欢你的文章,详细又实在,谢谢,新年快乐