gpt4 book ai didi

c# - 如何以编程方式移动 Windows 任务栏(需要两个)

转载 作者:太空狗 更新时间:2023-10-29 22:01:51 29 4
gpt4 key购买 nike

首先,我知道 SO 中有一个类似措辞的问题,但没有得到正确回答,围绕它的大部分讨论都落在了“你不应该那样做”上。

所以让我们从基础开始。为什么需要这个。

我在一家公司工作,该公司向我们的员工分发了几十台平板电脑上网本。如您所知,上网本的分辨率相对较低,屏幕空间非常非常重要。

当我们将上网本转为平板电脑模式时,我们会用它们来书写,而竖屏模式对此要舒适得多。问题是,当屏幕旋转时,任务栏保持在与横向相同的相对边缘。如果它在底部,它会在纵向上保持在底部。但是因为我们已经在横向的左边缘使用它,所以我们最终任务栏占据了可用屏幕的非常明显的百分比。

我已经有了用于监听分辨率更改事件的结构,并且它可以正常工作,但是我看到的所有关于将消息传递到任务栏窗口的示例最终都无法移动它。就像被强行忽略了一样。

有什么办法可以实现吗?我目前正在使用c#,但这不是一个明确的要求,我可以很容易地实现从c++或vb的转换,而且p/invokes并不可怕。

操作系统是windows 7。

[编辑:我已经尝试过使用 SETPOS 的 SHAppBarMessage,它在 Windows 7 上不起作用。我已经尝试过 MoveWindow 和 SetWindowPos pinvokes,在 Windows 7 的任务栏上也不起作用。对于其他窗口,它工作得很好。而且我确信我有正确的句柄,因为如果我使用 ShowWindow pinvoke 来隐藏它,它真的会隐藏,尽管我无法为其他任何东西回收未使用的空间。这些方法在 XP 上确实有效,这就是它如此令人沮丧的原因。]

非常感谢您的宝贵时间,若昂科雷亚

最佳答案

您是否尝试过以 Shell_TrayWnd 为类的 FindWindow(),然后使用 SetWindowPos 来移动窗口?

但不确定 Windows 会如何处理。

还有特定的 API 可以处理 AppBar(任务栏是什么),查看:

http://bytes.com/topic/c-sharp/answers/247701-moving-windows-takbar

关于c# - 如何以编程方式移动 Windows 任务栏(需要两个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760982/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com