如何获取窗口“id” - 与Win32窗口关联的唯一编号?
我可以在NSIS脚本(.nsi文件)中获取ID吗?如果不是我可以使用的外部程序?由于某种原因,当我运行安装程序时,ResHacker没有向我显示正确的对话框。我听说过GDISpy或类似名称的东西。
我要做的是更改MUI2页面中某些窗口的z索引,并在自定义页面中将复选框背景设置为透明。
找出Windows唯一ID的最简单方法是什么?
修改 对不起,我不熟悉正确的用语就是我在谈论的内容。我不是在谈论HWND变量/句柄我在谈论窗口唯一窗口id是一个整数。
# In NSIS
GetDlgItem $R0 ${parentHWND} 1012 # the 1012 is what I am referring to as the window ID
答案 0 :(得分:2)
可以使用Winspy++之类的间谍工具找到对话框子控件的ID(此工具以十六进制显示,因此使用calc.exe转换或在.nsi中使用0x前缀数字)
NSIS有两个嵌套对话框,外部对话框包含下一个,后退和取消按钮。内部对话框托管当前页面的控件。
获取外部对话框中按钮的句柄:
GetDlgItem $1 $hwndparent 1
对于内部对话框:
FindWindow $0 "#32770" "" $HWNDPARENT ;Find inner dialog first
GetDlgItem $1 $0 0x666
对于自定义页面,id(和z顺序)取决于您在...中创建控件的顺序。