我想使用代码启动新的屏幕键盘(OSK)。您可以在任务栏中找到此文件:
(如果没有,您可以通过右键单击任务栏找到它)。
我已经尝试过常规:
System.Diagnostics.Process.Start("osk.exe");
但是我想启动另一个(不在窗口模式下)。在这里,您可以看到我想要的OSK,而不需要的OSK:
如何启动该版本?以及如何在特定设置(如果可能)中启动它?
参考方案
通过在命令行中启动进程
我相信您希望按照建议的here在Windows 10中启动以下过程:
"C:\Program Files\Common Files\microsoft shared\ink\tabtip.exe"
正如@ bernard-vander-beken所建议的那样,最好使用
Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles)
生成路径的"C:\Program Files\Common Files\"
部分以适合不同的安装位置。
通过API
先前的命令行似乎以不一致的方式工作,特别是如果tabtip.exe
进程已在运行,它将无法两次运行。
我在this thread上找到了@torvin的代码段,使用命令行解决方案启动tabtip.exe
后,可以使用该代码段以编程方式显示屏幕键盘,否则,它会失败并出现COM
异常。
class Program
{
static void Main(string[] args)
{
var uiHostNoLaunch = new UIHostNoLaunch();
var tipInvocation = (ITipInvocation)uiHostNoLaunch;
tipInvocation.Toggle(GetDesktopWindow());
Marshal.ReleaseComObject(uiHostNoLaunch);
}
[ComImport, Guid("4ce576fa-83dc-4F88-951c-9d0782b4e376")]
class UIHostNoLaunch
{
}
[ComImport, Guid("37c994e7-432b-4834-a2f7-dce1f13b834b")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface ITipInvocation
{
void Toggle(IntPtr hwnd);
}
[DllImport("user32.dll", SetLastError = false)]
static extern IntPtr GetDesktopWindow();
}
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
改造正在返回一个空的响应主体 - java我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…
每个文件合并后添加换行 - python我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…
Json到php,json_decode返回NULL - php我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…
将ajax的值存储到javascript变量中 - javascript我有一个php文件,其中我从服务器获取数据。该php文件的输出是一个包含json格式数据的变量。PHP文件:<?php $dbHostName = "localhost"; $dbUserName = "venseld"; $dbUserPass = "wecuuu"; $dbName = &…