2016-05-16 15 views
6

仮想キーボードが必要なアプリがあります。しかし、私がTextBoxのいくつかをクリックすると、仮想キーボードが表示されません。win10に仮想タブレットキーボードを強制的に開く方法は?

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

をしかし、これはTextBoxは何のフォーカスを持っていない後に閉じていない別のキーボード、1を開きます。私はこれを使って試してみました。どのように仮想キーボードを開くwin10を強制するには?

自分自身を明確にする:
これはwin10タッチスクリーンPCで実行されています。タブレットモードを有効にすると、仮想キーボードはTextBoxに表示され、他のキーボードには表示されません。それで、なぜキーボードを強制的に表示したいのですか?

EDIT: 私はしかし、私は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クラスを使用してせずにを開くために

コード。 InputPane、WinFormsでは使用できません。InputPaneはUWPの要素です。

私はこのコードを実行しました...そしてWorks!

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の私regeditを上(手動で)値が1.7という名前のフォルダです(これはMicrosoftが将来的に変化するであろう)とEnableDesktopModeAutoInvokeという名前の32ビットのDWORD値を追加するキーを追加する必要がありました値は1です。これはTRUEを意味します。それは次のようになります。

REGEDIT

あなたがプログラム的に私はあなたが管理privilegiesが必要だと思うキーを追加することができます。プログラムでキーを追加しようとしましたが機能しません。何も影響を与えずにエントリを倍増します(注意してください)。

アドバイス:

作成する各プロセスのプロセスストッパーを行い、考えてみましょう。私は、テキストボックス(任意の入力メソッド)がフォーカスを要求するときにこれを使用するようにします。コンポーネントがフォーカスを失った場合は、プロセスを停止してください。

このヘルプをご覧ください。

enter image description here

関連する問題