- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我应该编写一个自动安装程序。只是您启动的一个程序,它应该自行完成安装向导,无需用户进行任何操作。
我目前正在开发的程序叫做 Cygwin。而我想要做的就是一遍又一遍地点击“下一步”按钮,直到安装完成。我知道我可以使用 VBS,我知道我可以使用 C#,这会让我的生活变得更轻松。但我有一个例子说明它如何适用于另一个程序,我正在尝试在 C++ 中将其改编为 Cygwin。
HWND WINAPI FindWindowEx(
_In_opt_ HWND hwndParent,
_In_opt_ HWND hwndChildAfter,
_In_opt_ LPCTSTR lpszClass,
_In_opt_ LPCTSTR lpszWindow
);
这是我用来查找按钮的函数,在下一步中它应该被点击。我在 hwndParent 中有程序窗口并且工作正常。 hwndChildAfter 和 lpszClass 是“NULL”,lpszWindow 是按钮的名称。这适用于按钮“Abbrechen”(取消的德语)。但是,当我将该名称更改为“Weiter”(Next 的德语)时,它就不再起作用了。他只是没有找到它。我认为这与“Weiter”的编写方式有关。它不仅是唯一的词。整个表达式是“Weiter >”当然,我将整个表达式放在 lpszWindow 中,并在其周围加上“”,就像我对“Abbrechen”所做的那样。但就像我说的,他没有找到它。我已经尝试了编写它的所有变体,但它不起作用。
有谁知道“>”或“”(空格)是否有问题,因此他无法阅读。如果是这样,有什么办法吗?或者是否有可能获得按钮的 ID 或类似的东西,可以用来告诉程序在哪里设置鼠标点击。
我知道,正如我所说,C++ 并不是完成这项任务的最佳语言,最后我想我会改用其他语言。但我真的很想知道为什么它适用于“Abbrechen”以及为什么它不适用于“Weiter >”。
因此,如果有人有解决方案,我将不胜感激。谢谢!
最佳答案
我怀疑按钮的实际文本不仅仅是"Weiter >"
,而且还包括一个&
,因为加速键。尝试按 Alt
并查看是否出现了一个字母,该字母下方带有下划线。如果是,则该字母以 &
为前缀。
这个“解决方案”实际上非常脆弱,很容易崩溃。例如,如果用户在他们的系统上配置了另一种语言怎么办?
可以获取按钮的 ID,该 ID 不太可能更改。但是您首先必须找到安装程序窗口,然后枚举它的子窗口。要查找按钮的 ID,请按照 JosephH 在其评论中的建议使用 Spy++。
关于c++ - 为什么 FindWindowEx 找不到我所有的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14860155/
我正在尝试获取子对话窗口的句柄。我试过使用 FindWindowEx,但没有用。相反,FindWindow 确实起作用了。 我用 visual studio 的选项窗口做了一个实验,代码如下: Int
我正在尝试获取子对话窗口的句柄。我试过使用 FindWindowEx,但没有用。相反,FindWindow 确实起作用了。 我用 visual studio 的选项窗口做了一个实验,代码如下: Int
我试图在对话框打开后立即找到它的句柄。 现在,一旦对话框打开,我就尝试在单独的线程中为该对话框调用 FindWindowEx,但它返回 NULL。 然后我在调用 FindWindowEx 之前睡了一会
我正在使用 C 进行编程,并且我正在以编程方式远程单击按钮。我已经在简单的、各种简单形式的应用程序中完成了它。但是我遇到了一个问题。 HWND WINAPI FindWindowEx(HWND hwn
您好,为 outlook 2007 创建了插件。现在插件还需要支持 outlook 2010。但是以下代码在检查获取 outlook 窗口句柄时失败。 hWnd = ::FindWindowEx(*p
我应该编写一个自动安装程序。只是您启动的一个程序,它应该自行完成安装向导,无需用户进行任何操作。 我目前正在开发的程序叫做 Cygwin。而我想要做的就是一遍又一遍地点击“下一步”按钮,直到安装完成。
我想打开 Microsoft Security Essential 程序,然后用 VC 单击“立即扫描”按钮。我可以找到窗口但找不到控件。这是我的代码,当我运行此代码时它显示 Control not
我正在编写一个自动程序(C#,而不是 C++),我需要在表单中获取 RichTextBox。我用Spy++获取标题和类名,但是FindWindowEx总是找不到RichTextBox,GetLastE
我可以选择使用 API EnumChildWindows 或 FindWindowEx 中的任何一个。 有什么建议哪个 api 性能更好? FindWindowEx 是否在内部使用 EnumChild
我在做什么? 我正在自动化第 3 方应用程序。登录窗口看起来像这样 注意:表单中嵌入了背景图像,USERNAME 和 PASSWORD 实际上都是图像的一部分。以防万一有人想知道为什么 Window
我正在开发一个小程序,以便在使用 Microsoft 远程协助 (msra.exe) 时让我的生活更轻松。使用 C++,我可以打开 msra.exe,然后找到窗口句柄。然后我想找到子窗口(按钮),并与
我正在构建一个应用程序,它将获得所有对应用程序 winform 运行的控制。首先,我可以将 dll 注入(inject)正在运行的应用程序 winform 并获取正在运行的应用程序 winform
根据 http://msdn.microsoft.com/en-us/library/ms633500(v=vs.85).aspx我定义了 FindWindowEx 函数。 using System.
我有一个可视化基本应用程序,它需要找到具有消息框的 Microsoft Access,然后将 Enter 发送到消息框。 我关注了这篇文章( FindWindow FindWindowEx )。 它找
我注意到,如果您针对属于不在前台(即最小化)窗口的 hWnd 调用 FindWindowEx 或 EnumChildWindows,则它们不会报告任何 children 。另一方面,如果我首先对正在查
如下创建一个 IP 地址窗口,然后尝试使用 FindWindowEx 函数找到它: INITCOMMONCONTROLSEX icex; icex.dwSize = sizeof(IN
我继承了一个我并不真正喜欢的 C# 窗口应用程序。我的最后期限迫在眉睫,我害怕得要命,因为我的某些更改可能会对现有功能产生不利影响。 我有 RoR 的爱好者背景,我对在该框架中进行测试(同时使用 RS
我有一个简单的程序,它在传递给 EnumChildWindows 的回调中使用 FindWindowEx & strncmp() 来查找由第三方应用程序创建的对话框,然后按下按钮。 此代码在我的 Wi
我需要以编程方式处理另一个 Windows 应用程序,搜索谷歌我找到了一个示例,它使用 DLLImport 属性处理 Windows 计算器并将 user32.dll 函数导入 C# 中的托管函数。
我是一名优秀的程序员,十分优秀!