应@橙子 同学的要求,放出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。
谢谢
好喜欢你的文章,详细又实在,谢谢,新年快乐