0

我一直在搜索,但仍然找不到有关此问题的答案。我设法通过以下代码打开了标签提示的过程:

Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) 处理 TextBox1.GotFocus

Process.Start("C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe")

结束子

我一直试图杀死这个过程,但它仍然无法正常工作。

但将其退回停靠或关闭。仍然找不到任何答案。这可能吗?希望有人反刍帮助。谢谢!:)

4

2 回答 2

3
/// <summary>
/// Close Touch Keyboard
/// </summary>
public static void CloseTouchKeyboard()
{
    try
    {
        foreach (var p in Process.GetProcessesByName("C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe"))
        {
            p.Kill();
        }
    }
    catch (Exception e)
    {
        Logger.Error(e.ToString());
    }
}

/// <summary>
/// Open Touch keyboard
/// </summary>
public static void OpenTouchKeyboard()
{
    try
    {
        Process.Start("C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe");
    }
    catch (Exception e)
    {
        Logger.Error(e.ToString());
    }
}
于 2013-11-06T09:11:10.583 回答
1

Process.Close、CloseMainWindow 等对我不起作用,因此发送此消息以关闭键盘。

[DllImport("user32.dll")]
public static extern IntPtr FindWindow(String sClassName, String sAppName);

int WM_SYSCOMMAND = 274
uint SC_CLOSE   = 61536
...

IntPtr KeyboardWnd = FindWindow("IPTip_Main_Window", null);
PostMessage(KeyboardWnd , WM_SYSCOMMAND, SC_CLOSE, 0);

感谢http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/de9b66b5-f1e2-477c-9da2-303982790f63/的回答!

于 2013-04-02T05:48:06.787 回答