我正在使用VS2017並使用Windows窗體應用程序爲各種RDP設置文件製作了一個非常簡單的「啓動程序」。這只是調用Process.Start,直接鏈接到.rdp文件,或者直接調用mstsc.exeRDP/MSTSC忽略從Windows窗體應用程序啓動時的highdpi清單修復
應用程序(和RDP會話)在標準PC上正常顯示並正常工作。然而,我已經遇到高DPI設備上的問題,例如Surface Books /專業人員。
RDP客戶端不能正確擴展是一個相當知名的問題,我們使用清單/ reg更改方法修復了這個問題。這證實正在工作。雙擊.rdp配置文件也可以正常工作。
(https://www.blackforce.co.uk/2016/04/18/remote-desktop-rdp-resolution-on-a-surface-book)
我自己的應用程序也是在正確的比例正確顯示。但是,當我使用Process.Start啓動RDP時,RDP客戶端的規模很差,因爲它始終在清單修復之前。我試過單獨打開客戶端,並用.rdp文件和結果是一樣的。我手動打開相同的.rdp文件,而不是通過我的應用程序,並且客戶端正確縮放。
任何人都可以複製此,或者建議爲什麼mstsc清單文件在啓動時被忽略?我也嘗試使用ProcessStartInfo來設置UseShellExecute,但仍然是相同的結果。
我的水晶球說你的Winforms應用程序開啓了抖動強制,所以運行的是32位程序。所以會啓動c:\ windows \ syswow64 \ mstsc.exe,這是你沒有破解的。 PreferExternalManifest的黑客攻擊方式很簡單,沒有什麼比使用全局解決方案可能對本地化問題造成的損害。註冊表項的32位視圖位於Wow6432Node中。使用Project> Properties> Build刪除抖動強制。 –
嗨漢斯,你可以把你的評論作爲答案,所以我可以將它標記爲這樣,因爲它解決了我的問題!非常感謝。至於PreferExternalManifest破解 - 我同意,但我不知道更具體的修復?再次感謝!馬克 –
如果只有我知道如何擺脫這種可怕。請問superuser.com。如果您對此感到滿意,那麼只需自己發佈答案。 –