各位高手,我想用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" 这个地方是对磁盘的序列号进行检测判断.但在这里程序并不对序列号进行判断,磁盘格式化后,序列号变了.但仍然可以通过.这是怎么回事呢?