2016-05-10 58 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

相关问题