当前位置:  开发笔记 > 编程语言 > 正文

在调试器下运行时,AssignProcessToJobObject失败并显示"Access Denied"错误

如何解决《在调试器下运行时,AssignProcessToJobObject失败并显示"AccessDenied"错误》经验,为你挑选了2个好方法。

您这样做AssignProcessToJobObject并且失败并显示"拒绝访问",但仅当您在调试器中运行时才会失败.为什么是这样?



1> 1800 INFORMA..:

这个让我困惑了大约30分钟.

首先,您可能需要在应用程序中嵌入UAC清单(如此处所示).像这样的东西:


  
    
    
      
        
          
        
      
    
  

其次(这是我坚持的一点),当您在调试器下运行您的应用程序时,它会在作业对象中创建您的进程.您的子流程需要在将其分配到您的工作之前脱离.所以(duh),你需要CREATE_BREAKAWAY_FROM_JOB在标志中指定 CreateProcess).

如果您没有在调试器下运行,或者您的父进程在工作中,则不会发生这种情况.



2> Cameron..:

这似乎经常让我感到困惑,虽然好,1800INFORMATION的帖子似乎并没有包括许多似乎有用的原因和修复,所以似乎有必要发布为什么我看到这种情况发生的总结.

    在尝试自己解决此问题时,请注意,从CMD.EXE,Explorer和Visual Studio运行时,由于不同原因可能会出现此问题.尝试从相应位置运行失败的可执行文件可以帮助确定问题的原因.尽管从VS和Explorer.exe失败,你的应用程序可能只是从CMD.EXE找到工作

    在我的情况下,在Win7下,我似乎需要取消注释"supportedOS"元素,指示来自app.manifest文件的Win7兼容性.这似乎解决了从资源管理器运行时的问题.要添加清单,请右键单击该项目,单击"添加",然后找到"应用程序清单文件".

    为了使Visual Studio 2010正常工作,我似乎需要阻止它使用程序兼容性助手,Tom Minka分享了两种方法来执行此操作:https://stackoverflow.com/a/4232259/86375,注意,我必须重启VS2010以进行他建议的更改.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有