有很多可能的对话框。标准的是 MessageBox 和 shell 对话框,如 OpenFileDialog、PrintDialog、ColorDialog 等。很多很多非标准的,即程序员使用本机代码编写 Windows 程序并使用资源编辑器创建的那种。由 DialogBox() winapi 函数显示。
您需要了解有关对话框窗口的更多信息,请使用Spy++ 实用程序。如果它是一个公共对话框,那么您将看到窗口上的每个控件都有一个 ID。您可以在运行时通过调用 GetDlgItem() 找到这些内容。如果它们嵌套在另一个子窗口中,可能需要 EnumChildWindows()。如果该函数失败,返回 IntPtr.Zero,那么您就知道没有您正在寻找的对话框。您还应该调用 GetClassName() 来仔细检查它是否是您希望找到的控件类型。
请注意,它永远不可能 100% 准确,程序员倾向于选择非常常见的 ID。就像简单地从 1 开始对它们进行连续编号一样。在很可能显示特定对话框的正确时间执行此操作非常重要。
请注意,Microsoft 可以轻松破解您的代码。他们不承诺在下一版本的 Internet Explorer 中保持对话框相同。
最后但并非最不重要的一点是,请注意,程序员往往对此感兴趣,因为他们想修改文件下载确认提示。戳路径名并自动单击“确定”按钮。当然,对于恶意软件来说,这是一个非常有吸引力的目标,他们已经制定了对策来击败这个简单的目标。在更高版本的 IE 中启用的增强保护模式是另一种让您头痛的对策。
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |