VB编程时如何检测A驱有无磁盘或磁盘写保护?

原创 2001年03月13日 00:23:00

  在一些软件中,我们会发现,当软件运行到需要向A驱读写文件时,它会自动对A驱进行检测。如果用户没有按要求在A驱插入磁盘,程序会提示用户将磁盘插入到A驱中;如果需要向A驱进行写文件,而这时A驱里的磁盘“写保护”了,程序无法向其写文件,程序也会提示用户去掉磁盘的“写保护”。
  这种智能化的提示功能能否在VB中实现呢?答案是肯定的!
  用VB写过程序的人都应该知道,在VB中有一个非常有用的语句:ON ERROR
  其作用就是启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。
  其语法:
    On Error GoTo line
    On Error Resume Next
    On Error GoTo 0 On Error
   语句的语法可以具有以下任何一种形式:

语 句 描 述
on Error GoTo line 启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误。
On Error Resume Next 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用on Error GoTo。
On Error GoTo 0 禁止当前过程中任何已启动的错误处理程序。

  有了这个ON ERROR 语句,我们就可以在其启动的错误处理程序中对错误号进行检测,由此可以得知A驱是否有磁盘以及其磁盘是否写保护。
  下面以一个简单的例子来说明在VB中用ON ERROR语句来检测A驱是否有盘或其磁盘是否写保护。
  在需要向A驱进行读写操作的模块头部写上下面这行代码:
  On Error GoTo DiskErr
  红色的DiskErr是错误处理程序的开始标识,你可以任意设定。接下来就写对A驱进行读写的程序代码,直到对所有需要处理的代码写完。在其最后加上下面这行代码:
  Exit Sub
  这行代码的作用是防止程序直接进入错误处理子程序。接下来写错误处理程序:
  DiskErr:
   Select Case Err.Number
    Case 52, 71 'A驱无盘
      If MsgBox("A驱没有磁盘!" & vbCrLf & "请在你的A驱插入软盘后再试!" & vbCrLf, vbOKCancel, "A驱错误!") = vbOK Then
        Resume '返回到出错的语句重新处理
      Else
        On Error Resume Next '忽略错误
      End If
    Case 70 'A盘写保护
      If MsgBox("请打开A盘写保护!", vbOKCancel, "A驱写入错误!") = vbOK Then
       Resume
      Else
       On Error Resume Next
      End If
    Case Else MsgBox "错误号:" & Err.Number & vbCrLf & "错误内容:" & Error, , "错误"
  End Select
  如此以来,你的程序就有了本文开头所说的智能提示功能了。快快启动你的VB试试吧!在本人个主页《文渊主页》里有一个简单的测试原代码,你可以下载回去慢慢地研究。
  如果此篇对你有所帮助,敬请你常来《文渊主页》做客!

如何对磁盘分区进行写保护

作者:洋泡泡 转自:http://www.cnblogs.com/yangpaopao/archive/2010/06/22/1762479.html      在工作中,我们有时需要对某个磁盘分...
  • whw8007
  • whw8007
  • 2016年03月14日 08:52
  • 1311

磁盘被写保护怎样去掉

磁盘被写保护怎样去掉 | 浏览:36135 | 更新:2013-01-13 19:21 | 标签: 磁盘  1 2 3 4 5 ...
  • jj0741209
  • jj0741209
  • 2014年10月18日 15:26
  • 266

提示磁盘被写保护怎么办?

我们在复制电脑上的资料到U盘的时候电脑提示出“磁盘被写保护”,不能对磁盘进行任何操作。这是怎么一回事?我们又该如何解决这个问题呢?不要急其实解决这个问题也不是很难,下面就来看看具体解决方法:   方...
  • aricxie9
  • aricxie9
  • 2015年08月09日 16:44
  • 9

如何在 Linux 系统下检测硬盘上的坏道和坏块

让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的物理损坏或闪存晶体管失效导致的。随着坏道的继续积累,它们会对你的磁盘或闪存容量产生令人不快或破坏性...
  • u014743697
  • u014743697
  • 2016年11月24日 08:55
  • 12373

磁盘性能测试

这就是摘要
  • wx199308
  • wx199308
  • 2016年12月05日 15:54
  • 460

shell之磁盘容量检查

我的做法: !/bin/bash Available=`df -k | sed -n 2p | awk '{print $4}'` if [ $Available -eq 0 ];then ...
  • qeshining
  • qeshining
  • 2016年02月25日 17:21
  • 1692

几种磁盘读写性能相关的服务器磁盘使用策略与压测方法

1、关于磁盘RAID 在以往工作中因为各种缘由,也使用过多种的磁盘高可用配置策略。谈磁盘高可用,大多数时候就是在谈数据冗余保护配置RAID。但当和实际业务结合起来时,保障业务应用的读写性能需求才是第...
  • watermelonbig
  • watermelonbig
  • 2017年04月10日 12:00
  • 1093

Word无法保存或创建此文件。请确定用于保存此文件的磁盘未满、未受写保护且未被破坏。 保存文件

Word无法保存或创建此文件。请确定用于保存此文件的磁盘未满、未受写保护且未被破坏。 保存文件...
  • lanluyug
  • lanluyug
  • 2017年12月27日 21:34
  • 300

重复数据删除:基于相同数据的检测

重复数据删除技术的核心理念就是:在存储数据时检查和比较已存在的数据,如果它们是相同的,那么就过滤掉这部分数据的备份,然后通过指针引用已存在的数据。重复数据删除目前是存储领域一个比较热门的研究课题,因为...
  • u011639902
  • u011639902
  • 2016年02月24日 15:41
  • 462

当ASM磁盘组无法MOUNT之时如何找到对应的物理磁盘?

实验环境: RHEL5 + ORACLE10.2.0.4RAC+RAW+ASM 通过此次实验你将掌握以下知识点: 1. 初步了解如何使用ORACLE两个内部工具amdu/kfed 2. 在ASM磁盘组...
  • robo23
  • robo23
  • 2014年11月30日 17:34
  • 1604
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB编程时如何检测A驱有无磁盘或磁盘写保护?
举报原因:
原因补充:

(最多只允许输入30个字)