在没有cmd.exe弹出窗口的情况下使用popen在Windows上执行任务列
发布时间:2020-12-14 05:30:10 所属栏目:Windows 来源:网络整理
导读:大家好,感谢您的时间. 我正在用C开发某种监控应用程序,我需要获取当前的任务列表.因此,我正在使用tasklist并获得输出,这要归功于popen(); ptr = popen("tasklist /V","r");while(1){ if(fgets(temp,255,ptr) == NULL) break; fputs(temp,log);} 问题是,在几
大家好,感谢您的时间.
我正在用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来实现此目的.
这种方法有点脆弱,因为您可能会发现您的应用程序在具有不同输出格式的任务列表版本的计算机上运行. 如果要获取正在运行的所有进程的列表,可以调用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- xaml – CollectionViewSource“值不在预期范围内.”
- windows-installer – Techsmith Snagit的Windows安装程序的
- windows10 关闭自动更新
- 在Windows中创建自定义命令(而非应用程序)快捷方式
- windows-server-2012 – 打开Windows Server 2012 / Window
- Window中的Docker 拉取Mysql镜像 并在本地Navicate链接
- 已安装的窗口挂钩列表
- windows-server-2003 – 如何在登录Windows服务器时显示上次
- windows-phone-8 – VS2015崩溃同时部署windows phone 8 ap
- 如何使用命令行清除Windows事件日志?