改变任务栏的状态(30分)

  • 主题发起人 主题发起人 Jamw
  • 开始时间 开始时间
J

Jamw

Unregistered / Unconfirmed
GUEST, unregistred user!
任务栏由AUTO HIDE状态变成ALWAYS ON TOP
或由ALWAYS ON TOP状态变成AUTO HIDE。(DELPHI)
 
如果隐藏和显示windows的任务条?仅仅调用以下的函数就可以.
procedure hidetaskbar;
//隐藏
var
wndhandle : thandle;
wndclass : array[0..50] of char;
begin

strpcopy(@wndclass[0], 'shell_traywnd');
wndhandle := findwindow(@wndclass[0], nil);
showwindow(wndhandle, sw_hide);
 
end;

 
procedure showtaskbar;
var
wndhandle : thandle;
wndclass : array[0..50] of char;
begin

strpcopy(@wndclass[0], 'shell_traywnd');
wndhandle := findwindow(@wndclass[0], nil);
showwindow(wndhandle, sw_restore);
end;

 
试试SHAppBarMessage,以下是获得状态
abState := SHAppBarMessage(ABM_GETSTATE, barData);
if (abState and ABS_ALWAYSONTOP) > 0 then
FAlwaysOnTop := True
else
FAlwaysOnTop := False;
if (abState and ABS_AUTOHIDE) > 0 then
FAutoHide := True
else
FAutoHide := False;
 
可以把以上的函数参数ABM_GETSTATE改为ABM_SETAUTOHIDEBAR
 
>>任务栏由AUTO HIDE状态变成ALWAYS ON TOP
msdn里很清楚的写了用程序是办不到的,只能用鼠标click,hehe
 
接受答案了.
 
后退
顶部