VB==快速调用系统对话框(全) (转)[@more@]
(作者:甘冀平 2000年12月21日 17:46)
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命令。它提供了一种非常简捷的方式让我们执行一个确定的外部程序。但缺点也显现出了,就是它不提供用户选择执行程序的功能。你也许还记得这样的经历:我们用鼠标点击桌面左小角的“开始”,在选择“运行”,这时,就出现了一个“运行”对话框:
.NET.com/tech/gu
ide/2000/12/21/image/02.gif">
你可以在这里直接输入要执行的程序全路径,或者,点击“浏览”按钮,选择一个程序。
要达到同样的效果,请使用下面的代码:
'声明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 CallingFo RM 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
'调用例程
Call ShowRunDialog(Me, "Run Dialog", "Choose a program and press OK")
怎么样,输入完以上代码了吗?执行一下看看效果,是不是很满意:
快速调用“文件属性对话框”
为了查看一个文件的大小、创建时间、存取属性(只读、归档、隐藏)等等情况,采取的步骤一般是:
1、定位文件
2、用鼠标右键单击文件
3、在出现的菜单中选择“属性”
这时,就出现了文件属性对话框。比如,对于c:autoexec.bat实施上面的操作后,图示如下:
这时,我们就能对它的各种属性值进行修改。
在VB开发中,为了实现上面的功能,要应用到ShellExecuteEX函数,具体如下:
'声明结构变量
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
'定义常量参数
Const SEE_MASK_INVOKEIDLIST = &HC
Const SEE_MASK_NOCLOSEPROCESS = &H40
Const SEE_MASK_FLAG_NO_UI = &H400
'引用API函数
Private Declare Function ShellExecuteEX Lib "shell32.dll" Alias _
"ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long
'通用调用
(作者:甘冀平 2000年12月21日 17:46)
windows 系统给我们提供了许多非常实用的功能,而且都是以对话框的形式展现在 用户眼前,比如:查找 文件、浏览选择后 执行 程序,等等 ... 如果我们能在程序中以简练的代码 快速 调用它们,就可以移花接木般地达到需要的目的。这样,既省却了再次编写繁琐代码的过程,又能让程序快速执行(调用系统内核模块,能不快吗^_^)。以下就列举几个这样的例子:
●快速调用“查找文件对话框”
●快速调用“系统重新启动对话框”
●快速调用“程序运行对话框”
●快速调用“文件属性对话框”
●快速调用“ 软盘格式化对话框”
●快速调用“ 网络资源映射对话框”
●快速调用“查找文件对话框”
快速调用“查找文件对话框”
在Windows环境中,如果要查找一个文件,通常情况下采取的步骤是:
1、确定查找文件所在的文件夹范围
2、按热键F3
3、在出现的“查找:所有文件”窗口中,输入各个项目。
![null1165971515218.gif](null1165971515218.gif)
是不是有点复杂。在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
运行一下,看看实际的效果图:
![null1165971515218.gif](null1165971515218.gif)
直接使用系统内在的功能,省得自己去绘制表单了,不仅实现的功能可以很严谨,而且样子还很专业呢!
快速调用“程序运行对话框”
一般情况下,当我们需要在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 CallingFo RM 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
'调用例程
Call ShowRunDialog(Me, "Run Dialog", "Choose a program and press OK")
怎么样,输入完以上代码了吗?执行一下看看效果,是不是很满意:
![null1165971515234.gif](null1165971515234.gif)
快速调用“文件属性对话框”
为了查看一个文件的大小、创建时间、存取属性(只读、归档、隐藏)等等情况,采取的步骤一般是:
1、定位文件
2、用鼠标右键单击文件
3、在出现的菜单中选择“属性”
这时,就出现了文件属性对话框。比如,对于c:autoexec.bat实施上面的操作后,图示如下:
![05.gif](http://www.ccidnet.com/tech/guide/2000/12/21/image/05.gif)
这时,我们就能对它的各种属性值进行修改。
在VB开发中,为了实现上面的功能,要应用到ShellExecuteEX函数,具体如下:
'声明结构变量
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
'定义常量参数
Const SEE_MASK_INVOKEIDLIST = &HC
Const SEE_MASK_NOCLOSEPROCESS = &H40
Const SEE_MASK_FLAG_NO_UI = &H400
'引用API函数
Private Declare Function ShellExecuteEX Lib "shell32.dll" Alias _
"ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long
'通用调用
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10790690/viewspace-953704/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10790690/viewspace-953704/