C# Vs2017啟動調試,debug或者release調試狀態閃一下程序就獨立運行了


最近發現一個沒太大影響但是很奇怪的事情,編輯狀態下點擊調試,發現和之前的項目不一樣,調試狀態閃一下,程序就“獨立了”,不受調試狀態的控制了。

找了半天才發現,是在program.cs里加了一段代碼引起的。

這段代碼是用於讓自己寫的軟件能設置本地IP地址用的,需要獲取管理員權限。代碼如下:

 /** 
             * 當前用戶是管理員的時候,直接啟動應用程序 
             * 如果不是管理員,則使用啟動對象啟動程序,以確保使用管理員身份運行 
             */
            //獲得當前登錄的Windows用戶標示  
            System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
            //創建Windows用戶主題  
            Application.EnableVisualStyles();

            System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
            //判斷當前登錄用戶是否為管理員  
            if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
            {
                //如果是管理員,則直接運行  

                Application.EnableVisualStyles();
                Application.Run(new Server());
            }
            else
            {
                //創建啟動對象  
                System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
                //設置運行文件  
                startInfo.FileName = System.Windows.Forms.Application.ExecutablePath;
                //設置啟動參數  
                startInfo.Arguments = String.Join(" ", Args);
                //設置啟動動作,確保以管理員身份運行  
                startInfo.Verb = "runas";
                //如果不是管理員,則啟動UAC  
                System.Diagnostics.Process.Start(startInfo);
                //退出  
                System.Windows.Forms.Application.Exit();
            }

            //Application.EnableVisualStyles();
            //Application.Run(new Server());

這樣程序調試啟動后就獲取了管理權限,而且自己new了一下自己,因此調試狀態自動關閉了。

恢復這行代碼的時候,調試狀態就正常回來了,說明其余代碼沒有問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM