/// <summary>
        /// 提升进程权限
        /// </summary>
        /// <param name="Privilege">所需要的权限名称,可以到MSDN查找关于Process Token & Privilege内容可以查到</param>
        /// <param name="Enable">如果为True 就是打开相应权限,如果为False 则是关闭相应权限</param>
        /// <param name="CurrentThread">如果为True 则仅提升当前线程权限,否则提升整个进程的权限</param>
        /// <param name="Enabled">输出原来相应权限的状态(打开 | 关闭)</param>
        /// <returns></returns>
        [DllImport("ntdll.dll")]
        public static extern int RtlAdjustPrivilege(string Privilege, bool Enable, bool CurrentThread, int Enabled);这个API可以提权还有
GetCurrentProcessID                        得到当前进程的ID   
OpenProcessToken                      得到进程的令牌句柄
LookupPrivilegue                      查询进程的权限
AdjustTokenPrivileges                      判断令牌权限  希望来个大神帮忙 用C#提升进程权限
/// <summary>
        /// 根据进程名称获取进程
        /// </summary>
        /// <param name="ProcessName">进程名称</param>
        /// <returns></returns>
        public Process GetProcessByName(string ProcessName)
        {
            Process[] pname = Process.GetProcesses(); //取得所有进程
            foreach (Process name in pname) //遍历进程
            {
                if (name.ProcessName.ToLower().IndexOf(ProcessName) != -1) //如果查找到进程名称 返回
                    return name;
            }
            return null;
        } Process processName = GetProcessByName("");假设我已经获得了进程  下面如何写呢?

解决方案 »

  1.   

    如果是想不靠其他人,自行UAC提升,一定是不可以的(你可以病毒就可以)。AdjustTokenPrivileges是用来给管理员获取某些特权(很多特权默认是关闭的),比如关机特权SE_SHUTDOWN_NAME。特权提升和UAC提升是两码事。
      

  2.   

    uac 要是能自行提升, win7 的安全机制不是变成摆设了吗
      

  3.   

    答非所问  哎 CSDN论坛太气人了~~
      

  4.   

    GetCurrentProcessID 得到当前进程的ID   
    OpenProcessToken 得到进程的令牌句柄,在这个方法里头要先查询到进程的LUID,要利用到第三个API函数LookupPrivilegevalue
    然后用AdjustTokenPrivileges 调整令牌权限如果进程权限一开始就是Enable的,可以直接用OpenProcess(PROCESS_ALL_ACCESS,FALSE, dwProcessID)来指定访问权限
    参考http://topic.csdn.net/u/20110419/11/19eb4ddc-6f07-42ef-9de5-ce40c65f77b5.html?2294
      

  5.   

    提升成管理员权限,要么你修改项目下的app.manifest文件,直接以管理员身份运行,这就是1楼说的那种方法,要么自己写一个注册表文件,把这个文件加载到你的项目中去,然后用Process.Start("权限提升.reg文件的路径");//方法运行....这两种都可以