我是VB.net的新手,我正在尝试运行一个半中间脚本来检查某些文件是否打开。当它第一次打开时,它会检查一个特定的程序,然后它将继续检查计时器上的不同程序。当我运行代码时,Sub Timer1永远不会运行,我将它设置为每20秒运行一次..
Imports System.Net
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If (Process.GetProcessesByName("PROGRAM1").Length >= 1) Then
MessageBox.Show("This Client is already running!", "IG Error", MessageBoxButtons.OK, MessageBoxIcon.Stop)
Environment.Exit(0)
Else
Process.Start(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "program.exe"))
'''' OPEN PROGRAM ABOVE ''''
End If
For Each frm As Form In Application.OpenForms
frm.WindowState = FormWindowState.Minimized
Next frm
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If (Process.GetProcessesByName("PROGRAM2").Length >= 1) Then 'CHECK FOR PROGRAM
MessageBox.Show("Program is running!", "IG Error", MessageBoxButtons.OK, MessageBoxIcon.Stop)
Environment.Exit(0)
Form3.Show()
Else
MessageBox.Show("Program is not running!")
End If
End Sub
End Class
上面是我已经拥有的代码..我的计时器子要么没有运行,要么没有每20秒检查一次。 有什么想法吗?
答案 0 :(得分:3)
与计时器的常见错误是:
您需要使用timer.enabled或timer.start启动它。
您可能需要在tick处理程序中重置计时器,具体取决于计时器和属性设置的类型。 (有定时器控件,system.timers.timer和system.threading.timer,每个都有一点不同。)
您可能需要在tick处理程序中暂时禁用它,以确保它不会重新进入处理程序并导致问题。
如果您需要在计时器运行时等待,最好使用system.threading.thread.sleep而不是循环。