如何在 Window 10 中获取 window 内的 TextBox 控件的句柄
How to get handle to a TextBox control inside window in Window 10
我正在使用 C# 实现 Windows10 的自动化。
其中一项任务是将数据写入 window 中名为 "Add exclusion" 的 TextBox。
为了输入这个window:
打开设置 => 更新和安全 => Windows Defender => 添加排除项 => 排除文件扩展名
我知道我需要使用 SendMessage(...)
或 SetWindowText(...)
函数将数据写入控件。
但是我需要将这些函数传递给我要写入的控件的句柄。
所以我需要使用 GetDlgItem(hDlg, nIDDlgItem)
.
参数 nIDDlgItem
是控件 ID,但我无法在 "Add exclusion" window 中找到 TextBox 控件的控件 ID。
我使用了 Spy++,但是当我放置目标图标时,我只收到 "Shell_Dialog" class:
我只有window句柄:
我需要 TextBox 控件的句柄。
编辑(2016 年 6 月 20 日):
我尝试使用 Windows 10 Kit 中的 Inspect.exe 工具,但是当我将光标放在 TextBox 控件上时,它会写 "Access is denied":
参考文献:
SetText of textbox in external app. Win32 API
Inspect (Inspect.exe) is a Windows-based tool that enables you select any UI element
第三个选择是 select 父级(即对话框 window)为您的按钮(即它将是对话框 class),并注册 WM_COMMAND 来自它的消息。然后在按下它之后,您的按钮 ID 将在消息 window.
中显示为 wID: XX
来源:Using visual studio's spy++ tool:
为了能够做到这一点,我需要使用具有管理员权限的 Inspect.exe 工具。
感谢@NineBerry,
在我以管理员身份打开 Inspect.exe 后,我可以看到所有详细信息。
我正在使用 C# 实现 Windows10 的自动化。
其中一项任务是将数据写入 window 中名为 "Add exclusion" 的 TextBox。
为了输入这个window:
打开设置 => 更新和安全 => Windows Defender => 添加排除项 => 排除文件扩展名
我知道我需要使用 SendMessage(...)
或 SetWindowText(...)
函数将数据写入控件。
但是我需要将这些函数传递给我要写入的控件的句柄。
所以我需要使用 GetDlgItem(hDlg, nIDDlgItem)
.
参数 nIDDlgItem
是控件 ID,但我无法在 "Add exclusion" window 中找到 TextBox 控件的控件 ID。
我使用了 Spy++,但是当我放置目标图标时,我只收到 "Shell_Dialog" class:
我只有window句柄:
我需要 TextBox 控件的句柄。
编辑(2016 年 6 月 20 日):
我尝试使用 Windows 10 Kit 中的 Inspect.exe 工具,但是当我将光标放在 TextBox 控件上时,它会写 "Access is denied":
参考文献:
SetText of textbox in external app. Win32 API
Inspect (Inspect.exe) is a Windows-based tool that enables you select any UI element
第三个选择是 select 父级(即对话框 window)为您的按钮(即它将是对话框 class),并注册 WM_COMMAND 来自它的消息。然后在按下它之后,您的按钮 ID 将在消息 window.
中显示为 wID: XX来源:Using visual studio's spy++ tool:
为了能够做到这一点,我需要使用具有管理员权限的 Inspect.exe 工具。
感谢@NineBerry,
在我以管理员身份打开 Inspect.exe 后,我可以看到所有详细信息。