NSIS提供的的对窗口及子控件操作的指令
来源:互联网 发布:win7 安装ubuntu 编辑:程序博客网 时间:2024/06/04 18:57
NSIS提供了很多对对话框窗口及其子控件(包括:按钮,复选框,静态标签,
以及树形控件等)操作的指令。利用这些指令,可以很方便的改变子控件
的状态。下面举例说明:
1.EnableWindow
窗口句柄(HWMD)(1 | 0)
对指定的窗口或控件允许或禁止鼠标和键盘输入。可用的状态为 0(禁止)
或 1(允许)。
GetDlgItem $0 $HWNDPARENT 1
EnableWindow $0 0
Sleep 1000
EnableWindow $0 1
2. FindWindow
用户变量(窗口句柄输出) 窗口类名 [窗口标题] [父窗口句柄] [childafter]
查找一个窗口。类似于 Win32 FindWindowEx()。由窗口类名来查找(和/或窗口标题,如果指定的话)。如果指定了 “父窗口句柄” 或
childafter,则查找会受到限制。如果窗口类名或窗口标题指定为 "",
则它们将不能用于查找。如果窗口未找到,用户变量将返回 0 值。要实
现旧式 FindWindow 行为,请和SendMessage一起使用。
FindWindow $0 "#32770" "" $HWNDPARENT
FIndWindow $0 "my window class" "my window title"
3. GetDlgItem
用户变量(输出) 窗口句柄 控件ID
在指定的对话框上根据控件ID获得控件句柄。如果你想获得安装程序内部
的控件句柄,请先使用 FindWindow 用户变量(窗口句柄输出) "#32770"
"" $HWNDPARENT 来获取窗口句柄。
GetDlgItem $0 $HWNDPARENT 1 # 下一步、安装按钮
4.HideWindow
隐藏安装程序。
5.IsWindow
窗口句柄 是窗口时跳转的标记 [不是窗口时跳转的标记]
如果 “窗口句柄” 是一个窗口,则跳转到 “是窗口时跳转的标记”,
否则跳转到 “不是窗口时跳转的标记”(如果指定了的话)。
GetDlgItem $0 $HWNDPARENT 1
IsWindow 0 +3
MessageBox MB_OK "找到窗口"
Goto +2
MessageBox MB_OK "无窗口"
6.SendMessage
窗口句柄 消息 第一个消息参数 第二个消息参数 [用户变量(返回值)] [/TIMEOUT=毫秒]
发送消息到 “窗口句柄”。如果指定了一个用户变量 $x 作为最后一个参数(或在 /TIMEOUT 之前的最后一个参数),SendMessage 的返回值将
保存在该变量里。需要注意的是当指定 “消息” 时你只能用消息的整数值。如果你需要发送字串请使用 “STR:字串” 作为 “第一个消息参数” 或 “第二个消息参数”。
WM_CLOSE 16
WM_COMMAND 273
WM_USER 1024
Include WinMessages.nsh 来获得所有 Windows 消息定义。
要发送一个字串参数的话,在参数前面加入 STR: ,例如: "STR:一些字串" 。
使用 /TIMEOUT=毫秒 来指定持续时间,单位为毫秒。
!include WinMessages.nsh
FindWindow $0 "Winamp v1.x"
SendMessage $0 ${WM_CLOSE} 0 0
7. SetCtlColors
句柄 [/BRANDING] [文本颜色] [transparent|背景颜色]
对一个静态控件、编辑控件、按钮或一个对话框设置一个背景颜色和文本
颜色。文本颜色 和 背景颜色 不能使用变量。使用 GetDlgItem 来获取
控件的句柄。如果要使得控件透明你可以指定 transparent 作为背景颜
色值。你也可以指定 /BRANDING 并带或不带文本颜色和背景颜色来使得
控件完全灰白(或其他你选择的颜色)。在 MUI 里用来显示标志牌。
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $0 $0 1006
SetCtlColors $0 0xFF0000 0x00FF00
8.ShowWindow
窗口句柄 显示状态
设置一个窗口的显示程度。可用的显示状态,和 Windoes 的ShowWindow
函数相同。SW_* 常量定义于 Include\WinMessages.nsh。
!include WinMessages.nsh
GetDlgItem $0 $HWNDPARENT 1
ShowWindow $0 ${SW_HIDE}
Sleep 1000
ShowWindow $0 ${SW_SHOW}
备注:要使用这些指令,最关键的就是要知道控件的ID,可以用工具
(如Microsoft Spy++,ResourceHack等)获得。
- NSIS提供的的对窗口及子控件操作的指令
- MFC操作父窗口的子控件
- MFC操作父窗口的子控件
- 窗口 子控件的使用
- 子窗口使用父窗口的控件
- 提供修复界面的NSIS安装包
- 子窗口对父窗口的修改
- 对文件操作的指令
- 对目录的操作指令
- 父窗口与子窗口的操作
- 打开一个子窗口后,如何禁止对父窗口的操作?
- 对窗口的相关操作
- 模式窗口对父窗口的操作
- 子控件相对于父窗口的位置
- 子窗口中设置控件的位置
- win32 20子窗口控件的代码
- C#子窗口调用父窗口控件的委托实现
- C#子窗口调用父窗口控件的委托实现
- 变量控制宽度小技巧
- FFmepg 多线程解码历程 - 2 :avcodec_decode_video2
- 作用域
- setTimeOut与setInterval中的this的差别
- 手机客户端开发中的“恶意代理”攻击分析
- NSIS提供的的对窗口及子控件操作的指令
- 北野武大叔讲的三个故事
- 【SCOI2011】【线段树】棘手的操作
- 从网站上下载js 图片css
- MySQL安装教程图解
- 利用FlashPaper实现php在线预览word文档
- A* 搜索算法
- 二 网络层协议(一)ARP和RARP协议
- jquery中settimeout与setInterval使用时的注意事项