从NSIS脚本内/外部获取Windows ID
题
如何获取窗口“ID” - 与Win32窗口关联的唯一编号?
我可以在NSIS脚本(.nsi文件)中获取ID吗?如果不是外部程序可以使用什么?由于某种原因运行安装程序,Reshacker不会向我显示正确的对话框。我听说过GDISPY或类似于类似的名字的东西。
我正在尝试做的是在Mui2页面中更改某些窗口的z索引,并将复选框背景设置为自定义页面中的透明。
您最容易查找Windows唯一ID的方法?
编辑 对不起,我不熟悉正确的术语是为了我在谈论的事情。我不是在谈论HWND变量/句柄我正在谈论Windows唯一窗口ID,这是一个整数。
# In NSIS
GetDlgItem $R0 ${parentHWND} 1012 # the 1012 is what I am referring to as the window ID
. 解决方案
对话框子控件的ID可以使用像 winspy ++ (此工具以十六进制显示它,因此使用Calc.exe转换或前缀.nsi中的0x)
nsis有两个嵌套对话框,外部对话框托管下一个,后退和取消按钮。内部对话框托管当前页面的控件。
将句柄放入外部对话框中的按钮:
GetDlgItem $1 $hwndparent 1
.
和内部对话框:
FindWindow $0 "#32770" "" $HWNDPARENT ;Find inner dialog first
GetDlgItem $1 $0 0x666
.
对于自定义页面,ID(和z阶)取决于您在...
中创建控件的顺序不隶属于 StackOverflow