C#很简单的通过进程调用cmd判断登录用户权限

  最近自己开发的winform软件需要读取本地配置文件,因为登录用户的权限不够的话会导致无法读取文件进而导致程序崩溃,所以查了一些解决方法,很剪短的小代码,权当备份以备下次使用。

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
  if (RunCmd("net localgroup administrators").IndexOf(System.Environment.UserName) >= 0)
    {

    //顺利执行。 } else { //报错提示系统不是管理员用户登录,容易导致程序崩溃。请退出以管理员权限登录。 //并退出程序。 } } /// <summary> /// 调用cmd.exe程序执行命令。 /// </summary> /// <param name="command">要执行的命令</param> /// <returns></returns> static string RunCmd(string command) { //实例一个Process类,启动一个独立进程 Process p = new Process(); //Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法,下面我们用到了他的几个属性: p.StartInfo.FileName = "cmd.exe"; //设定程序名 p.StartInfo.Arguments = "/c " + command; //设定程式执行参数 p.StartInfo.UseShellExecute = false; //关闭Shell的使用 p.StartInfo.RedirectStandardInput = true; //重定向标准输入 p.StartInfo.RedirectStandardOutput = true; //重定向标准输出 p.StartInfo.RedirectStandardError = true; //重定向错误输出 p.StartInfo.CreateNoWindow = true; //设置不显示窗口 p.Start(); //启动 p.StandardInput.WriteLine("exit"); //不过要记得加上Exit要不然下一行程式执行的时候会当机 return p.StandardOutput.ReadToEnd(); //从输出流取得命令执行结果 }

 

 

posted @ 2013-04-13 13:26  fovi  阅读(1818)  评论(6编辑  收藏  举报