我制作了一个应用程序,该应用程序使用CMD中的attrib命令删除了病毒快捷方式,并且我需要管理员权限,以便可以执行该命令。
目前,无论是整个程序还是流程本身,我都无法做到这一点。这是需要UAC的一段代码:
private void Button2_Click(object sender, EventArgs e)
{
string Disktype = null;
Disktype = ListBox1.GetItemText(ListBox1.SelectedItem); ;
if (Disktype.Contains("C:") == true)
{
MessageBox.Show("You selected C:");
}
else
{
String Message = "Cleaning" + Disk.Diskvolume + "Are you Sure?";
String Title = "Cleaning now";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
DialogResult result = MessageBox.Show(Message, Title, buttons);
if (result == DialogResult.Yes)
{
String ShowFiles = "attrib -h -r -s /s /d" + Disktype + "*.*";
String RemoveVirus = "del" + Disktype + "*.lnk";
System.Diagnostics.Process.Start("CMD.exe", ShowFiles);
System.Diagnostics.Process.Start("CMD.exe", RemoveVirus);
MessageBox.Show("Cleaning");
System.Diagnostics.Process.Start(Disktype);
Close();
}
else
{
MessageBox.Show("Cleaning done");
Close();
}
}
正如你所看到的,我做了ShowFiles
,并RemoveVirus
直接向CMD,但我无法就如何让他们以管理员身份运行。
我是整个C#应用程序还是仅Process.Start
一个应用程序都需要它?
我一直在寻找,您可以尝试以下方法:
string command;
command = "powershell -Command 'Start-Process cmd -Verb RunAs'"
System.Diagnostics.Process.Start("cmd.exe",command);
您可以仅使用powershell以管理员身份启动CMD 。
使用此命令,您可以毫无问题地使用命令。
我希望这个对你有用 :)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句