gpt4 book ai didi

c++ - 在调试器下运行时,AssignProcessToJobObject 失败并出现 "Access Denied"错误

转载 作者:IT老高 更新时间:2023-10-28 21:56:45 25 4
gpt4 key购买 nike

您执行 AssignProcessToJobObject 并失败并显示“拒绝访问”,但仅当您在调试器中运行时。这是为什么呢?

最佳答案

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

首先,您可能需要在应用中嵌入 UAC list (as suggested here)。像这样的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

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

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

关于c++ - 在调试器下运行时,AssignProcessToJobObject 失败并出现 "Access Denied"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/89588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com