WPFアプリケーションをWindows8タブレットで実行するように移植しています。
テキストボックスがフォーカスを取得したときにTextInputPanelを表示し、フォーカスを失うと非表示にしたいのですが。
見せても問題ありませんが、近づけられないようです。
プロセスでKillとCloseMainWindowの両方を試しましたが、InvalidOperationExceptionが発生します-プロセスが終了したため、要求を処理できません。
SendMessageを試しましたが、何もしませんでした。
何か案は?
WinFormテストコードの一部は次のとおりです。
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace VirtualKeyboard
{
public partial class Form1 : Form
{
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
static uint WM_CLOSE = 0x0010;
static uint WM_QUIT = 0x0012;
public Form1()
{
InitializeComponent();
}
private Process _keyboardProcess;
private void Open_Click(object sender, EventArgs e)
{
_keyboardProcess = Process.Start(@"C:\Program Files\Common Files\microsoft shared\ink\tabtip.exe");
}
private void Close_Click(object sender, EventArgs e)
{
// tried all these
//SendMessage(_keyboardProcess.Handle, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
//SendMessage(_keyboardProcess.Handle, WM_QUIT, IntPtr.Zero, IntPtr.Zero);
//_keyboardProcess.Kill();
//_keyboardProcess.CloseMainWindow();
}
}
}