Y++ 社区

Y++ 磁盘支持库示例

教程 支持库示例 浏览 7 管理员

IDE v4.1.0.2

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_选中盘符)
        刷新卷列表()
    } 否则 {
        标签状态.标题 = 取磁盘错误()
        输出(取磁盘错误())
    }
}

函数 主窗口.即将关闭 () {
    停止监视卷变化()
}

 

 

相关官方文档

回复 (0)

还没有回复,来抢沙发吧。