精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>● VB和Basic(1)>>API函数>>關于啟動﹐關閉其他應用程式。 兼复昨日

主题:關于啟動﹐關閉其他應用程式。 兼复昨日
发信人: blstar()
整理人: (2000-08-22 08:07:03), 站内信件

此為'model1
Option Explicit

Public Const WM_CLOSE = &H10
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (By
Val hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, B
yVal lParam As Long) As Long
Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As 
Long, lpdwProcessId As Long) As Long
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal 
hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
 As Long
Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long)
 As Long

Dim hWndProcess As Long

Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As 
Boolean
    Dim pID As Long
    
    Call GetWindowThreadProcessId(hWnd, pID)
    If pID = lParam Then
        If GetParent(hWnd) = 0 Then
            hWndProcess = hWnd
            EnumWindowsProc = False ' 停止列舉 hWnd
        End If
    End If
    EnumWindowsProc = True ' 表示繼續列舉 hWnd
End Function

Function FindProcessWindow(ByVal pID As Long) As Long
    hWndProcess = 0
    Call EnumWindows(AddressOf EnumWindowsProc, pID)
    FindProcessWindow = hWndProcess
End Function



'此為form1Option Explicit

Dim pID As Long

Private Sub Command1_Click()
    pID = Shell("notepad", vbNormalFocus)
End Sub

Private Sub Command2_Click()
    Dim hWnd As Long
    
    hWnd = FindProcessWindow(pID) ' 此一函數定義於 Module1
    Call SetForegroundWindow(hWnd)
    Call PostMessage(hWnd, WM_CLOSE, 0, 0&)
End Sub

Private Sub Form_Load()

End Sub



.................我想學好VB。。。。。5555.。。。

--
.............BlueStar............
      Maybe, you are right.
[email protected]........
............OICQ:6031943.........

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.105.148.26]

[关闭][返回]