2013-02-24 24 views
5

VB.net için tamamen yeni yaşıyorum ve belirli dosyaların açık olduğunu denetleyen yarı ara bir komut dosyası çalıştırmaya çalışıyorum. İlk açıldığında, belirli bir program için kontrol eder, daha sonra bir zamanlayıcıda farklı bir program için kontrol etmeye devam eder. Ben kodu çalıştırdığınızda, Sub Timer1 asla çalışır, ben set her 20 saniyede koşmak zorunda ..Zamanlayıcı onay işleyicisi çalışmıyor

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 

Üstü Zaten var kodudur .. benim zamanlayıcı alt ya değil mi veya çalışıyor' Her 20 saniyede bir kontrol. Herhangi bir fikrin var mı? zamanlayıcılar ile

+0

arama [ 'Timer.Start() '] (http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.start.aspx) ilk ya da' ayarlamak Timer.Enabled = True' – alldayremix

+0

A Zamanlayıcının başlatılması gerekiyor. Zamanlayıcınızı başlatır/etkinleştirir misiniz? Evet ise nerede? – Steve

+0

Bunu aramadım: P Şimdi onu arayın ve çalışıp çalışmadığını bildirirseniz (: –

cevap

3

Yaygın hatalardan şunlardır:

  1. Sen timer.enabled veya timer.start ya ile başlamak gerekir.

  2. Zamanlayıcı türüne ve özellik ayarlarına bağlı olarak, zamanlayıcıyı onay işleyicisinde sıfırlamanız gerekebilir. (Zamanlayıcı denetimi, system.timers.timer ve system.threading.timer vardır, bunların her biri biraz farklıdır.)

  3. Bunu yapmadığından emin olmak için onay işleyicisinde geçici olarak devre dışı bırakmanız gerekebilir. İşleyiciye yeniden girip sorunlara neden olur.

  4. Bir zamanlayıcı çalışırken beklemeniz gerekiyorsa, bir döngüden ziyade system.threading.thread.sleep kullanmak daha iyi olur.

+0

gerçekten çok yardımcı oldu ... kabul edilmeli –