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