Kim*_*ürs 0 c++ windows winapi createprocess
我想制作一个简单的C++程序,它使用CreateProcess一次运行多个exe文件.如果exe文件无效(填充了随机数据),则会出现一个消息框,表示该文件与64位Windows不兼容,这很好,但我的程序会等到消息框关闭.有没有办法绕过这个?
您需要通过调用来更改进程的错误处理策略SetErrorMode.您应该在程序的最开始,启动期间执行此操作.
SetErrorMode(SetErrorMode(0) | SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS
| SEM_NOOPENFILEERRORBOX);
Run Code Online (Sandbox Code Playgroud)
我认为这SEM_FAILCRITICALERRORS是与您当前问题相关的标志,但您也应该包括其他问题.
请注意,至少在旧版本的Windows中,没有简单地获取当前错误模式的功能.该GetErrorMode功能已添加到Vista中.所以我们调用SetErrorMode(0)哪个返回先前的错误模式.这个有点不方便的API设计在Raymond Chen的文章中讨论:禁用程序崩溃对话框.当然,如果你不再支持XP,你可以使用:
SetErrorMode(GetErrorMode() | SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS
| SEM_NOOPENFILEERRORBOX);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |