这个注册表是不行的,你可以这样试试,在程序中 先判断当前用户是不是 Administrator ,是的话就正常启动,不是的话那就直接关闭。。

解决方案 »

  1.   

    我必须用Administrator 启动。
      

  2.   

    我必须用Administrator 启动。
      

  3.   

    用一个程序放到Run key,然后它启动另一个需要权限的程序 CreateProcessWithLogon() 填入对应的管理员帐号密码
      

  4.   

    win7/win8做了安全策略,在系统启动时,是不允许有管理员权限的程序启动的,即具有管理员权限的程序是不能自启动的,是系统阻止了
      

  5.   

    你可以创建一个没有管理员权限的程序Tool.exe,通过这个程序,调用ShellExecuteEX函数,传入RunAS参数,就能将你的目标程序启动起来了,具体做法是:
    1、对于Win7及以上系统,将这个没有管理员权限的程序Tool.exe,设置为启动项,通过Tool.exe将目标程序启动起来。调用ShellExecuteEX函数,传入RunAS参数,是可以实现非管理员程序将具有管理员权限的程序启动起来的。
    2、对于XP系统,则直接将目标程序设置为启动项即可,注意不同系统,要区分对待,xp中不能以runas的方式启动,否则会弹出输入管理员密码的提示框。
    3、没有管理员权限的程序Tool.exe中,启动具有管理员权限的目标程序的代码: SHELLEXECUTEINFO shellInfo;
    memset( &shellInfo, 0, sizeof(shellInfo) );
    shellInfo.cbSize = sizeof(shellInfo);
    shellInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
    shellInfo.lpVerb = _T("RunAs"); // win7及以上系统涉及到UAC权限,要以run as方式启动
    shellInfo.lpFile = strTargetFilePath;  // 目标程序的完整路径
    BOOL bRet = ShellExecuteEx( &shellInfo );
      

  6.   

    关于Vista/Win7 UAC权限的内容,参考:
    Vista/Win7 UAC兼容程序开发指南:http://blog.csdn.net/chenlycly/article/details/28959293