如何判断Windows任务栏的“自动隐藏”是否已启用?

时间:2009-06-13 04:48:47

标签: delphi winapi taskbar windows-explorer

如果Windows资源管理器任务栏设置为自动隐藏,我如何通过Delphi程序告诉?

4 个答案:

答案 0 :(得分:13)

在Windows XP及更高版本中,您可以使用ABM_GETSTATE消息调用SHAppBarMessage API。

语法:

SHAppBarMessage(ABM_SETSTATE, pabd);

pabd是指向APPBARDATA结构的指针 头文件是:shellapi.h。

如果要获取任务栏的状态,请使用ABM_GETSTATE消息。 你可以在delphi中调用这个api。

答案 1 :(得分:11)

真的想知道的是什么?是因为你想知道屏幕上可用的区域吗?

如果是这样,那么我相信您可以使用Screen.WorkAreaRect来确定可用的屏幕区域,其中排除了所有(永久)工具栏等。

答案 2 :(得分:1)

使用Win32 shell apis(IsTBAutohide等)
有关无证件的apis,请参阅Google网上论坛 永远不要阅读注册表(停止删除正确的答案,这是愚蠢的......)

答案 3 :(得分:-2)

你必须处理Windows注册表,因为这些信息都在那里。表示“autoohide”的值仅在用户使用其帐户

登录/注销时写入(读取)

负责存储此信息的注册表项位于 HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\ StuckRects2 唯一的东西是设置,它是第9个十六进制值 对于“自动隐藏”这个值 03 表示“自动隐藏”它是 02