| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 进程_PID取路径 | 文本型 | 解决了一个句柄泄漏问题 | |||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| PID | 整数型 | 进程ID | |||||
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| handle | 整数型 | |||||
| a | 文本型 | |||||
| buf | 文本型 | |||||
如果真 (handle = 0)
handle = 进程_强力打开进程 (1024, 假, PID)buf = 取空白文本 (512)
如果真 (GetProcessImageFileNameA (handle, buf, 512) = 0)
返回 (“”)CloseHandle (handle)
buf = DOS路径转换_ (buf)
buf = 删首尾空 (buf)
如果 (buf = “”)
返回 (“-”)
a = buf
a = 子文本替换 (a, “\Device\HarddiskVolume6”, “H:”, , , 假)
a = 子文本替换 (a, “\Device\HarddiskVolume5”, “G:”, , , 假)
a = 子文本替换 (a, “\Device\HarddiskVolume4”, “F:”, , , 假)
a = 子文本替换 (a, “\Device\HarddiskVolume3”, “E:”, , , 假)
a = 子文本替换 (a, “\Device\HarddiskVolume2”, “D:”, , , 假)
a = 子文本替换 (a, “\Device\HarddiskVolume1”, “C:”, , , 假)
返回 (a)
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| DOS路径转换_ | 文本型 | ||||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| txt | 文本型 | ||||||
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| buf_ | 文本型 | |||||
| buf | 字节集 | |||||
| size | 整数型 | |||||
| 数组 | 字节集 | 0 | ||||
| 驱动器数目 | 整数型 | |||||
| n | 整数型 | |||||
| 逻辑驱动器 | 文本型 | 0 | ||||
| DOS设备 | 文本型 | 0 | ||||
| 局_数据 | 文本型 | |||||
buf = 取空白字节集 (size)
GetLogicalDriveStringsA (size, buf) ' 获取逻辑驱动器文本
数组 = 分割字节集 (buf, { 0 }, )
驱动器数目 = 取数组成员数 (数组) - 1
如果真 (驱动器数目 > 0)
重定义数组 (逻辑驱动器, 假, 驱动器数目)
重定义数组 (DOS设备, 假, 驱动器数目)
计次循环首 (驱动器数目, n)
buf = 数组 [n]
buf [取字节集长度 (buf)] = 0
逻辑驱动器 [n] = 到文本 (buf)
buf_ = 取空白文本 (260)
QueryDosDeviceA (逻辑驱动器 [n], buf_, 260)
DOS设备 [n] = buf_
计次循环尾 ()
n = 0
计次循环首 (驱动器数目, n)
局_数据 = 文本_取右边 (txt, “\Device\”, , )
局_数据 = “\Device\” + 文本_取左边 (局_数据, “\”, , )

如果真 (局_数据 = DOS设备 [n])

' 把路径中类似于 \Device\HarddiskVolume1 的部分用 C:、D:等对应代替

txt = 子文本替换 (txt, DOS设备 [n], 逻辑驱动器 [n], 0, 1, 假)

返回 (txt)

跳出循环 ()



计次循环尾 ()返回 (txt)
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| GetLogicalDriveStringsA | 整数型 | _系统取所有磁盘盘符 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 装载到lpBuffer的字符数量(排除空中止字符)。如缓冲区的长度不够,不能容下路径,则返回值就变成要求的缓冲区大小。零表示失败。会设置GetLastError | ||
| DLL库文件名: | ||||
| kernel32 | ||||
| 在DLL库中对应命令名: | ||||
| GetLogicalDriveStringsA | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| 缓冲器长度 | 整数型 | lpBuffer字串的长度 | ||
| 缓冲区 | 字节集 | 用于装载逻辑驱动器名称的字串。每个名字都用一个NULL字符分隔,在最后一个名字后面用两个NULL表示中止(空中止); | ||
词条作者信息 使用例程
