通过一个程序以管理员方试运行另一个程序?

解决方案 »

  1.   

    友情up
    vista下 先获取管理员权限
      

  2.   

    具体要怎么操作,说详细一点哦,在下第一次用vista.还是英文版.
      

  3.   

    如果编程都能改,VISTA还要UAC何用?
      

  4.   

    这个问题不太可能,除非你有管理员用户,密码等,那么可以用CreateProcessAsUser()
      

  5.   

    可以,直接用Shellexecute指定以管理员身份运行::ShellExecute(0, // owner window 
                   L"runas", 
                   L"C:\\Windows\\Notepad.exe", 
                   0, // params 
                   0, // directory 
                   SW_SHOWNORMAL); 
      

  6.   

    你说的管理员身份到底指的是UAC下的管理员身份(权限提升的管理员身份)还是正常的管理员帐户?先把几个概念搞清楚了再来问。客户手工复制又是啥意思?如果指的是UAC下的管理员权限提升,那么这是不可能的,必须在需要提升权限的EXE中显式修改manifest清单,让操作系统知道此EXE需要提升权限运行,此时操作系统会提示用户是否提升权限。如果指的仅是普通的管理员账号,就要分两种情况:
    1、启动者正在以管理员账号运行,那么直接创建进程就行了,被启动者自动以相同的帐户运行。
    2、启动者正在以非管理员帐户运行,那么必须使用CreateProcessByUser来创建被启动者,此时必须提供管理员账号及密码。
      

  7.   

    创建一个xxx.manifest的文件,内容如下,然后把文件加进工程,然后编译,运行时就会自动弹出对话框请求管理员权限
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">  <assemblyIdentity version="1.0.0.0"     processorArchitecture="x86"     name="Company.Department.Exe Name"     type="win32"/>    <description>Description of your application</description>  <!-- Identify the application security requirements. -->  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">    <security>      <requestedPrivileges>        <requestedExecutionLevel          level="requireAdministrator"          uiAccess="false"/>        </requestedPrivileges>       </security>  </trustInfo></assembly>