我有VS2010,C#程序设置为x86。我有两台PC正在运行。两者都是Win 7 Prof,SP1,32位。两个VS2010都在管理员级别运行。在我的项目中,我尝试执行该行:
Process.Start("c:\\Windows\\System32\\osk.exe"); //win 7 on-screen keyboard
从调试模式运行,在一个系统上运行正常,另一个系统抛出异常: 指定的可执行文件不是此OS平台的有效应用程序。
我将Win 7中的用户控制设置 - 用户帐户设置为“从不通知”,如其他网站所建议的那样无效。
我试过:(结果相同,失败)
Process process = new Process();
process.StartInfo.UseShellExecute = false; //have tried it true also
process.StartInfo.WorkingDirectory = "c:\\";
process.StartInfo.FileName = "c:\\WINDOWS\\system32\\osk.exe";
process.StartInfo.Verb = "runas";
process.Start();
任何需要改变(或做)的想法?
答案 0 :(得分:0)
这对你有用吗?我使用System.Diagnostics.ProcessStartInfo类
对其进行了一些修改 ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.WorkingDirectory = @"c:\WINDOWS\system32\";
startInfo.FileName = "osk.exe";
startInfo.Verb = "runas";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
try
{
using(Process process = Process.Start(startInfo))
{
process.WaitForExit();
}
}
catch (Exception)
{
//throw;
}