在我的程序启动的时候,如何判断任务栏"属性"->"自动隐藏"复选框是否选中,如果没选中,则自动选中!
解决方案 »
- 还是不太明白,delphi的类的属性加与不加property有何不同?
- 怎么样在日文系统上用的英文版delphi并把font改成courier new
- 怎样记录超过4位的小数
- 请教:有关IdTCPServer和IdTCPClient如何处理和发送带参数的命令?
- 在打印时怎样进行分页统计.
- 问一个很基础但初学者都遇到的问题,请帮忙
- 如何得到机器的网卡地址?
- 开发数据库程序,用谁的开发效率高,PB,delphi,C++builder?
- paodox数据库
- 将面向对象的思想贯穿始终--谈Delphi开发(提高篇)
- ADO连接网络数据库出错?在线等
- 很希望你们的帮助,想学多线程和DLL的最好有那些容易上手的书呢?
ShellApi; Function IsTaskbarAutoHideOn:boolean;
Var
AB : TAppBarData;
Begin
AB.cbSize := sizeof(AB);
Result :=(SHAppBarMessage(ABM_GETSTATE, AB)and ABS_AUTOHIDE) > 0;
End;
function ChangeTaskBarAutoHideOn(AutoHideTaskBar:Boolean):Boolean;
var
ABData : TAppBarData;
begin
Result:=False;
ABData.cbSize := SizeOf(ABData);
ABData.uCallbackMessage:=1;
if AutoHideTaskBar then
ABData.lParam:=1
else
ABData.lParam:=0;
Result := SHAppBarMessage(ABM_SETAUTOHIDEBAR, ABData)>0
end;
var
Shell_TrayWnd: HWND;
P_Wnd: HWND;
R: TRect;
iCount: integer;
begin
Shell_TrayWnd := FindWindow('Shell_TrayWnd', nil);
SetForegroundWindow(Shell_TrayWnd);
GetWindowRect(Shell_TrayWnd, r);
setcursorpos(r.Right - 1, r.Bottom - 1);
Mouse_Event(MOUSEEVENTF_RIGHTDOWN, r.Right - 1, r.Bottom - 1, 0, 0);
Mouse_Event(MOUSEEVENTF_RIGHTUP, r.Right - 1, r.Bottom - 1, 0, 0); keybd_event(ord('R'), 0, KEYEVENTF_EXTENDEDKEY, 0); //KEYDOWN£?
keybd_event(ord('R'), 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
//KEYUP P_Wnd := 0;
iCount := 0;
while P_Wnd = 0 do
begin
P_Wnd := FindWindow('#32770', nil); // '工作列及開始功能表 內容');
Sleep(10);
Inc(iCount);
if iCount > 65535 then Exit;
end;
SetWindowPos(P_Wnd, HWND_TOP, 0, 0, 1, 1, SWP_NOMOVE);
Application.ProcessMessages;
keybd_event(ord('U'), 0, KEYEVENTF_EXTENDEDKEY, 0); //KEYDOWN£?
keybd_event(ord('U'), 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
//KEYUP
// { Under WinXP:1102:Control ID of 'Auto Hide' }
// CheckDlgButton(FindWindowEx(P_Wnd,0,'SysTabControl32',nil), 1102, BST_CHECKED); PostMessage(P_Wnd, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(P_Wnd, WM_KEYUP, VK_RETURN, 0);
end;