Windows系统给我们提供了许多非常实用的功能,而且都是以对话框的形式展现在用户眼前,比如:查找文件、浏览选择后执行程序,等等 ... 如果我们能在程序中以简练的代码快速调用它们,就可以移花接木般地达到需要的目的。这样,既省却了再次编写繁琐代码的过程,又能让程序快速执行(调用系统内核模块,能不快吗^_^)。以下就列举几个这样的例子:
●快速调用“查找文件对话框”
●快速调用“系统重新启动对话框”
●快速调用“程序运行对话框”
●快速调用“文件属性对话框”
●快速调用“软盘格式化对话框”
●快速调用“网络资源映射对话框”
●快速调用“查找文件对话框”
快速调用“查找文件对话框” 在Windows环境中,如果要查找一个文件,通常情况下采取的步骤是:
1、确定查找文件所在的文件夹范围
2、按热键F3
3、在出现的“查找:所有文件”窗口中,输入各个项目。
是不是有点复杂。在VB程序中,能否通过点击一个按钮,就出现第3步的“查找:所有文件”?答案是肯定的!代码如下:
'声明API函数
Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long
'定义常量参数
Const SW_SHOW = 5
'通用调用查找对话框函数
Public Sub ShowFindDialog(Optional InitialDirectory As String)
ShellExecute 0, "find", _
IIf(InitialDirectory = "", "", InitialDirectory), _
vbNullString, vbNullString, SW_SHOW
End Sub
'调用查找对话框例程
Call ShowFindDialog("C:\Program Files")
调用的代码ShowFindDialog("C:\Program Files"),非常简练。注意:如果括号中的参数不是一个合法的目录名,这一行调用命令将不会产生任何结果。如果参数为空,就等于选择了当前目录。
快速调用“系统重新启动对话框” 我们在安装应用软件时,经常遇到安装结束时要求用户重新启动机器的确认对话框,这时系统将根据用户的选择重新启动,或者暂时退出安装,等待用户手工重新启动机器。其实,在我们的应用程序中,可以用很少的代码就调用出系统本身的重新启动对话框,真的是非常的快捷!代码是:
'声明API函数
Private Declare Function SHRestartSystemMB Lib _
"shell32" Alias "#59" (ByVal hOwner As Long, ByVal _
sExtraPrompt As String, ByVal uFlags As Long) As Long
'定义系统重新启动常量参数
Private Const SystemChangeRestart = 4
'通用系统启动过程
Public Sub SettingsChanged(FormName As Form)
SHRestartSystemMB FormName.hWnd, vbNullString, SystemChangeRestart
End Sub
'调用例程
SettingsChanged Form1
运行一下,看看实际的效果图:
直接使用系统内在的功能,省得自己去绘制表单了,不仅实现的功能可以很严谨,而且样子还很专业呢!
快速调用“程序运行对话框” 一般情况下,当我们需要在VB程序中调用一个外部.exe或者.com程序时,一般要用到shell命令。它提供了一种非常简捷的方式让我们执行一个确定的外部程序。但缺点也显现出了,就是它不提供用户选择执行程序的功能。你也许还记得这样的经历:我们用鼠标点击桌面左小角的“开始”,在选择“运行”,这时,就出现了一个“运行”对话框:
你可以在这里直接输入要执行的程序全路径,或者,点击“浏览”按钮,选择一个程序。
要达到同样的效果,请使用下面的代码:
'声明API函数
'引用了未公开的DLL文件shell32
Private Declare Function SHRunDialog Lib "shell32" _
Alias "#61" (ByVal hOwner As Long, ByVal UnknownP1 _
As Long, ByVal UnknownP2 As Long, ByVal szTitle _
As String, ByVal szPrompt As String, ByVal uFlags _
As Long) As Long
'通用调用运行对话框过程
'参数Title表示对话框的标题,参数Description表示对话框中的描述文字
Public Sub ShowRunDialog(ByRef CallingForm As Form, _
Optional Title As String, _
Optional Description As String)
If Title = "" Then Title = "Run"
If Description = "" Then Description = _
"Type the name of a program to open, " & _
"then click OK when finished."
SHRunDialog CallingForm.hWnd, 0, 0, _
Title, Description, 0
End
VB快速调用系统对话框上 |