如何获取窗口“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阶)取决于您在...

中创建控件的顺序

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top