易语言吧 关注:266,710贴子:1,666,257
  • 11回复贴,共1

[CrStudio]让你的程序在运行时获取UAC

取消只看楼主收藏回复

如题,这个是翻CSDN + MSDN翻出来的,因为只有C#版的,所以做了一个易语言版的分享给大家
防吞贴2L继续


1楼2016-07-14 22:46回复
    先贴下载链接 http://pan.baidu.com/s/1kVPLpxd


    2楼2016-07-14 22:46
    回复
      广告
      立即查看
      解释一下吧,ShellExecute是运行一个程序,我们通过这个API运行我们的程序自身,从而达到获取UAC的方法(但是执行完这个命令最好先用下一个API)
      IsUserAnAdmin是检测我们这个是不是已经提权了,这两个的用法我接下来会讲


      6楼2016-07-14 22:53
      回复
        我们只需要让程序获取UAC,所以无关的参数我就直接给出具体值了:
        ShellExecute (0, “runas”, 取运行目录 () + “\” + 取执行文件名 (), “”, “”, #SW_SHOWNORMAL)
        0,"runas",第二个“”这两个不用管,我们要说后面的几个
        .
        先说#SW_SHOWNORMAL
        这是一个常量,值是1
        (只是参照MSDN的写法而已,你可以直接填1)
        .
        取运行目录 () + "\" + 取执行文件名 () 这个是取程序的路径,毕竟这个是以UAC权限运行自身
        .
        取运行目录 () + "\" + 取执行文件名 () 后面的第一个“”是给程序运行的时候附加的命令行,如果有需求请自行添加
        .


        8楼2016-07-14 23:02
        回复
          这个获取到了UAC的进程你们可以让他启动的时候判断一下是否是UAC,如果是,你们就可以愉快地...


          10楼2016-07-14 23:07
          回复
            ------------教程结束--------------


            11楼2016-07-14 23:08
            收起回复
              12楼2016-07-14 23:08
              收起回复
                你们这些人都没听都是吧,我给你们解释一下:
                比如@pplpplpplppl6 的c语言编辑器,每次启动都需要uac,但他这只是个ide啊,用不着那么高的权限,为什么他要申请那么高的权限呢?因为他会在主程序启动时启动检测更新的程序
                但是
                这个检测更新的程序需要uac特权
                而易语言坑爹的“执行()”命令不能启动需要特权的程序,所以我们可以用这个api让没有特权的程序启动需要特权的程序


                来自WindowsPhone客户端18楼2016-07-15 17:07
                收起回复
                  广告
                  立即查看
                  于是这帖子就这么沉了


                  来自Android客户端22楼2016-07-17 15:16
                  回复
                    于是又沉了


                    来自Android客户端23楼2016-07-27 17:57
                    回复
                      日常顶


                      来自Android客户端26楼2016-07-29 16:31
                      回复
                        日常顶


                        来自Android客户端27楼2016-08-02 17:28
                        回复