System.Diagnostics.Process.Start(@"c:\tes.exe");程序直接异常退出。
有没有什么办法让程序自动以最高权限运行程序,最好是程序实现,不要让用户修改tes.exe在win7下的属性,那样太不方便了。

解决方案 »

  1.   

    我的程序是用c#写的dll,app.manifest对我没用,别人调我写的dll,我再执行 .exe。我思路是能不能提高当前用户权,执行完后再还原。
      

  2.   


    如果"别人"不用最高权限运行,那么你可以:
    1、最好方案是改tes.exe,使得它不用最高权限也能正常工作。或者
    2、添加tes.exe.manifest,在运行tes.exe时,要求权限提升。
      

  3.   

    如果是受限用户
    需要先获取管理员权限
    然后通过管理员获取System权限
    无相关C#代码
    只有VC++的代码还有种HOOK
    WinLogin.exe
    然后以System权限运行程序
    需要获取Debug权限
    HOOK C#是不支持的 做不出来的另外可以做成服务
    开机以System权限自运行
      

  4.   

    麻烦啊,两头的程序都不是我的,只有这个dll我能控制
      

  5.   

    实在不行,你开发一个os代替win7吧。
      

  6.   

    在vs图标点右键,以管理员方式运行,然后你的vs就有权限了。
      

  7.   

    我想,既然win7能“应用程序图标点右键,以管理员方式运行”为什么不能用程序来实现这一步呢?
      

  8.   

    另外,win7再运行应用程序前那个“报警窗口”也很讨厌,既然可以通过手动关闭UAC,能否有办法用程序关闭UAC.
      

  9.   

    使用Process的时候用runas做verb。那么Windows会在执行tes.exe之前弹出UAC对话框。算是某些情况下的变通方式。
      

  10.   

    动不动就逼人写操作系统,操作系统也不是不能写出来,就是不能写得比微软好罢了。无论怎么吹linux、Mac、unix的牛X性,应用最广的还是windows,群众的眼睛是雪亮的。我很鄙视大多数在linux下开发的程序员把windows说得一文不值,说实话,这些人就是水平差,在windows下混不下去才选择linux.所谓:相声界唱歌最棒,歌唱界电影演的最好就是这个意思。每次应聘听见面试官问你学什么语言就讨厌,其实我是个业余选手,似乎什么语言都没有系统学过,好多语言的活都干过。从来没有觉得那个语言有多好。好个鸡巴!特别鄙视只会.net和只会java,会那点东西算啥,就算你全精通,只要你“性格:,那就是2b。任何一门语言我从来没感觉到我自己会。
      

  11.   

    没有在非管理员权限的账户下试过……可能我的也有类似问题~~~MARK下
      

  12.   

    没有办法的,
    权限提升是系统为了安全保护,只能右键已管理员身份运行.或者干脆关闭UAC.
      

  13.   

    可以写一个bat文件
    内容为mt -manifest app.exe.manifest -outputresource:app.exe
    bat文件同级目录必须有mt.exe,app.exe.manifest 这两个文件
    app.exe.manifest 为提升权限的文件 内容我就不写了 你网上一搜就是
    mt.exe 自己系统里搜一下吧
    -outputresource 这个指令只是输出位置
    然后只要调用bat文件就可以提升其他程序的权限了。