C#中用管理员身份运行程序代码实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace MyWebBrowser
{

  static class Program

  {

    /// <summary>

    /// 应用程序的主入口点。

    /// </summary>

    [STAThread]

    static void Main()

    {

      //获得当前登录的Windows用户标示 

      System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();

      System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);

      //判断当前登录用户是否为管理员 

      if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))

      {

        //如果是管理员,则直接运行 

        Application.EnableVisualStyles();

        Application.SetCompatibleTextRenderingDefault(false);

        Application.Run(new Form1());

      }

      else

      {

        //创建启动对象 

        System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();

        //设置运行文件 

        startInfo.FileName = System.Windows.Forms.Application.ExecutablePath;

        //设置启动动作,确保以管理员身份运行 

        startInfo.Verb = "runas";

        //如果不是管理员,则启动UAC 

        System.Diagnostics.Process.Start(startInfo);

        //退出 

        System.Windows.Forms.Application.Exit();

      }

    }

  }

}
  
(0)

相关推荐

  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)

    从 <<Windows Forms 2.0 Programming, 2nd Edition>>   -  Single-Instance Applications 这一章中, 学到了调用 VB.Net 中的 IsSingleInstance, 为 C# WinForm 添加只运行应用程序的单个实例 ( Single Instance Application). 是个好方法! 该方法显然从易用性上便捷与 Mutex 和 Process 这两种只运行单个应用程序实例的方法. Sing

  • C#确保只有一个实例在运行的方法

    本文实例讲述了C#确保只有一个实例在运行的方法.分享给大家供大家参考.具体实现方法如下: public static Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName (current.ProcessName); //查找相同名称的进程 foreach (Process process in proc

  • C#开发Windows服务实例之实现禁止QQ运行

    本实例主要实现下面三个基本功能 1.C#开发windows服务 2.禁止QQ等程序运行 3.为windows服务创建自动安装程序 下面针对这三个基本功能进行实现 一.C#开发windows服务 Windows服务在VS以前的版本中叫NT服务,在VS.NET启用了新的名称.用C#创建windows服务不是一件困难的事,下页针对服务创建.启动.停止做详细介绍 1.首先在vs中添加一winform程序KillService 2.在解决方案添加新项中添加Windows服务 3.打开服务页面,切换至代码页

  • 解决C#程序只允许运行一个实例的几种方法详解

    本文和大家讲一下如何使用C#来创建系统中只能有该程序的一个实例运行.要实现程序的互斥,通常有下面几种方式,下面用 C# 语言来实现:方法一:使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例.把program.cs文件里的Main()函数改为如下代码: 复制代码 代码如下: using System;using System.Windows.Forms;using System.Runtime.InteropServices;namespace NetTools{    static cl

  • C#运行CGI程序实例

    本文实例讲述了C#运行CGI程序的方法.分享给大家供大家参考.具体实现方法如下: 一.控制面板->程序和功能->打开或关闭Windows功能 把相关的功能勾上,点"确定" 二.新建一个网站,配置ISAPI和CGI限制.处理程序映射 三.CGI控制台应用程序代码: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Threading; names

  • C#测量程序运行时间及cpu使用时间实例方法

    这里要指出的是, 运行一段程序,使用的cpu时间,跟实际运行的时间是不一样的.附例如下: 复制代码 代码如下: private void ShowRunTime()  {   TimeSpan ts1 = Process.GetCurrentProcess().TotalProcessorTime;   Stopwatch stw = new Stopwatch();  stw.Start();  int Circles = 1000;   for (int i = 0; i < Circles

  • C#中用管理员身份运行程序代码实例

    using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace MyWebBrowser { static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main() { //获得当前登录的Windows用户标示 Sy

  • C#默认以管理员身份运行程序实现代码

    上篇博客写了一下如何通过网络时间更新系统时间,当时写的时候怎么测试都不成功,后来想想是不是我操作系统(当时是在win8上开发的)的问题.当时我猜应该是权限不够,导致无法修改系统时间,于是我以管理员身份运行了一次,结果测试成功!原来真的是权限的问题,于是就在程序里面加入了默认以管理员身份运行的代码.下面让我们看看是怎么实现的吧! 程序默认以管理员身份运行 复制代码 代码如下: static void Main(string[] Args) { /** * 当前用户是管理员的时候,直接启动应用程序

  • admin.vbs 以管理员身份运行程序的vbs命令

    复制代码 代码如下: '以管理员身份运行程序的命令admin.vbs Set objWMIServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set objWbemObjectSet = objWMIServices.ExecQuery(_ "SELECT * FROM Win32_Process WHERE " &_ "Executabl

  • 如何判断 .NET Core 应用程序以管理员身份运行的

    目录 1.euid 2.setuid 3.Demo 有时候,我们需要知道当前程序是否以管理员身份运行,以便执行一些需要特殊权限的操作. 在github上找到了一个解决方案: //需要引用nuget包Mono.Posix.NETStandard public static bool IsAdministrator =>     RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ?         new WindowsPrincipal(Win

  • 自动以管理员身份运行批处理bat文件(vbs与bat两种方法)

    但是,批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名为"XXXXXX(请右键点击,用管理员身份运行!).bat",但总有些用户会忽略这条提示,直接运行,此时由于权限不足,导致脚本运行失败. 我们可以使用一种变通的方法,让bat启动时,首先调用vbs脚本,通过vbs脚本,以管理员身份调用该bat的 runas 部分 我们的脚本可以写在runas 下,这样就点击该bat脚本,就可以已管理员身份运行了 示例代码如下 @ECHO OFF setlocal EnableDelay

  • windows搜索空文件夹的批处理程序代码实例

    有时候需要搜索查找空文件夹,一个方法是将浏览器旁的目录树打开,挨个查看,如果有成百上千个目录呢,以人力去找就太费时费力了,本文介绍一个批处理程序,可以代替人力完成这个任务. 代码 ::Search for empty dirs. ::by lvfeng, Mar 11,2009 @echo off setlocal enabledelayedexpansion color 1E echo 本程序搜索空目录 echo. echo by www.lfhacks.com echo. echo 按任意键

  • python英语单词测试小程序代码实例

    这篇文章主要介绍了python英语单词测试小程序代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 爬取了扇贝英语网,并制作了一个英语单词测试的小程序,还能生成错词本,一起来看下代码吧- import requests #扇贝网爬虫,获取英语单词 category_res=requests.get('https://www.shanbay.com/api/v1/vocabtest/category/?_=1566889802182') ca

  • c#通过app.manifest使程序以管理员身份运行

    微软在Windows Vista开始引入了UAC(用户帐户控制)新技术(点击这儿了解什么是UAC).当程序执行时需要权限的话,UAC会弹出警告消息:让用户确认是否同意允许这个程序改变你的计算机配置,windows需要得到你的许可才可以让程序继续执行下去. 通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行.微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以继续,这样就获得了管理员的权限来执行程序.

  • 易语言程序默认以管理员身份运行方法

    由于Win7及以上版本系统的UAC账户控制权限,导致易语言写的很多程序在没有以管理员权限运行的的情况下,无法正常进行一些需要管理员权限的操作,如修改注册表等,那么我们如何在用户启动程序的时候就向系统申请管理员权限,以保证程序能正常使用呢? 1.打开Restorator 2009,通过文件菜单打开要修改的程序test.exe.此时的test.exe没有管理员权限,如图,程序图标上并没有那个标志了管理员权限运行的 小盾牌 图标. 2.在桌面建立名为1.txt的文本文件,并将下面的内容写入后保存.此文

  • Java实现在不同线程中运行的代码实例

    本文实例讲述了Java实现在不同线程中运行的代码.分享给大家供大家参考,具体如下: start()方法开始为一个线程分配CPU时间,这导致对run()方法的调用. 代码1 package Threads; /** * Created by Frank */ public class ThreadsDemo1 extends Thread { private String msg; private int count; public ThreadsDemo1(final String msg, i

随机推荐