`

C#让程序自动以管理员身份运行

    博客分类:
  • C#
阅读更多

C#让程序自动以管理员身份运行

UAC来控制程序访问

 

工具:VS 2008

 

第一步,

      新建一个项目(winform)

 

第二步,

      在新建项目中,新建项 应用程序清单文件(app.manifest)

 

第三步,

      打开 app.manifest 文件

          修改 <requestedExecutionLevel level="asInvoker" uiAccess="false" />

          修改为 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

          重新编译 打开 debug目录 就可以看到图标右下角有个小盾牌的标识。

如下代码:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC 清单选项
            如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换 
            requestedExecutionLevel 节点。

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            如果您希望利用文件和注册表虚拟化提供
            向后兼容性,请删除 requestedExecutionLevel 节点。
        -->
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

 

第四步,

      程序中判断是否以管理员身份运行

代码如下:

/// <summary>
/// 当前是否是管理员身份运行
/// </summary>
/// <returns></returns>
public static bool IsAdministrator()
{
    try
    {
        WindowsIdentity identity = WindowsIdentity.GetCurrent();
        WindowsPrincipal principal = new WindowsPrincipal(identity);
        return principal.IsInRole(WindowsBuiltInRole.Administrator);
    }
    catch
    {
        return true;
    }
}

 

 

其他:

C# 修改IP地址

static void SetNetworkAdapter()
        {
            ManagementBaseObject inPar = null;
            ManagementBaseObject outPar = null;
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if (!(bool)mo["IPEnabled"])
                    continue;

                //设置ip地址和子网掩码 
                inPar = mo.GetMethodParameters("EnableStatic");
                inPar["IPAddress"] = new string[] { "10.22.21.111", "192.168.1.9" };
                inPar["SubnetMask"] = new string[] { "255.255.255.0", "255.255.255.0" };
                outPar = mo.InvokeMethod("EnableStatic", inPar, null);

                //设置网关地址 
                inPar = mo.GetMethodParameters("SetGateways");
                inPar["DefaultIPGateway"] = new string[] { "10.22.21.1", "192.168.10.1" };
                outPar = mo.InvokeMethod("SetGateways", inPar, null);

                //设置DNS 
                inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
                inPar["DNSServerSearchOrder"] = new string[] { "179.32.42.4", "179.32.42.5" };
                outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
                break;
            }
        }

  

 

 

 

 

 

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    C# 让程序自动以管理员身份运行

    ### C# 让程序自动以管理员身份运行 #### 背景与问题描述 在Windows Vista及后续版本的Windows 7等操作系统中,为了增强系统的安全性,引入了**用户账户控制(User Account Control, UAC)**机制。该机制旨在防止...

    C#程序以管理员权限运行

    ### C#程序以管理员权限运行的方法详解 #### 一、背景介绍 随着Windows Vista以及后续版本如Windows 7等操作系统的发布,微软引入了一个重要的安全特性——用户账户控制(User Account Control, UAC)。UAC的主要...

    C#操作注册表实现程序随系统开机自动启动

    如果需要程序对所有用户生效,那么必须以管理员权限运行程序并添加到`HKEY_LOCAL_MACHINE`。 此外,需要注意的是,操作注册表需要程序具有相应的权限。在.NET 2.0及更高版本中,C#程序默认在非管理员权限下运行,...

    防止C#应用程序被任务管理器结束

    1. **使用权限控制**:应用程序可以尝试提升其权限,使其成为管理员级别的进程。管理员权限的进程通常拥有更高的权限,更不容易被普通用户结束。但这种方法并不是完全安全的,因为管理员权限也可能被更高权限的进程...

    C# Winform 自动运行 不用输入密码登录进入桌面可以运行的程序

    这通常需要管理员权限。 此外,另一种方法是使用计划任务,通过`Task Scheduler` API来创建一个计划任务,使其在用户登录时启动你的程序。这种方法相对简单,但不适用于无密码登录的场景。 综上所述,实现"C# ...

    C#自动升级程序

    2. **.NET Framework或.NET Core**:C#程序通常运行在.NET Framework或.NET Core上,这两个框架提供了大量的API,用于文件操作、网络通信等。自动升级程序会利用这些API来下载、解压和替换旧版本的文件。 3. **网络...

    c#开发winform程序自动更新

    6. **权限管理**:考虑到安全性和权限问题,可能需要以管理员权限运行更新过程。可以使用`ProcessStartInfo`类设置适当的运行级别。 7. **源代码管理**:项目文件`TestDemo.sln`和`.suo`是Visual Studio解决方案和...

    C#获取win7管理员权限

    这段脚本的作用是向 Windows 注册表中添加一系列新的键值,这些键值允许用户在右键菜单中选择“管理员取得所有权”,从而以管理员权限运行指定的应用程序或文件夹。其中 `takeown` 和 `icacls` 命令分别用于获取文件...

    c# 自动更新程序

    8. **权限管理**:运行解压后的exe文件可能需要管理员权限,这时可以使用`ProcessStartInfo`类设置必要的权限。 9. **用户体验**:良好的用户交互设计是关键,包括进度条显示、错误提示、取消更新等。 通过以上...

    运行中的程序自动更新的实现

    7. **权限管理**:由于运行时更新涉及到文件系统的操作,可能需要管理员权限。.NET提供了CodeAccessPermission类来检查和请求必要的权限。 8. **用户体验**:在更新过程中,保持良好的用户体验至关重要。这可能意味...

    C#实现自动关机程序及源码

    // 添加管理员权限,因为关机需要管理员权限 // 创建Process对象并启动命令 Process process = new Process(); process.StartInfo = psi; process.Start(); Console.WriteLine($"系统将在{delayInMinutes}...

    C# 自动下载更新程序

    5. **处理权限**:在Windows系统中,某些操作可能需要管理员权限,例如修改系统文件或注册表项。程序需要能够适当地请求提升权限,并处理可能出现的权限问题。 6. **重启或关闭应用**:更新安装后,可能需要重新...

    禁止程序运行(c#源代码)

    1. **系统安全**:防止恶意软件、病毒等未经授权的程序自动运行。 2. **资源管理**:在多用户环境中,限制某些用户运行高资源消耗的程序。 3. **家庭使用**:避免孩子玩特定的游戏或使用特定的应用程序。 4. **企业...

    C#自动更新源代码(cs框架)

    例如,某些文件可能需要管理员权限才能修改。此外,为了防止恶意攻击,需要对从服务器接收到的数据进行验证,如校验签名或证书。 6. **设计更新接口** 设计一个友好的用户界面,让用户了解更新状态,选择是否立即...

    内存驻留程序(C#版)

    - **权限要求**:根据程序的需求,可能需要用户以管理员权限运行,以便能够修改注册表和系统设置。 在压缩包中的`test`文件可能是程序的源代码、编译后的可执行文件或其他相关资源。为了深入了解这个内存驻留程序的...

    C#开发的自动更新程序。

    - **权限管理**:如果更新涉及修改系统文件,可能需要管理员权限。使用`Manifest`文件可以声明程序需要的权限。 - **用户体验**:提供清晰的更新提示和进度反馈,让用户了解更新状态。 - **版本控制**:合理规划版本...

    通用C#权限源程序 通用C#权限源程序

    例如,管理员、普通用户、编辑员等角色,它们分别对应不同的操作权限。 6. **权限控制**:权限控制是权限系统的核心,涉及对页面操作的访问限制,如添加、修改、删除、查看、导入和导出。权限控制通常通过权限分配...

    C# Windows Api 自动登录QQ号码

    - **权限问题**:由于涉及到对其他进程的操控,可能需要管理员权限运行程序。 - **兼容性**:QQ的界面可能会随着版本更新而改变,这可能会影响自动化脚本的稳定性。因此,需要定期更新或适应新的界面元素定位方式。 ...

    C# 关闭指定的程序

    关闭其他进程可能需要相应的权限,例如管理员权限。如果程序没有足够的权限,`Process.Kill()`可能会抛出`AccessDeniedException`。确保在执行这类操作时,程序有足够的权限或处理这类异常。 此外,还可以通过监控...

    C# winform利用注册表实现开机自动运行程序

    在Windows操作系统中,让一个程序在开机时自动启动是一个常见的需求。...同时,对于非管理员用户,他们可能没有权限修改`HKEY_LOCAL_MACHINE`下的注册表键,因此在设计用户界面时要给出相应的提示。

Global site tag (gtag.js) - Google Analytics