我创建了一个WPF应用程序,需要在Windows命令提示符上执行命令。因此,我创建了以下代码:
// The 'RunAs' indicates it needs to be elevated.
var process = Process.Start(new ProcessStartInfo(@"C:\Windows\System32\wevtutil.exe", commandArgs)
{
//Process will be started as admin
Verb = "runAs",
//Do not show the shell window
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
RedirectStandardInput = true,
})
这个命令需要管理员权限。因此,我添加了一个清单文件,以管理员权限启动WPF主机:
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"><requestedExecutionLevel level="requireAdministrator" uiAccess="false" /></requestedPrivileges>
到目前为止,这个解决方案运作良好。我可以启动我的WPF应用程序,通过按下按钮触发事件,执行这个命令提示符的进程。
现在我想通过拖放一些文件到我的WPF客户端中来添加一些文件。由于我的应用程序正在以管理员权限运行,因此无法从Windows文件资源管理器中将文件拖放到我的应用程序中。
使用Total Commander可以拖放文件,因为可以使用管理员权限启动Total Commander。将打开文件对话框添加到我的WPF主机是可行的,但是拖放会更加舒适。
当我以非管理员权限运行我的应用程序时,拖放功能可以正常工作,但是由于缺乏权限,我的应用程序无法执行命令提示符。
如何实现拖放以添加我的文件,并随后使用管理员权限执行需要这些文件作为参数的命令提示符?