NSIS 常用代码
来源:互联网 发布:删除表字段sql语句 编辑:程序博客网 时间:2024/05/03 07:47
这是一些常用的NSIS代码,少轻狂特意整理出来,方便大家随时查看使用。不定期更新哦~~~
1
;获取操作系统盘符
2
ReadEnvStr $R0 SYSTEMDRIVE
3
;创建log文件夹
4
CreateDirectory
"$R0\log"
5
;递归删除log文件夹
6
RMDir /r
"$R0\log"
1
;弹出Windows关机框
2
FindWindow $0
"shell_traywnd"
3
SendMessage $0 273 506 0
1
;请求Windows帮助
2
FindWindow $0
"shell_traywnd"
3
SendMessage $0 273 503 0
1
;一句话刷新屏幕
2
System::Call
'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)'
1
;打开桌面属性
2
;...cpl,0,3'中的3可以改为
3
;-1 主题 0 壁纸 1 屏保 2 外观 3 设置
4
Exec
'Rundll32.exe shell32.dll,Control_RunDLL Desk.cpl,0,3'
;打开
"设置"
1
;获得安装程序所在目录
2
System::Call
'kernel32::GetCurrentDirectory(i 1024,t .R1)'
3
MessageBox MB_OK
'安装程序所在目录:$R1'
4
;或者直接使用变量
5
MessageBox MB_OK
'文件名$EXEFILE,所在文件夹$EXEDIR,完整路径$EXEPATH。'
1
;获得当前安装程序进程PID
2
System::Call
'kernel32::GetCurrentProcessId()i .R0'
3
MessageBox MB_OK
'安装程序进程PID:$R0'
1
;获得磁盘卷标
2
StrCpy $R0 "C:\"
3
System::Call
'kernel32::GetVolumeInformationA(t R0,t .R1,i 100,i .R3,i .R4,i .R5,t .R6,i 100)'
4
MessageBox MB_OK
'盘符:$R0$\n卷标:$R1$\n文件格式:$R6'
1
;设置磁盘卷标
2
StrCpy $R0 "C:\" ;盘符
3
StrCpy $R1
"系统"
;卷标
4
System::Call
'kernel32::SetVolumeLabelA(t R0,t R1)'
01
;设置文件属性
02
StrCpy $R0
"C:\1.EXE"
;文件
03
StrCpy $R1 0x20 ;属性
04
System::Call
'kernel32::SetFileAttributesA(t R0,i R1)'
05
;属性表
06
;0x20 FILE_ATTRIBUTE_ARCHIVE,存档
07
;0x2 FILE_ATTRIBUTE_HIDDEN,隐藏
08
;0x80 FILE_ATTRIBUTE_NORMAL,正常
09
;0x2000 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED,不索引
10
;0x1000 FILE_ATTRIBUTE_OFFLINE,离线
11
;0x1 FILE_ATTRIBUTE_READONLY,只读
12
;0x4 FILE_ATTRIBUTE_SYSTEM,系统
13
;0x100 FILE_ATTRIBUTE_TEMPORARY,;临时属性(一般无效)
1
;在WIN7任务栏中增加图标链接
2
SetOutPath $WINDIR
3
CreateShortcut
"$DESKTOP\记事本.lnk"
"$WINDIR\notepad.exe"
4
ExecShell taskbarpin
"$DESKTOP\记事本.lnk"
1
;指定在 WIN7 下安装程序需要的执行级别。
2
RequestExecutionLevel admin
1
;安装结束后调用HTTP下载插件下载文件并运行
2
Function .onGUIEnd
3
NSISdl::download
"http://www.flighty.cn/服务器文件名.exe"
"本地文件名.exe"
4
Pop $R0 ;获取返回值
5
StrCmp $R0
"success"
+3
6
MessageBox MB_OK
"下载失败,原因: $R0"
7
Quit
8
exec
""
本地文件名.exe
""
9
FunctionEnd
1
;隐藏/显示文件扩展名实时生效,写入 0 (0x00000000) 显示或 1 (0x00000001) 来隐藏
2
WriteRegDWORD HKCU
"Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
"HideFileExt"
0x00000001
3
SendMessage ${HWND_BROADCAST} ${WM_SETTINGCHANGE} 0
"STR:ShellState"
4
System::Call
"shell32::SHChangeNotify(i0x08000000,i0,i0,i0)"
01
OutFile
"ScreenRes.exe"
02
Name
"获取当前屏幕分辨率"
03
Caption
"获取当前屏幕分辨率"
04
XPStyle
"on"
05
06
Function
".onInit"
07
System::Call
'user32::GetSystemMetrics(i 0) i .r0'
08
System::Call
'user32::GetSystemMetrics(i 1) i .r1'
09
MessageBox MB_OK|MB_ICONINFORMATION
"当前屏幕分辨率为: $\r$\n$0 X $1"
10
Quit
11
FunctionEnd
12
13
Section
"轻狂志"
14
;您的其他代码
15
SectionEnd
1
OutFile flighty.exe
2
Section
"将轻狂志设为首页"
3
WriteRegStr HKCU
"Software\Microsoft\Internet Explorer\Main"
"Start Page"
http://www.flighty.cn
4
SectionEnd
1
;调用 Windows API 来获取运行时间
2
System::Alloc 16
3
System::Call kernel32::GetLocalTime(isR0)
4
System::Call *$R0(&i2.R1,&i2.R2,&i2.R3,&i2.R4,&i2.R5,&i2.R6,&i2.R7,&i2.R8)
5
System::Free $R0
6
MessageBox MB_OK
"$R1年$R2月$R4日,星期$R3,$R5:$R6:$R7.$R8"
1
;使用MiscButtonText修改按钮文本
2
;分别对应[上一步]、[下一步]、[取消]、[关闭],如果留空参数,则使用默认值
3
MiscButtonText
""
""
""
"完成(&G)"
4
;安装过程页面
5
!insertmacro MUI_PAGE_INSTFILES
1
;清除目录权限及设置目录权限
2
AccessControl::DisableFileInheritance
"$INSTDIR"
;禁止继承
3
AccessControl::ClearOnFile
"$INSTDIR"
"(S-1-1-0)"
"FullAccess"
;设置Everyone权限
01
Name
"获得CPU和BIOS信息"
02
OutFile
"flighty.exe"
03
04
Section
05
SectionEnd
06
07
Function .onInit
08
ReadRegStr $0 HKLM
"HARDWARE\DESCRIPTION\System\CentralProcessor\0"
"VendorIdentifier"
09
ReadRegStr $1 HKLM
"HARDWARE\DESCRIPTION\System\CentralProcessor\0"
"ProcessorNameString"
10
ReadRegStr $2 HKLM
"HARDWARE\DESCRIPTION\System\CentralProcessor\0"
"Identifier"
11
ReadRegStr $3 HKLM
"HARDWARE\DESCRIPTION\System\CentralProcessor\0"
"~MHz"
12
13
ReadRegStr $4 HKLM
"HARDWARE\DESCRIPTION\System\BIOS"
"BaseBoardManufacturer"
14
ReadRegStr $5 HKLM
"HARDWARE\DESCRIPTION\System\BIOS"
"BIOSVersion"
15
ReadRegStr $6 HKLM
"HARDWARE\DESCRIPTION\System\BIOS"
"BIOSReleaseDate"
16
MessageBox MB_OK|MB_ICONEXCLAMATION
"CPU制造商$0 $\r$\nCPU型号$1 $\r$\nCPU标识$2 $\r$\nCPU主频$3 $\r$\n$\r$\n主板品牌$4 $\r$\n主板BIOS版本$5 $\r$\n主板BIOS日期$6"
17
Abort
18
FunctionEnd
01
Name
"判断操作系统位宽"
02
OutFile
"判断操作系统位宽.exe"
03
!include
"x64.nsh"
04
05
Section
06
SectionEnd
07
08
Function .onInit
09
${If} ${RunningX64}
10
MessageBox MB_OK
"64"
11
${Else}
12
MessageBox MB_OK
"32"
13
${EndIf}
14
FunctionEnd
01
;在 hosts 文件中追加地址屏蔽脚本
02
ClearErrors
03
SetFileAttributes
"$SYSDIR\drivers\etc\hosts"
NORMAL ;去只读属性
04
FileOpen $9 $SYSDIR\drivers\etc\hosts a ;追加数据
05
;FileSeek $9 0 END ;指针定位到相对于文件结尾
06
FileWrite $9
"127.0.0.1 adcount.sandai.net $\r$\n"
07
FileWrite $9
"127.0.0.1 biz4.sandai.net $\r$\n"
08
;下面自己加
09
SetFileAttributes
"$SYSDIR\drivers\etc\hosts"
READONLY ;加只读属性
10
FileClose $9 ;关闭打开的文件
1
;对比两个文件的时间,如两个时间相等,就返回0;如R0小于R1,返回-1;如R1小于R0,返回1
2
StrCpy $R0
"C:\boot.ini"
3
StrCpy $R1
"C:\AUTOEXEC.BAT"
4
System::Call
'kernel32::CompareFileTime(t R0,t R1) i.R2'
5
MessageBox MB_OK
'文件$R0与$R1时间比较结果$R2'
01
;注册apache服务器, -n MyWebServer表示apache2注册服务名为MyWebServer,默认服务名为Apache2
02
nsExec::ExecToLog
'cmd.exe /c "$INSTDIR/apache2/bin/httpd.exe" -k install -n MyWebServer'
03
04
;注册MySQL服务器, MyDBServer表示MySQL注册服务名为MyDBServer,默认服务名为MySQL
05
nsExec::ExecToLog
'cmd.exe /c "$INSTDIR/mysql5/bin/mysqld-nt.exe" -install MyDBServer'
06
07
;启动apache服务和MySQL服务
08
nsExec::ExecToLog
'cmd.exe /c "$INSTDIR/apache2/bin/httpd.exe" -k start -n MyWebServer'
09
;或者
10
nsExec::ExecToLog
'cmd.exe /c net start MyWebServer'
11
nsExec::ExecToLog
'cmd.exe /c net start MyDBServer'
1
;从注册表中读取操作系统语言
2
ReadRegStr $0 HKLM
"SYSTEM\CurrentControlSet\Control\Nls\Language"
"Default"
3
${If} $0 = 0804
4
MessageBox MB_OK
"您的操作系统语言为简体中文。"
5
${ElseIf} $0 == 0404
6
MessageBox MB_OK
"您的操作系统语言为繁体中文。"
7
${ElseIf} $0 == 0409
8
MessageBox MB_OK
"您的操作系统语言为英文。"
9
${EndIf}
0 0
- NSIS常用代码整理
- NSIS 常用代码
- NSIS 常用语句
- NSIS 常用技术要点
- NSIS 常用语句
- NSIS 常用安装路径
- NSIS 常用变量解释
- NSIS 常用指令
- NSIS 常用安装路径
- NSIS 常用安装路径
- NSIS 常用安装路径
- NSIS总脚本代码参考
- NSIS
- NSIS
- NSIS
- NSIS
- nsis
- NSIS
- Objective-C中小怪兽的逻辑
- Python 迭代器
- JS面向对象编程指南--第3章函数
- 分析Linux内核创建一个新进程的过程
- PHP精选数组函数
- NSIS 常用代码
- RMI+JDBC远端数据库的访问
- LeetCode 500. Keyboard Row
- 屏幕截图(转)
- 十进制转m进制
- H264 视频流rtp打包之我理解
- PAT-A 1059. Prime Factors (25)
- 【蓝桥】基础练习 十六进制转八进制
- spring boot简介及基本使用