shell
(pathname,Windowstyle)例如我要打开暴风影音,
Private
Sub
Command1_Click()
Shell
"C:\Program
Files\StormII\Storm.exe",
1
end
sub
如果不是可执行程序,你就要指定找开此文件的程序,如我要打开C盘上的一个叫123.txt的文件,
Private
Sub
Command1_Click()
Shell
"notepad.exe
C:\123.txt",
1
end
sub
在vb界面的右侧,一般有个工程窗口,如果没有,请找到“视图”里的“工程资源管理器”,单击一下,在右上角就会显示出来。在这个窗口里你会看到有个工程字样的,前面可能有加号或减号,如果是加号时,就单击一下加号,如此把加号都变成减号即可,这样里面的多个窗体都会显示出来。下面说怎么切换:想查看哪个窗体这时就单击那个窗体的图标(名称)就可以进行切换了。
我说的是具体的 *** 作,不知道说的够不够具体!
这是一个根据窗口标题用枚举法模糊查找一个匹配的窗口句柄,并将该句柄指向的窗口呼出前台。为了能100%选择记事本窗体,应尽量提供完整的窗口标题,并确保窗口标题的唯一性,否则程序只会将第最后一个匹配的窗口呼出。以下代码运行后点击按钮即将标题含有“记事本”的窗口转到当前状态。我都加了注释,你可以根据需要来修改:
'新建一个工程 _
'创建一个textbox:text1
'创建一个按钮:command1
'粘贴以下代码:
Private Sub Form_Load()
Text1 = "记事本"
End Sub
Private Sub Command1_Click()
If Text1 = "" Then Exit Sub
LHWND = 0 '枚举前为0,预防找不到时查错
EnumWindows AddressOf EnumWindowsProc, 0&'枚举第一个匹配的句柄
ShowWindow LHWND, SW_RESTORE '窗口被最小化时的呼出
SetForegroundWindow LHWND'设置为活动状态
If LHWND = 0 Then MsgBox "找不到匹配窗口标题的句柄!"
End Sub
添加一个模块粘贴以下代码:
添加一个模块粘贴以下代码:
添加一个模块粘贴以下代码:
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const SW_RESTORE = 9
Public LHWND As Long
Public Function EnumWindowsProc(ByVal lngHwnd As Long, ByVal lParam As Long) As Boolean
Dim s As String * 255
GetWindowText lngHwnd, s, 255 '获得窗口标题文字
If InStr(s, Form1.Text1) <>0 Then '判断是否匹配要查找的窗口的标题
LHWND = lngHwnd '得到匹配的窗口的句柄
End If
EnumWindowsProc = True
End Function
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)