有没有办法让vb.net检测外部.exe的窗口/窗体是否被点击?
我已经调查了停用事件但无法使其工作,我不确定这是否是我实现所需结果所需的:
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 :(得分: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
此示例检查记事本是否已打开。如果它尚未打开,它将继续检查,直到它被打开,这几乎是你要求的(除了没有涉及点击)。要添加计时器,请转到表单设计器视图,然后只需拖动或双击“计时器”控件即可放置在表单上,此代码将全部设置完毕。
答案 1 :(得分:0)
我发现了问题...而不是form1.Deactivate它应该是Me.Deactivate