我正试图以拥有管理员特权的不同用户身份运行进程,其中两台计算机都运行着Vista,并启用了UAC,但在其中一台计算机上,我遇到了一个Win32Exception错误,该错误提示“目录名无效”。
有人能告诉我我的代码哪里出了问题吗?
var myFile = "D:\\SomeFolder\\MyExecutable.exe";
var workingFolder = "D:\\SomeFolder";
var pInfo = new System.Diagnostics.ProcessStartInfo();
pInfo.FileName = myFile;
pInfo.WorkingDirectory = workingFolder;
pInfo.Arguments = myArgs;
pInfo.LoadUserProfile = true;
pInfo.UseShellExecute = false;
pInfo.UserName = {UserAccount};
pInfo.Password = {SecureStringPassword};
pInfo.Domain = ".";
System.Diagnostics.Process.Start(pInfo);
更新
执行上述代码的应用程序需要管理员权限。
我甚至将工作目录设置为 "Path.GetDirectoryName(myFile)" 和 "New System.IO.FileInfo(myFile).DirectoryName"。
var myFile = @"D:\SomeFolder\MyExecutable.exe";
。 - Edgar