软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 电脑教程 > 编程开发 > 其它语言 > NSIS脚本:常用API [NSIS打包函数合集]

NSIS脚本:常用API [NSIS打包函数合集]

SetCompressor /SOLID lzma
SetCompress force
XPStyle on
OutFile "常用API函数集.EXE"
Name "常用API函数集"
Section
;获得安装程序所在目录
System::Call 'kernel32::GetCurrentDirectory(i 1024,t .R1)'
MessageBox MB_OK '安装程序所在目录:$R1'

;获得当前安装程序进程PID
System::Call 'kernel32::GetCurrentProcessId()i .R0'
MessageBox MB_OK '安装程序进程PID:$R0'

;获得磁盘卷标
StrCpy $R0 "C:\"
System::Call 'kernel32::GetVolumeInformationA(t R0,t .R1,i 100,i .R3,i .R4,i .R5,t .R6,i 100)'
MessageBox MB_OK '盘符:$R0$\n卷标:$R1$\n文件格式:$R6'

;设置磁盘卷标
StrCpy $R0 "C:\" ;盘符
StrCpy $R1 "系统" ;卷标
System::Call 'kernel32::SetVolumeLabelA(t R0,t R1)'

;对比两个文件的时间,如两个时间相等,就返回0;如R0小于R1,返回-1;如R1小于R0,返回1
StrCpy $R0 "C:\boot.ini"
StrCpy $R1 "C:\AUTOEXEC.BAT"
System::Call 'kernel32::CompareFileTime(t R0,t R1) i.R2'
MessageBox MB_OK '文件$R0与$R1时间比较结果$R2'

;获取分区数目,结果显示是十进制,转换成二进制后
;二进制位标志着存在哪些驱动器。其中,位0设为1表示驱动器A:存在于系统中;
;位1设为1表示存在B:驱动器;以次类推
System::Call 'kernel32::GetLogicalDrives()i.R1'
MessageBox MB_OK '分区数目对应数:$R1'


;移动文件堆栈模式
Push "D:\1.txt" ;目标文件
Push "C:\1.txt" ;来源文件
System::Call "Kernel32::MoveFileExA(t s,t s,i 2)"

;移动文件变量模式
StrCpy $R0 "C:\A\1.txt" ;来源文件
StrCpy $R1 "C:\1.txt" ;目标文件
System::Call 'Kernel32::MoveFileA(t R1,t R0)'

;设置文件属性
StrCpy $R0 "C:\1.EXE" ;文件
StrCpy $R1 0x20 ;属性
System::Call 'kernel32::SetFileAttributesA(t R0,i 0x100)'
;属性表
;0x20 FILE_ATTRIBUTE_ARCHIVE,存档
;0x2 FILE_ATTRIBUTE_HIDDEN,隐藏
;0x80 FILE_ATTRIBUTE_NORMAL,正常
;0x2000 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED,不索引
;0x1000 FILE_ATTRIBUTE_OFFLINE,离线
;0x1 FILE_ATTRIBUTE_READONLY,只读
;0x4 FILE_ATTRIBUTE_SYSTEM,系统
;0x100 FILE_ATTRIBUTE_TEMPORARY,;临时属性(一般无效)

;获取8.3标准路径
StrCpy $R0 "C:\Program Files\NSIS\Include"
System::Call 'kernel32::GetShortPathName(t R0,t .R1,i 1024)'
MessageBox MB_OK '$R1'
SectionEnd

    相关阅读
    网友评论
    栏目导航
    推荐软件