Я создаю настольное приложение в 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)
{
}
Это все, что я пробовал.
Пожалуйста, предложите мне, что еще я могу сделать для этого.