Y++ 磁盘支持库示例
Y++ 磁盘支持库示例
约 1579 字 · 4 分钟阅读
Y++ 基础支持库-磁盘操作支持库示例代码:
文本 g_选中盘符
函数 动作名 (整数 a) 文本 {
如果 (a == 1) { 返回 ("到达") }
如果 (a == 2) { 返回 ("移除") }
返回 ("动作" + 到文本(a))
}
函数 类型名 (整数 t) 文本 {
如果 (t == 2) { 返回 ("可移动") }
如果 (t == 3) { 返回 ("固定") }
如果 (t == 4) { 返回 ("网络") }
如果 (t == 5) { 返回 ("光驱") }
如果 (t == 6) { 返回 ("RAM") }
如果 (t == 1) { 返回 ("无效") }
返回 ("未知")
}
函数 记事件 (文本 行) {
列表事件.加入项目(行)
标签状态.标题 = 行
输出(行)
}
函数 卷变化 (文本 盘符, 整数 动作) {
记事件(动作名(动作) + " " + 盘符 + " 类型=" + 类型名(取最近卷类型()))
如果 (动作 == 1) {
刷新卷列表()
}
}
函数 刷新卷列表 () {
列表卷.清空()
文本 盘[] = 取磁盘列表()
文本 盘符 = ""
遍历 (盘符, 盘) {
文本 行 = 盘符
如果 (磁盘是否就绪(盘符)) {
整数 盘号 = 取物理磁盘序号(盘符)
行 = 行 + " [" + 类型名(取磁盘类型(盘符)) + "]"
+ " 卷标=" + 取卷标(盘符)
+ " FS=" + 取文件系统(盘符)
+ " SN=" + 取卷序列号(盘符)
+ " 总线=" + 取总线类型(盘符)
+ " 簇=" + 到文本(取簇大小(盘符))
+ " 只读=" + 到文本(磁盘是否只读(盘符))
+ " 物理盘=" + 到文本(盘号)
} 否则 {
行 = 行 + " [未就绪]"
}
列表卷.加入项目(行)
}
文本 移动[] = 取磁盘列表(2, 真)
标签状态.标题 = "全部=" + 到文本(数组长度(盘))
+ " 就绪可移动=" + 到文本(数组长度(移动))
}
函数 取列表盘符 (整数 索引) 文本 {
如果 (索引 < 0) {
返回 ("")
}
文本 行 = 列表卷.取项目文本(索引)
如果 (取文本长度(行) < 3) {
返回 ("")
}
返回 (取文本左边(行, 3))
}
函数 主窗口.创建完毕 () {
g_选中盘符 = ""
如果 (!监视卷变化(&卷变化)) {
标签状态.标题 = 取磁盘错误()
} 否则 {
标签状态.标题 = "已监视卷变化;可插拔移动盘验证"
}
刷新卷列表()
}
函数 按钮刷新.单击 (整数 X, 整数 Y) {
刷新卷列表()
}
函数 列表卷.选中项改变 (整数 当前索引, 文本 项目) {
g_选中盘符 = 取列表盘符(当前索引)
如果 (g_选中盘符 == "" 且 取文本长度(项目) >= 3) {
g_选中盘符 = 取文本左边(项目, 3)
}
标签选中.标题 = "选中: " + g_选中盘符
}
函数 按钮置卷标.单击 (整数 X, 整数 Y) {
如果 (g_选中盘符 == "") {
g_选中盘符 = 取列表盘符(列表卷.取当前索引())
}
如果 (g_选中盘符 == "") {
标签状态.标题 = "请先选中盘符"
返回 ()
}
整数 t = 取磁盘类型(g_选中盘符)
如果 (t <> 2) {
标签状态.标题 = "演示仅对可移动卷改卷标(当前 " + 类型名(t) + ")"
返回 ()
}
文本 旧 = 取卷标(g_选中盘符)
文本 新 = "YPP" + 取文本右边(到文本(取时间戳()), 4)
如果 (!置卷标(g_选中盘符, 新)) {
标签状态.标题 = 取磁盘错误()
返回 ()
}
标签状态.标题 = "卷标 " + 旧 + " -> " + 取卷标(g_选中盘符) + "(可再改回)"
刷新卷列表()
}
函数 按钮弹出.单击 (整数 X, 整数 Y) {
如果 (g_选中盘符 == "") {
g_选中盘符 = 取列表盘符(列表卷.取当前索引())
}
如果 (g_选中盘符 == "") {
标签状态.标题 = "请先在列表中选中一个盘符"
返回 ()
}
整数 t = 取磁盘类型(g_选中盘符)
如果 (t <> 2 且 t <> 5) {
标签状态.标题 = "跳过:仅可移动/光驱可弹出(当前 " + 类型名(t) + ")"
返回 ()
}
如果 (弹出磁盘(g_选中盘符)) {
记事件("已请求弹出 " + g_选中盘符)
刷新卷列表()
} 否则 {
标签状态.标题 = 取磁盘错误()
输出(取磁盘错误())
}
}
函数 主窗口.即将关闭 () {
停止监视卷变化()
}
还没有回复,来抢沙发吧。