实用软件区: QQ专区 MSN 专区 办公专区 Office 桌面主题 Excel

专业软件: x64位软件 网店软件 Linux Android iPhone iPad 塞班软件 生物信息学

公告板:

您当前的位置:绿色软件联盟 -> 文章中心 -> 软件绿化 -> 文章内容
  • NSIS脚本 怎么获取光驱路径的


 

 

下行为原码:

!define MYNAME `GetCDVolume`

Name ${MYNAME}
Caption `${MYNAME} - Demo`
XPStyle on

OutFile ${MYNAME}.exe

Function .onInit

Call GetCDVolume

Quit

FunctionEnd


Function GetCDVolume

Push $0
Push $1
Push $2
Push $3

System::Alloc ${NSIS_MAX_STRLEN}
Pop $3

;;获取全部驱动器
System::Call 'kernel32::GetLogicalDriveStringsA(i, i) i(${NSIS_MAX_STRLEN}, r3)'

Loop:
System::Call 'kernel32::lstrlenA(t) i(i r3) .r2'
IntCmp $2 0 End

System::Call 'kernel32::GetDriveTypeA(t) i(i r3) .r1'
StrCmp $1 5 0 Next ;是否光驱

System::Call 'kernel32::GetDiskFreeSpaceExA(t, *l, *l, *l) i(i r3, 0, .r1, 0)'
StrCmp $1 0 +3
StrCpy $1 "有盘"
Goto +2
StrCpy $1 "无盘"
System::Call '*$3(&t${NSIS_MAX_STRLEN} .r0)' ;光驱路径

MessageBox MB_OK|MB_TOPMOST "光驱盘符路径:$0 光驱状态:$1 "

Next:
;;下一驱动器
IntOp $3 $3 + $2
IntOp $3 $3 + 1
Goto Loop

End: ;;无剩余驱动器
System::Free $3

Pop $3
Pop $2
Pop $1
Pop $0

FunctionEnd

 

Section -Nop
SectionEnd






  • 作者:未知 来源:绿盟整理 发布时间:2009-12-30 18:10:06  

  • ----------------------------------------------------------------------The End Of XDowns' Article-----------------------------------------------------
    发表和查看本文章的评论
    相关文档浏览
    []