杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2056|回复: 0

NSIS 获取光驱路径

[复制链接]
发表于 2017-2-26 11:03:39 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. !define MYNAME `GetCDVolume`

  2. Name ${MYNAME}
  3. Caption `${MYNAME} - Demo`
  4. XPStyle on

  5. OutFile ${MYNAME}.exe
  6. Function .onInit
  7. Call GetCDVolume
  8. Quit
  9. FunctionEnd

  10. Function GetCDVolume
  11. Push $0
  12. Push $1
  13. Push $2
  14. Push $3
  15. System::Alloc ${NSIS_MAX_STRLEN}
  16. Pop $3
  17. ;;获取全部驱动器
  18. System::Call 'kernel32::GetLogicalDriveStringsA(i, i) i(${NSIS_MAX_STRLEN}, r3)'
  19. Loop:
  20. System::Call 'kernel32::lstrlenA(t) i(i r3) .r2'
  21. IntCmp $2 0 End
  22. System::Call 'kernel32::GetDriveTypeA(t) i(i r3) .r1'
  23. StrCmp $1 5 0 Next ;是否光驱
  24. System::Call 'kernel32::GetDiskFreeSpaceExA(t, *l, *l, *l) i(i r3, 0, .r1, 0)'
  25. StrCmp $1 0 +3
  26. StrCpy $1 "有盘"
  27. Goto +2
  28. StrCpy $1 "无盘"
  29. System::Call '*$3(&t${NSIS_MAX_STRLEN} .r0)' ;光驱路径
  30. MessageBox MB_OK|MB_TOPMOST "光驱盘符路径:$0 光驱状态:$1 "
  31. Next:
  32. ;;下一驱动器
  33. IntOp $3 $3 + $2
  34. IntOp $3 $3 + 1
  35. Goto Loop
  36. End: ;;无剩余驱动器
  37. System::Free $3
  38. Pop $3
  39. Pop $2
  40. Pop $1
  41. Pop $0
  42. FunctionEnd
  43. Section -Nop
  44. SectionEnd
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-19 21:06 , Processed in 0.113351 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表