RivaJ 2022-08-25 17:37 采纳率: 0%
浏览 9
已结题

Windows11下,进程默认包含于一个Job引起的问题

我在运行Windows核心编程示例程序05-JobLab.exe示例程序时,无论在命令行启动,VS启动还是资源管理器启动,都会弹窗"Process already in a job"。

程序启动时会首先运行如下代码,检测进程是否处于一个Job中,

   // Check if we are not already associated with a job.
   // If this is the case, there is no way to switch to
   // another job.
   BOOL bInJob = FALSE;
   IsProcessInJob(GetCurrentProcess(), NULL, &bInJob);
   if (bInJob) {
      MessageBox(NULL, TEXT("Process already in a job"), 
         TEXT(""), MB_ICONINFORMATION | MB_OK);
      return(-1);
   }

按书上的说法,命令行启动的是应该是可行的。但无论尝试编译程序的x86/x64版本,Realese/Debug版本,无论是否以管理员模式启动cmd,都无法达到目的。

最后,我查看了Windows任务管理器中进程的Job对象ID,发现启动的cmd.exe进程有Job对象ID。这是否是Windows新版本(目前使用的是Winows 11)后做的修改?如果是,为何会有这种导致旧版程序无法正常运行的变更呢?以及如何才能正常运行示例程序?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月2日
    • 创建了问题 8月25日

    悬赏问题

    • ¥20 python忆阻器数字识别
    • ¥15 无法输出helloworld
    • ¥15 高通uboot 打印ubi init err 22
    • ¥20 PDF元数据中的XMP媒体管理属性
    • ¥15 R语言中lasso回归报错
    • ¥15 网站突然不能访问了,上午还好好的
    • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
    • ¥15 semrush,SEO,内嵌网站,api
    • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
    • ¥15 振荡电路,ADS仿真