2016-05-10 61 views
0

有沒有辦法讓我可以通過vb.net來檢測是否點擊了外部.exe的窗口/窗體?如何檢測某個其他應用程序是否被點擊打開? (vb.net)

我特地到停用事件,但不能讓它的工作,而我不能確定這是否是我需要實現我想要的結果:

Private Sub Form1_Deactivate(sender As Object, e As EventArgs) Handles Form1.Deactivate 
    MessageBox.Show("You are in the Form.Deactivate event.") 
End Sub 

運行時,我得到的錯誤上面的代碼如下:

嚴重性代碼描述項目文件行抑制狀態 錯誤BC30506 Handles子句需要在包含類型或它的基類型之一定義的WithEvents變量。

這說什麼都不能識別給我。有任何想法嗎?

+0

通常情況下是沒有辦法,除非你能破解Windows的消息隊列和PEEK上的所有鼠標事件......這是可能的但祝你好運...檢查MSDN什麼這個事件... –

回答

0

這將很難檢測到點擊,但有一個解決方法。您可以設置一個計時器來運行(在這個例子中每半秒),以檢查是否在應用程序運行:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Timer1.Enabled = True 
    Timer1.Interval = 500 'in milliseconds 
End Sub 

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 
    Dim yourProcess() As Process 

    yourProcess = Process.GetProcessesByName("notepad") 

    If yourProcess.Count > 0 Then 
     Timer1.Enabled = False 'Stop the timer 
     MessageBox.Show("Your application has been opened!") 
    End If 
End Sub 

這個例子檢查是否記事本打開。如果它尚未打開,它將繼續檢查,直到它被打開,這幾乎是你要求的(除了沒有涉及到點擊)。要添加計時器,請轉到您的表單設計器視圖,只需拖動或雙擊「計時器」控件即可放置您的表單,並且此代碼將全部設置。

0

我發現這個問題......而是form1.Deactivate的應該是Me.Deactivate

相關問題