VB 切换到指定的应用程序上

VB 切换到指定的应用程序上,第1张

呵,如果是可执行程序的话,就用下面的:

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/11395726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存