[vb.net]判斷窗體是否已打開


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM