最近自己開發的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(); //從輸出流取得命令執行結果 }