|
当前位置:电脑报电子版 > 1999 年 > 30 期 > 软件世界 > VB编程俱乐部 |
《 VB编程俱乐部 》 |
大家好!《VB编程俱乐部》又与你们见面了。非常感谢朋友们对《VB编程俱乐部》的支持,从朋友们的来信中发现,支持我们的朋友中不仅有许多中学生、大学生,还有许多现役军人,看来我们的栏目已经深入到各个领域。为了使这个栏目能进一步与朋友们交流,请大家在提交问题或解答问题时,用 VBForums@126.com 或 VBForums@bigfoot.com邮件地址,同时也可以通过访问网站http://VBForums.yeah.net 在BBS板上讨论。如果需要订阅VBForums,请向 sub-vbforums@e-lists.lawton.com.cn 发送一封空白信即可。 问题1:请问用什么样的方法能使删除后的文件放到“回收站”里? 答:下面的回答是Prisoner 摘自Microsoft Knowledge Base中的一个例子,可以使删除后的文件放到回收站里。 1)首先建立一个新模块;在模块中增加如下声明: Type SHFILEOPSTRUCT hWnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAborted As Boolean hNameMaps As Long sProgress As String End Type Public Const FO_DELETE = &H3 Public Const FOF_ALLOWUNDO = &H40 Declare Function SHFileOperation Lib ″shell32.dll″ Alias ″SHFileOperationA″ (lpFileOp As SHFILEOPSTRUCT) As Long 2)建立一个名为 ShellDelete 的函数,用于删除文件: Public Function ShellDelete(ParamArray vntFileName() As Variant) Dim I As Integer Dim sFileNames As String Dim SHFileOp As SHFILEOPSTRUCT For I = LBound(vntFileName) To UBound(vntFileName) sFileNames = sFileNames & vntFileName(I) & vbNullChar Next I sFileNames = sFileNames & vbNullChar With SHFileOp .wFunc = FO_DELETE .pFrom = sFileNames .fFlags = FOF_ALLOWUNDO End With ShellDelete = SHFileOperation(SHFileOp) End Function 3)下面就是用于删除文件并送到“回收站”的代码,你可以根据情况进行修改,使它符合你的需要: Private Sub Command1_Click() Dim FileToKill As String FileToKill = ″c:\test*.txt″ ShellDelete FileToKill MsgBox ″File(s) deleted″ End Sub 问题2:我有一含有密码的数据库(mdb),使用以下语句可在VB中打开:Set testdb =Opendatabase(″File.mdb″,false,false,″;PWD=YourPassword″), 我想将结果传给datagrid控件中,不知如何去做或在data控件中如何打开含有密码的数据库。 答:打开的方法如下: Dta.DatabaseName = App.Path & ″\″ & PubDBName Dta.Connect = ″;pwd=″ & PubDBPassword Dta.RecordSource = ″Polo_Browse″ Dta.Refresh (本题答案由Taylor提供) 问题3:一般用鼠标单击窗口右上角的“X”时,程序立刻退出,但有的程序在退出时会弹出一个确认窗口供确认,请问这是如何实现的? 答:可以利用Form的Form_QueryUnLoad事件在用户单击“”时进行确认: Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = True Select Case MsgBox(″真的关闭吗?″, vbOKCancel,″请您回答″) Case vbOK Cancel = False Case Else Cancel = True End Select End Sub 问题4:我用VB写了一个应用软件,想将其做成电子注册版。但是,我对怎样获得电脑中的某一个区别于其它电脑的唯一参数(如:CPU串号/硬盘IDE参数等)的方法不了解,请指点。 答:下 面 的 这 个 例 子 是 使 用 GetVolumeInformation获 得 磁 盘 的 序 列 号 : Private Declare Function GetVolumeInformation Lib ″kernel32″ Alias ″GetVolumeInformationA″ (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long Function GetSerialNumber(strDrive As String) As Long Dim SerialNum As Long Dim Res As Long Dim Temp1 As String Dim Temp2 As String Temp1 = String$(255, Chr$(0)) Temp2 = String$(255, Chr$(0)) Res = GetVolumeInformation(strDrive, Temp1,Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2)) GetSerialNumber = SerialNum End Function 调 用 时 使 用 GetSerialNumber(″C:\″)就 可 以 。 (本题答案由askpro提供) (VB版主 庞一鸣) |
下载本期推荐软件 | 页 首 |
《电脑报》版权所有,电脑报网站编辑部设计制作发布 |