簡體   English   中英

如何以編程方式移動Windows任務欄(取兩個)

[英]How to programmatically move windows taskbar (take two)

首先,我知道在SO中有一個類似的措辭問題,但它沒有得到適當的回答,並且圍繞它的大部分討論落到了“你不應該這樣做”。

讓我們從基礎開始。 為什么需要這樣做。

我在一家公司工作,向我們的員工發放了幾十台平板電腦上網本。 如您所知,上網本的分辨率相對較低,屏幕空間非常非常重要。

當我們將上網本旋轉到平板電腦模式時,我們使用它們進行書寫,而肖像模式則更加舒適。 問題是,當屏幕旋轉時,任務欄與景觀保持在相同的相對邊緣。 如果它在底部,則它在縱向上保持在底部。 但是由於我們已經在橫向的左邊緣上使用它,我們最終得到的任務欄占據了可用屏幕的非常明顯的百分比。

我已經有了用於偵聽分辨率更改事件的結構,並且它正常工作,但是我看到的關於將消息傳遞到任務欄窗口的所有示例最終都無法移動它。 就像被強行忽略一樣。

有沒有辦法實現這個目標? 我目前正在使用c#,但這不是一個明確的要求,我可以很容易地實現從c ++或vb的轉換,而p / invokes並不可怕。

操作系統是Windows 7。

[編輯:我已經嘗試過SHAppBarMessage,使用SETPOS,它在Windows 7上不起作用。我嘗試過MoveWindow和SetWindowPos pinvokes,也不能在任務欄上的Windows 7上運行。 對於其他窗戶,它工作得很好。 而且我確信我有正確的句柄,因為如果我使用ShowWindow pinvoke隱藏它,它真的隱藏了,雖然我不能回收未使用的空間用於其他任何東西。 這些方法確實適用於XP,這就是它如此令人沮喪的原因。

非常感謝你的時間,Joao Correia

您是否嘗試使用Shell_TrayWnd作為類的FindWindow(),然后使用SetWindowPos來窗口?

不知道Windows會如何采取這種方式。

還有與AppBar有關的特定API(任務欄是什么),請查看:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM