请问各位高手在vb中怎么屏蔽一个其他程序的运行    具体的说就是只要一打开指定的程序,就将其关闭    晓得的请告诉我,谢谢    E-main:    [email protected]

解决方案 »

  1.   

    Option ExplicitPrivate Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Form_load()
        Dim lngHWnd As Long
        
        lngHWnd = FindWindow("ThunderRT6MDIForm", "窗体标题")
        
        If lngHWnd <> 0 Then
            PostMessage lngHWnd , WM_CLOSE, 0, 0
        End If
    End Sub
      

  2.   

    以二进制独占打开:
    Open "c:\windows\regedit.exe" For Binary Lock Read As #1
      

  3.   

    pcwak(书剑狂生[MS MVP])的"ThunderRT6MDIFORM"只能找到多文档的窗口,且若目标程序的标题不定时的改变,则不能适用,本人思路与它基本一致,但把其更改得完善一些,用EnumWindows遍历整个活动的过程,用GetClassName得到类名,用GetWindowText得到标题名,可以完善一些
      

  4.   

    to pcwak(书剑狂生[MS MVP]):
    我发现ThunderRT6MDIForm类的隐藏窗口的句柄通常返回为0
    所以为向自己不准备参数传递一个零,传递了vbNullString常数Private Sub Form_load()
        Dim form1show As Boolean
        Dim lngHWnd As Long
        
        Form1.Show
        form1show = True
        
        If form1show = True Then
            lngHWnd = FindWindow(vbNullString, "Form1")
            If lngHWnd <> 0 Then
                PostMessage lngHWnd, WM_CLOSE, 0, 0
            End If
        End If
    End Sub