电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1114 人浏览分享

NSIS脚本 获取光驱路径【源码】

 关闭 [复制链接]
1114 4
呵呵。发些代码,有兴趣的看看吧。美女请直接略过。
  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
复制代码

评论 4

bek bek  管理员  发表于 2010-1-8 15:40:05 | 显示全部楼层
{:3_234:}

技术贴没人顶

{:3_236:}

yuantian yuantian  合格会员  发表于 2010-1-10 16:54:05 | 显示全部楼层
回复 1# bek


不是没人回复,是没几个看懂的

l6688 l6688  正式会员  发表于 2010-2-9 10:25:57 | 显示全部楼层
确实看不怎么懂。

但是支持楼主了!!

{:3_241:}

wiseqiang wiseqiang  VIP荣誉会员  发表于 2010-5-13 16:23:48 | 显示全部楼层
给种地的老百姓上了一堂英语课,
哈哈

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

本版积分规则

1

关注

23

粉丝

2901

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.