首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于用API函数做校验程序的问题 [无满意答案结贴]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 16:54:49 楼主
    各位高手,我想用API函数(getvolumeinformation)做个系统校验的VB程序,但这个程序我为什么没写对呢?按照VB的语法规则,应该是正确的阿?请大家帮忙查看下.下面是这个程序的程序体:
    Private Sub cmdoc_Click()
    Dim serialnum_lng As Long
    Dim rs As Long
    Dim label_str As String
    Dim type_str As String
    Dim flag As Boolean
    label_str = String$(255, Chr$(0))
    type_str = String$(255, Chr$(0))
    rs = GetVolumeInformation("a:\", label_str, Len(label_str), serialnum_lng, 0, 0, type_str, Len(type_str))

    flag = fun_floppydrive("a:")
    If flag = False And serialnum_lng <> "-1534748359" Then
    Form1.syszt.Caption = "用户卡没有插入,请插入用户卡!"
    Else
    flag = True
    Form1.syszt.Caption = "身份识别通过,可以进入!"
    End If

    End Sub
    我要做的意思是:开头用布尔变量做个检测软驱中是否有盘的功能,然后如果有盘,则进行读盘,并用API函数getvolumeinformation做个检测磁盘序列号的功能.然后在程序中用IF...THEN语句写进去一个磁盘的序列号,并用getvolumeinformation函数检测到的磁盘序列号根IF..THEN语句中写入的序列号字符串进行对比.如果一样则可以进入.不一样则提示不能进入.但我这个程序,我觉得写的是正确的阿?怎么它不进行序列号判断呢? 程序中:if flag=false and serialnum_lng <> "-1534748359" 这个地方是对磁盘的序列号进行检测判断.但在这里程序并不对序列号进行判断,磁盘格式化后,序列号变了.但仍然可以通过.这是怎么回事呢?

    请大家给我指导一下.多谢!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 17:58:071楼 得分:0
    If flag = False And serialnum_lng  <> "-1534748359" Then


    改成:
    If flag = False OR serialnum_lng  <> "-1534748359" Then
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 19:25:322楼 得分:0
    我改了.还是错的.改了后,即使有盘,也提示,没插入盘.更进不去了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-15 19:31:543楼 得分:0
    呵呵,多谢了!是我写错了.这回正确了.多谢!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-30 23:16:254楼 得分:0
    好像没那么简单,呵呵.
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved