Как отключить всплывающее окно Windows Touch Keyboard в любом приложении - PullRequest
0 голосов
/ 06 февраля 2020

Я создаю настольное приложение в WPF, где я использую пользовательскую клавиатуру для приложения, но windows клавиатура по умолчанию выскакивает, когда текстовое поле фокусируется.

Здесь я попробовал подход, чтобы убить и избавиться от процесса "TabTip". но при остановке процесса, если пользователь закрывает приложение и использует любое другое приложение, такое как Google chrome, в таком случае клавиатура windows не запускается, и мы должны запустить ее вручную. Кроме того, я попытался запустить процесс, когда мое приложение переходит в фоновый режим, но в этом случае клавиатура windows будет отображаться, даже если текстовое поле не сфокусировано на каком-либо другом приложении.

Код Приведенный выше подход:

foreach (var process in Process.GetProcessesByName("TabTip"))
            {
                process.Kill();
                process.WaitForExit();
                process.Dispose();
            }

Во-вторых, я попытался запустить и остановить службу «TabletInputService», когда мое приложение работает в фоновом режиме и на переднем плане, но в этом случае появляется исключение «Не удается открыть TabletInputService на на вашем компьютере », после этого я попытался запустить свое приложение с« запуском от имени администратора », и после этого я получил исключение:« Не удается остановить TabletInputService на вашем компьютере »

Код указанного выше второго подхода

ServiceController s c = новый ServiceController (); s c .ServiceName = ServiceName;

        if (sc.Status == ServiceControllerStatus.Running)
        {
            try
            {
                TimeSpan timeout = TimeSpan.FromMilliseconds(5);
                sc.Stop();
                sc.WaitForStatus(ServiceControllerStatus.Stopped);

            }
            catch (InvalidOperationException e)
            {
            }

Это все, что я пробовал.

Пожалуйста, предложите мне, что еще я могу сделать для этого.

...