2016-05-16 190 views
6

我有一個需要虛擬鍵盤的應用程序。但是,當我單擊我的一些TextBox es時,它們不會使虛擬鍵盤出現。我一直在使用這種嘗試:如何強制win10打開虛擬平板電腦鍵盤?

System.Diagnostics.Process.Start("osk.exe"); 

但是,這會打開另一個鍵盤,一個不關閉TextBox沒有焦點後。如何強制win10打開虛擬平板電腦鍵盤?

爲了讓自己清楚:
這是運行在win10觸摸屏PC上。當我啓用平板電腦模式時,虛擬鍵盤顯示在某些TextBox es上,而不在其他人上。因此我爲什麼要強制鍵盤顯示。

編輯: 因爲我已經找到了一種方法,以顯示「虛擬鍵盤平板電腦」,但是我想用InputPane類來做到這一點。有人可以提供一個示例代碼來幫助我開始嗎?

代碼使用InputPane類打開它沒有

System.Diagnostics.Process.Start("TabTip.exe"); 
+0

你爲什麼要強迫它?在桌面平臺上這是一個不好的做法,這就是爲什麼它不能打開。在平板電腦/手機上,虛擬鍵盤將打開,因爲用戶無法輸入字符。 – WPMed

+0

http://www.windowscentral.com/how-force-tablet-mode-windows-10 – Elshan

+0

是的,但他希望以編程方式進行。當然,如果用戶選擇了平板電腦模式,虛擬鍵盤將打開。我的觀點是他不能強迫它打開。它將默認打開,或者用戶可以啓用它,如果他想。 – WPMed

回答

1

一件事。 InputPane,你不能在WinForms中使用,InputPane是UWP的一個元素。

我跑這段代碼......並且工作!

string progFiles = @"C:\Program Files\Common Files\Microsoft Shared\ink"; 
string keyboardPath = Path.Combine(progFiles, "TabTip.exe"); 
Process.Start(keyboardPath); 

但我必須對HKEY_CURRENT_USER\SOFTWARE\Microsoft\TabletTip鑰匙內添加一個鍵(手動)值在我的註冊表編輯器是一個名叫1.7(這將在未來的微軟改變),並添加一個名爲EnableDesktopModeAutoInvoke 32位的DWORD值,文件夾價值1。這意味着TRUE。它應該是這樣的:

REGEDIT

您可以添加鍵編程我想你需要管理員privilegies。我嘗試以編程方式添加密鑰,但不起作用,它將條目加倍而沒有任何影響(BE CAREFUL);

建議:

考慮,做創建的每個過程的過程塞。我認爲你會在文本框(任何輸入方法)請求焦點時使用它。當組件失去他的注意力時,一定要停止這個過程。

希望得到這個幫助。

enter image description here