1.使用OpenForms
if my.Application.OpenForms.Item("FormName") isnot nothing then搜索 do something here else do something here end if
2.使用FindWindow API
首先取得一個窗體的句柄(使用FindWindow),然后使用IsWindowVisible判斷此窗體是否顯示,還有一個IsIconic判斷窗體是否已經最小化。
相關使用方法你簡單查找一下就可以了,下面是三個函數的使用聲明:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long) As Long 相關的使用示例: Dim I As Long, J As Long, K As Long I = FindWindow(vbNullString, "我的程序") 'I為0表示“我的程序”沒有運行,否則它是程序的句柄 J = IsWindowVisible(I) 'J--如窗口可見則返回TRUE(非零) K = IsIconic(I) '判斷窗口是否已最小化,非零表示成功,零表示失敗
3.使用Process
Dim myProcesses As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("TrackRecorder") If myProcesses.Length > 1 Then MessageBox.Show("TrackRecorder.exe has run.") Windows.Forms.Application.Exit() End If