簡體   English   中英

在 C# 中移動鼠標 cursor 離屏

[英]moving mouse cursor off screen in C#

我有一個 wpf window,它的高度為 2000,實際桌面高度約為 1000。顯然,大約一半的 window 不在屏幕上。 即使 window 延伸到屏幕下方,鼠標也不會向下移動到該區域。 我確實希望此內容不在屏幕上,並且如果鼠標位於該 position 的元素上,我希望鼠標能夠在其上移動並單擊元素。 我不想更改我的屏幕分辨率,因為某些內容絕對必須不在屏幕上。 不知道如何 go 關於這個。

Cursor 分隔不是由應用程序完成,而是由 Windows 本身完成。 據我所知,沒有辦法讓您的 cursor 指向屏幕外。

您可以通過做許多游戲所做的來模擬您想要的。 不要繪制 Windows cursor,在您的應用程序中繪制自定義 window。 強制真正的 cursor(未繪制)留在顯示器的中心。 每次用戶移動真正的 cursor 時,相應地移動應用程序的 cursor 並將真正的 cursor 重新放置到屏幕中央。

這會給您帶來您想要的錯覺,但我不認為 WPF 可以處理這個問題。

我認為這是可能的。 該程序將允許使用輔助計算機作為額外的監視器。 有幾個程序可以讓您知道鼠標 cursor 所在的坐標。 例如AutoIt很容易做到這一點。

在此處輸入圖像描述

當你安裝 autoit 時,它附帶了這個實用程序,它會讓你知道你 position 鼠標的坐標。 當我進行屏幕截圖時,鼠標沒有出現,但我在鼠標所在的位置畫了一個藍點。 注意坐標是 710, 1464。現在我的屏幕分辨率是 1200 * 1920(我的顯示器是旋轉的)。 因此,使用 Autoit,我可以通過執行類似的操作來 position 我的鼠標 cursor

在此處輸入圖像描述

當我運行該 autoit 程序時,它會將鼠標移動到該位置。 這個問題的答案似乎是正確的,因為我無法將鼠標向右移動超過 1200。 換句話說,執行 MouseMove(2500,800) 將導致鼠標移動到 1200,800。 現在有趣的部分是我為什么能夠將鼠標移動到(2500,800)! 如果我使用這個程序換句話說,執行MouseMove(2500,800)現在可以與 Autoit 一起使用,並且鼠標實際上會移動到另一台計算機(必須運行 maxivista)。 maxivista 表明有一種方法可以將鼠標移動到屏幕分辨率之外

如果您查看MaxiVista的屏幕截圖,您會發現顯示設備管理器的屏幕截圖:

設備管理器 http://www.maxivista.com/pics/screenshots/vista_devicemanager_en.gif

如您所見,他們只是編寫了一個虛擬顯示適配器,它提供了自己的顯示大小。 所以 windows 將被告知一個可用的大小,例如 2560x1600 是可能的,並允許所有 windows 和鼠標的這些邊界。 現在由顯示驅動程序將此虛擬屏幕的右側部分轉發到當前的真實顯示適配器,以便在每個物理設備上顯示右側部分。

Windows 中沒有屏幕外 cursor position。 我認為鼠標受屏幕分辨率的限制,即使 windows 不是。

暫無
暫無

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

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