gpt4 book ai didi

c# - 如何在 C# 中打开平板电脑模式的屏幕键盘?

转载 作者:行者123 更新时间:2023-12-03 14:36:49 25 4
gpt4 key购买 nike

我想使用代码启动新的屏幕键盘 (OSK)。你可以在任务栏中找到这个:

New-OSK-Taskbar

(如果没有,您可以通过右键单击任务栏找到它)。

我已经尝试过常规:

System.Diagnostics.Process.Start("osk.exe");

但我想启动另一个(不是在窗口模式下)。在这里您可以看到我想要哪个 OSK,哪个不想要:

OSK wanted version distinction

我怎样才能启动那个版本?以及如何在特定设置中启动它(如果可能)?

最佳答案

通过在命令行中启动进程

我相信您想在 Windows 10 中启动以下过程,如建议 here :

"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异常(exception)。

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();
}

关于c# - 如何在 C# 中打开平板电脑模式的屏幕键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58747008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com