GUI 在运行静默应用程序 VC++ 时被阻止

Posted

技术标签:

【中文标题】GUI 在运行静默应用程序 VC++ 时被阻止【英文标题】:GUI blocked while running silent app VC++ 【发布时间】:2010-02-18 10:22:09 【问题描述】:

我已经用 C++(Windows XP、visual c++ 2008)构建了一个 GUI 界面。在那里您可以配置一些参数,当我单击“确定”按钮时,将启动一个静默应用程序(并使用设置的值)。当我这样做时,如果您切换到其他窗口,GUI 会冻结甚至消失(它仍然存在,但您只能看到一个空白区域),当其他应用程序完成时,GUI 再次工作。

这是正确的行为,我不希望用户能够编辑字段......但是当你看不到 GUI 时它有点难看。有人知道切换到其他窗口并在切换回来时能够看到 GUI 的简单方法吗?

提前致谢

已编辑:

嗨,我试过这样做,但问题是要在后台运行应用程序,我有一个使用 CreateProcess 的函数。所以 GUI 冻结的两种方式:如果我创建一个创建进程的线程,以及如果我直接创建进程。

然后我等待过程完成:

if (!CreateProcess(NULL, Args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &StartupInfo, &ProcessInfo)) 返回 GetLastError(); WaitForSingleObject(ProcessInfo.hProcess, INFINITE); if(!GetExitCodeProcess(ProcessInfo.hProcess, &rc)) rc = 0;

有什么想法吗?

【问题讨论】:

【参考方案1】:

在第二个线程中启动外部应用程序,并通过模式弹出窗口阻止您的主线程。在模态弹出窗口中,使用计时器定期检查第二个线程是否已经完成,如果完成则关闭它。

作为奖励,您可以在模式弹出窗口中显示花费的时间。

【讨论】:

以上是关于GUI 在运行静默应用程序 VC++ 时被阻止的主要内容,如果未能解决你的问题,请参考以下文章

iphone - 如何防止应用程序在下载数据时被阻止[关闭]

如果第三方 cookie 被阻止,则使用 oidc-client 跨域进行静默续订

特定用户的静默推送通知

从.net mvc api控制器下载角度应用程序中的文件时被CORS策略错误阻止

非托管 vc++ 静态库和 C# GUI 应用程序

python下浏览器静默运行驱动