2012-08-08 7 views
7

私はフルスクリーンのDirectXデスクトップアプリケーションを使用しており、ユーザーがゲームでテキストボックスをタップするとオンスクリーンキーボードを表示したいと考えています。フルスクリーンモードでこれを行う方法はありますか?デスクトップアプリケーションでWindows 8のオンスクリーンキーボードを表示する方法

+0

がありますキーボードを隠す方法はありますか? – ali

答えて

17

ではデフォルトでフォーカスを設定しています。 Windows 8のタッチキーボードは、私は付属のキーボードのないタブレットPC上で実行されているフルスクリーンのデスクトップアプリに取り組んでいるので、私はただ、それを考え出した

C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe 

を実行することでポップアップ表示されます。

セヴェリン。

+0

これを行うにはより良い方法を探していましたが、これは実際に機能する唯一の合理的な方法だと思われます。 – IDWMaster

+0

ああ、私はWindowsが大好きです。しかし、少なくともこれは動作します! – chowey

+0

どうやってそれを隠すのですか? – ali

1

デスクトップアプリの場合はosk.exeShellExecuteを呼び出す必要があります。

メトロアプリケーションの場合は、アプリケーション自体からSIPを呼び出すことはできません。 MSDN docsあたりのとおり:

これにより、アプリケーションはプログラムでフォーカスの操作によってタッチ キーボードを呼び出すことができないことを意味します。ここでは過去にビッグ犯人は して、ウェブページ、それらの多くosk.exeがより昔ながらのオンスクリーンキーボードをポップアップ表示されます実行

3

セヴェリンStamplerと同じ答えが、私は使用するC#からの正しいパスを見つけるために:

var path = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + @"\Microsoft Shared\ink\TabTip.exe"; 

if (!File.Exists(path)) 
{ 
    // older windows versions 
    path = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\osk.exe"; 
} 
+0

32ビットアプリケーションを実行しているときに、TabTip.exeは64ビットシステム上に見つかりません。 GetFolderPathはあなたに "Program Files(x86)"フォルダを与え、そこのtabTip.exeは "TabTip32.exe"と呼ばれ、 – Zuppa

関連する問題