2013-02-08 62 views
1

我想繪製的圖形將位於所有其他界面之上,包括Windows 8新的主屏幕。你會怎麼做呢?使用Windows 7或更低版​​本,它將像顯示透明全屏窗口一樣簡單,但現在由於桌面與操作系統的其他部分分離,因此現在不再可能。如何在Windows 8 Metro界面上面繪製?

原因是我需要顯示兩個獨立於Windows鼠標光標的遊標。我正在開發一個用於Wii Remote(使用傳感器指針)的多點觸摸模擬軟件,目前我只是設置光標位置並通過抖動+1和-1像素來喚醒它。但它會干擾觸摸,所以我必須在使用觸摸模擬時禁用它。它目前可用,但我想添加多點觸控支持,以便您可以使用Wii遙控器進行縮放和旋轉。觸摸功能已準備就緒,但您希望看到光標用於握住一個觸摸點並用Wii遙控器選擇另一個觸摸點,並且在按住第一個觸摸點時,Windows光標無法移動到其他任何地方,因爲它堅持接觸點。

我已經看到如何通過獲取屏幕的圖形對象來直接繪製屏幕,​​但它不起作用,因爲它完全不受管理,所以圖形保持可見狀態,直到其他區域刷新爲止。

那麼,有什麼建議嗎?

該項目被稱爲Touchmote,可在touchmote.net上作爲源代碼和可安裝測試版提供。

回答

2
  1. Demand the UIAccess integrity level in application manifest通過在requestedPrivileges屬性中指定UIAccess =「true」。
  2. 使窗口最頂層(通過SetWindowPos更改位置或在WinForms/WPF中設置TopMost屬性)
  3. Sign the application using a digital certificate that chains up to a trusted root in the local machine Trusted Root Certification Authorities certificate store
  4. 直接運行(即,not from a debugger)從a secure location in the file system。之後你可以附加一個調試器。

注意這使得您的應用程序運行提升,您可能有issues when you need to connect to your application from a lower integrity level

+0

非常感謝!我不確定如何正確簽署申請,是否有任何限制和成本?我想分發它作爲一個開源應用程序。 – Simphax 2013-02-08 19:39:36

+0

對於源代碼分發,您可以編寫構建步驟來創建和安裝受信任的根CA,然後使用代碼簽名證書對文件進行簽名。對於二進制發行版,您可以從本地機器可信根CA存儲中的CA購買代碼簽名證書。 – 2013-02-08 19:53:57

2

已經有一個接口用於你想要做的事情:觸摸注入。您可以指定您有範圍內的聯繫人但未與屏幕聯繫,並且屏幕上會出現一個小圓圈。你不需要自己繪製圓圈;觸摸系統會爲你做。

+0

謝謝你的回答,我已經在使用觸摸注入,但是我想顯示一個光標,而不是觸摸來知道從哪裏開始觸摸輸入:)但是我會看看江的解決方案 – Simphax 2013-02-08 19:35:11

+0

你說聯繫人是在範圍但不接觸。這說「如果你使用觸摸動作,這就是觸摸的地方。」這似乎與你正在嘗試做的事情相符。 – 2013-02-08 21:11:47

+1

謝謝!我已經嘗試過「懸停」方法,但我沒有看到任何光標,但讀取您的答案讓我再試一次,我注意到了TOUCH_FEEDBACK_INDIRECT常量。它現在完美運行! – Simphax 2013-02-08 22:26:19

相關問題