win1064位,报错操作需要提升修改了权限文件报错仍然存在。
试试,尝试以管理员身份运行您的程序。
using System;
using System.Diagnostics;
namespace CallOSK
{
class Program
{
static void Main(string[] args)
{
// 创建一个新的Process对象
Process oskProcess = new Process();
// 设置Process的启动信息
oskProcess.StartInfo.FileName = "osk.exe";
oskProcess.StartInfo.UseShellExecute = true;
// 启动软键盘进程
oskProcess.Start();
}
}
}
参考gpt:
在C#中调用系统软键盘(On-Screen Keyboard,简称OSK),可以使用Process.Start方法来启动OSK应用程序。下面是一种调用OSK的示例代码:
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
try
{
Process.Start("osk.exe");
}
catch (Exception ex)
{
Console.WriteLine("无法启动系统软键盘:" + ex.Message);
}
}
}
请确保你的操作系统中已经安装了OSK应用程序,它通常位于 %windir%\System32 目录下的 osk.exe 文件。
如果在运行时报错提示操作需要提升权限,即使修改了权限文件仍然存在,可能是因为你的程序没有以管理员权限运行。对于某些需要提升权限的操作,你需要以管理员身份运行你的C#程序。
下面是以管理员身份运行C#程序的方法:
找到你的C#程序的可执行文件(.exe文件)。
注意:如果你的程序需要频繁使用管理员权限进行操作,你可能需要修改程序的清单文件 (app.manifest),以请求管理员权限。在清单文件中,将 元素的 level 属性设置为 requireAdministrator。这样,当你的程序被启动时,将自动提示用户提升为管理员权限。
有两个步骤实现运行:
1、将C:\Windows\System32\osk.exe拷贝到程序编译的目录下,和exe文件同目录;
2、执行代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
// 创建一个新的Process对象
Process oskProcess = new Process();
// 设置Process的启动信息
oskProcess.StartInfo.FileName = @"osk.exe";
oskProcess.StartInfo.UseShellExecute = true;
// 启动软键盘进程
oskProcess.Start();
}
}
}
3、注意执行exe,一定要以管理员身份运行。运行效果:
using System.Diagnostics;
Process kbpr = System.Diagnostics.Process.Start("osk.exe"); // 打开系统键盘
if (kbpr.HasExited)
{
kbpr = System.Diagnostics.Process.Start("osk.exe");
}