大佬教程收集整理的这篇文章主要介绍了在没有cmd.exe弹出窗口的情况下使用popen在Windows上执行任务列表,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在用C开发某种监控应用程序,我需要获取当前的任务列表.因此,我正在使用tasklist并获得输出,这要归功于popen();
ptr = popen("tasklist /V","r"); while(1) { if(fgets(temp,255,ptr) == NULL) break; fputs(temp,log); }
问题是,在几分之一秒内会弹出cmd.exe窗口并且这真的令人不安,因为它将焦点切换到新窗口,它使我的应用程序进入窗口模式而不是全屏模式.
所以,我花了好几天时间查看popen方式或Windows本身,以“隐藏”模式/窗口启动该过程,但没有结果.
我尝试过的事情包括:
cmd.exe /c tasklist /V start /b cmd.exe /c tasklist /V start /min /b cmd.exe /c tasklist /V start /min cmd.exe /c tasklist /V tasklist > somefile
我也尝试了最后一个,所以我会读取somefile的输出,但似乎tasklist强制输出到stdout,因为创建文件后没有写入数据.
希望你的回答,无论如何,谢谢你.
CreateProcess
传递SW_HIDE作为
STARTUPINFO
结构的wShowWindow字段并在dwCreationFlags中包含CREATE_NO_WINDOW来实现此目的.
这种方法有点脆弱,因为您@R_291_9381@您的应用程序在具有不同输出格式的任务列表版本的计算机上运行.
如果要获取正在运行的所有进程的列表,可以调用EnumProcesses
.
以上是大佬教程为你收集整理的在没有cmd.exe弹出窗口的情况下使用popen在Windows上执行任务列表全部内容,希望文章能够帮你解决在没有cmd.exe弹出窗口的情况下使用popen在Windows上执行任务列表所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。