原文 NSIS常用代码整理

这是一些常用的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 0x100)'
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'

NSIS常用代码整理的更多相关文章

  1. [转]NSIS常用代码整理

    转自 http://www.flighty.cn/html/bushu/20120827_156.html 这是一些常用的NSIS代码,少轻狂特意整理出来,方便大家随时查看使用.不定期更新哦~~~ ; ...

  2. IOS常用代码整理

    常用代码整理: 12.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRege ...

  3. Ios17个常用代码整理

    .判断邮箱格式是否正确的代码 //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @" ...

  4. js常用代码整理

    引用js <script type="text/javascript" src="js/jquery-1.11.2.min.js"></scr ...

  5. js 操作select和option常用代码整理

    1.获取选中select的value和text,html代码如下: <select id="mySelect"> <option value="1&qu ...

  6. iOS 17个常用代码整理

    .判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @" ...

  7. css3常用代码整理

    1.圆角 .rd10{-moz-border-radius: 10px;-webkit-border-radius: 10px;border-radius: 10px;-khtml-border-ra ...

  8. iOS开发之17个常用代码整理

    http://www.cnblogs.com/ios8/p/ios-17-code.html

  9. Qt.常用代码整理

    窗口全屏化(此方法只对顶级窗口有效,对子窗口无效) window.showFullScreen() 字符串处理 Qt还提供了一种方便的字符串组合方式,使用QString::arg()函数,此函数的重载 ...

随机推荐

  1. 重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础

    原文:重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础 [源码下载] 重新想象 Windows 8 Store Apps (9) - 控件之 Sc ...

  2. Cocos2d-x学习笔记(19)(TestCpp源代码分析-3)

    本章主要介绍testBasic.h/cpp,这两个文件主要用于返回主场景界面. //testBasic.h #ifndef _TEST_BASIC_H_ #define _TEST_BASIC_H_ ...

  3. OPhone SDK初体验

    OPhone SDK初体验 write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 背景说明 中国伟大的垄断龙头,世界上也是顶尖的中移动最 ...

  4. javascript实现倒计时-------Day28

    先来两张图片,看一看今天写什么: 看到图片右上角是什么了么看到图片以下是什么了么 相信这个大家都不会陌生吧.那些生活中等着秒杀,等着抢小米人们,焦躁等待的你曾一秒一秒的盯着它看么,我不知道答案,可我知 ...

  5. effective c++ 条款9 do not call virtual function in constructor or deconstructor

    在构造函数中不要调用virtual函数,调用了也不会有预期的效果. 举个例子 class Transaction { public: Transaction() { log(); } ; } clas ...

  6. $POST 、$HTTP_RAW_POST_DATA、php://input三者之间的差别

    $POST .$HTTP_RAW_POST_DATA.php://input三者之间的差别 总是产生变量包括有原始的 POST 数据.否则,此变量仅在碰到未识别 MIME 类型的数据时产生.只是,訪问 ...

  7. 认识mongoDB数据库

    mongodb中有三元素:数据库,集合,文档,其中“集合”对应关系型数据库中的“表”,“文档”对应“行”. 安装mongoDB: 去官网下载对应系统的mongoDB压缩包,解压后将文件夹重命名为mon ...

  8. 用友财务总帐(GL)模BI数据ETL分析

    业务需求,如下面的: 现在用友总帐一家公司BI分析案例. /* Sql Server2012使用作业设置定时任务,为了保证有一天运行时间 */ /* 意temp1表里一定要保证要有记录,否则以temp ...

  9. Android-Service组件

    转载请标明出处:http://blog.csdn.net/goldenfish1919/article/details/40381109 原文:http://developer.android.com ...

  10. Java的λ表达(lambda)

    λ表达的基本目的 回调Java8的λ表达式 说明了Java8的λ表达式的基本用途:完毕了回调的原意--代码的參数化. 回调:能够简单地说,假设你的方法须要override底层或JDK的某个类的方法,并 ...