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

有帮助吗?

解决方案

在Windows XP和更高版本,您可以调用 SHAppBarMessage API与ABM_GETSTATE消息。

语法:

SHAppBarMessage(ABM_SETSTATE, pabd);

pabd是指向APPBARDATA结构体。结果, 头文件是:shellapi.h。

如果你想获得任务栏的状态,使用ABM_GETSTATE消息。 你可以调用这个API在Delphi中。

其他提示

什么是是,你的真正的想搞清楚?是不是因为你想知道是可用的屏幕面积是多少?

如果是这样,那么我相信你可以使用Screen.WorkAreaRect以确定可用的屏幕区域,其中的所有(常任)工具栏等被排除在外。

使用的Win32 API的壳(IsTBAutohide和其他),点击 见谷歌论坛对无证的API。结果 从来没有读过注册表(ANS停止删除正确的答案,这是愚蠢的......)

u必须处理Windows的注册表,因为这些信息在那里keept。指示“autoohide”值写入(读出)仅在用户登录/注销ONT与他的帐户

注册表键负责存储该信息位于 HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\ StuckRects2 在那里唯一的一点是设置,这是一个第九十六进制值 为 “自动隐藏上” 该值的 03 作为 “自动隐藏关”,是<强> 02

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top