检查另一个窗口站上的模式对话框
我的应用程序在远程计算机上安装 Visual Studio C++ 运行时,作为另一次安装的先决条件。在 Windows 2003 上,当我升级到 VS 2005 C++ 运行时的最新补丁时,在运行嵌入式 MSI 包后,升级似乎停止了。修复方法是对 vcredist.exe 引导程序使用 /Q:A 而不是 /Q 参数。
从命令提示符运行相同的命令不会导致模式对话框出现,因此似乎不可能检查该对话框并让自己确信我不只是掩盖另一个问题。
任何人都可以获得有关在其他窗口站或会话中查看对话框的任何提示(当前对话框位于会话 0 中)。
My app installs the visual Studio C++ runtimes on a remote machine as a prerequisite for another installation. On Windows 2003 when I upgrade to the latest patch of the VS 2005 C++ runtimes the upgrade appears to stall after the embedded MSI package has been run. The fix was to use the /Q:A rather than the /Q argument to the vcredist.exe bootstrapper.
Running the same command from a command prompt doesn't cause the modal dialog box to appear, so it's appear impossible to inspect the dialog box and reassure myself that I'm not just masking another problem.
Anyone got any tips for viewing dialog boxes in other window stations or sessions (currently the dialog is in session 0).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您无法真正查看该对话框。但是,您可以尝试在应用程序冻结时附加并调试应用程序,或者附加并生成应用程序的转储。
您必须以管理员身份运行调试器才能附加到会话 0 中的进程。在您的情况下,我认为您应该查找在会话 0 中运行的 msiexec.exe 进程。
您应该能够找到显示对话框的线程。
要检查对话框的内容,Spy++ 可能会做到这一点(不确定它是否能够在另一个会话中找到窗口)
I think you cannot really view the dialog box. However, you can either try to attach and debug the application when it is frozen or attach and generate a dump of the application.
You must run your debugger as an administrator to attach to the process in session 0. In your case, I think you should look for msiexec.exe processes running in session 0.
You should be able to find the thread displaying the dialog box.
To inspect the contents of the dialog box, may be Spy++ will do the trick (not sure it is able to find windows in another session)