2010-09-21 21 views
5

首先,我知道在SO中有類似的措詞問題,但它沒有得到妥善回答,圍繞它的大部分討論都落在了「你應該不要那樣做「。如何以編程方式移動窗口任務欄(帶兩個)

因此讓我們從基礎開始。爲什麼這是必要的。

我工作的公司向我們的工作人員發放了幾十塊平板電腦上網本。如你所知,上網本的分辨率相對較低,屏幕的房地產非常非常重要。

當我們將上網本旋轉到平板模式時,我們將它們用於書寫,縱向模式對此更加舒適。事情是,當屏幕旋轉時,任務欄與橫向保持相同的相對邊緣。如果它位於底部,它將停留在縱向底部。但是由於我們已經在景觀的左邊緣使用了它,因此我們最終會看到任務欄佔據了可用屏幕的非常顯着的百分比。

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

有什麼辦法可以達到這個目的嗎?我目前使用C#,但這不是一個明確的要求,我可以很容易地實現從C++或VB的轉換,並且p/invokes不是可怕的。

的操作系統是Windows 7

[編輯:我已經嘗試SHAppBarMessage,與SETPOS,它不會在Windows 7我已經試過的MoveWindow和SetWindowPos pinvokes工作,也不要在工作Windows 7在任務欄上。對於其他窗口,它工作得很好。我相信我有正確的手柄,因爲如果我使用ShowWindow pinvoke隱藏它,它確實隱藏,但我無法回收未使用的空間用於其他任何事情。這些方法在XP上做的工作,這就是爲什麼它如此令人沮喪。]

非常感謝您的寶貴時間, 若昂·科雷亞

+0

遺憾的無恥/凸點,但我仍然難倒了這一點。我甚至正在考慮一種不同的方法。在我檢測到旋轉後完全隱藏任務欄,並在旋轉時再次顯示它。但。即使我可以隱藏任務欄和開始按鈕「orb」,我無法回收桌面區域的空間。它始終將任務欄計數爲當前值,並且不會讓窗口在該空間上最大化。 – 2010-10-04 12:26:23

+0

嗨,只是想讓你知道它可以做到,我發佈了批處理和VBScript的解決方案,所以C#也必須可能,請參閱http://stackoverflow.com/questions/12435503/change-windows-7-任務欄位置自動基於屏幕形狀或碼頭/ 14370485#14370485 – peter 2013-01-20 21:27:19

回答

0

你試過FindWindow函數()與Shell_TrayWnd作爲類,然後用SetWindowPos嘲笑窗戶?

不知道Windows將如何採取這一點雖然。

還有特定的API做的AppBar的(任務欄是什麼),請上網:

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

+1

是的,我已經嘗試過FindWindow和你建議的參數,那是什麼被系統忽略。如果我在任何其他窗口上使用它,它就會起作用。任務欄忽略它。至於鏈接建議,我已經嘗試了確切的代碼。它適用於XP,但在7上失敗,因此我需要這個問題。 – 2010-09-21 14:03:29

+0

啊,我明白了,這很有趣。 – Lloyd 2010-09-21 14:35:09

相關問題