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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

 关闭 [复制链接]
bek 发表于 2010-1-3 13:43:26 | 显示全部楼层 |阅读模式
呵呵。发些代码,有兴趣的看看吧。美女请直接略过。
  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
复制代码
 楼主| bek 发表于 2010-1-8 15:40:05 | 显示全部楼层
{:3_234:}

技术贴没人顶

{:3_236:}
yuantian 发表于 2010-1-10 16:54:05 | 显示全部楼层
回复 1# bek


不是没人回复,是没几个看懂的
l6688 发表于 2010-2-9 10:25:57 | 显示全部楼层
确实看不怎么懂。

但是支持楼主了!!

{:3_241:}
wiseqiang 发表于 2010-5-13 16:23:48 | 显示全部楼层
给种地的老百姓上了一堂英语课,
哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|VIP|电脑疯子技术论坛 ( Computer madman team )

GMT+8, 2025-1-23 05:57

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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