2013-02-24 19 views
5

नहीं चल रहा है मैं VB.net के लिए बिल्कुल नया हूं, और मैं एक अर्ध-मध्यवर्ती स्क्रिप्ट चलाने की कोशिश कर रहा हूं जो कुछ फ़ाइलों को खोलने के लिए जांचता है। जब यह पहली बार खुलता है, तो यह एक विशेष कार्यक्रम की जांच करता है, फिर यह टाइमर पर एक अलग कार्यक्रम की जांच जारी रखेगा .. हालांकि; जब मैं कोड चलाने के लिए, उप Timer1 कभी नहीं चलाता है, मैंटाइमर टिक हैंडलर

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 सेकंड चलाने के लिए है .. .. मेरी घड़ी उप या तो चल रहे हैं या प्रतिसाद नहीं नहीं है ' हर 20 सेकंड की जांच नहीं। कोई विचार? टाइमर के साथ

+0

कॉल [ 'Timer.Start()'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.start.aspx) पहले, या सेट ' टाइमर। सक्षम = सही' – alldayremix

+0

एक टाइमर शुरू करने की आवश्यकता है। क्या आप अपना टाइमर शुरू/सक्षम करते हैं? यदि हाँ कहाँ? – Steve

+0

मैंने इसे नहीं कहा है: पी बीआई इसे अभी कॉल करें और यह बताता है कि यह काम करता है (: –

उत्तर

3

आम गलतियों हैं:

  1. आप या तो timer.enabled या timer.start के साथ शुरू करने के लिए की जरूरत है।

  2. टाइमर और संपत्ति सेटिंग्स के प्रकार के आधार पर आपको टिक हैंडलर में टाइमर रीसेट करने की आवश्यकता हो सकती है। (टाइमर नियंत्रण, system.timers.timer, और system.threading.timer है, जिनमें से प्रत्येक थोड़ा अलग है।)

  3. आपको यह सुनिश्चित करने के लिए अस्थायी रूप से टिक हैंडलर में अक्षम करने की आवश्यकता हो सकती है हैंडलर दोबारा दर्ज न करें और समस्याएं पैदा करें।

  4. यदि आपको टाइमर चलने के दौरान प्रतीक्षा करने की आवश्यकता है, तो यह लूप के बजाय system.threading.thread.sleep का उपयोग करने के लिए बहुत बेहतर है।

+0

वास्तव में बहुत उपयोगी था ... स्वीकार किया जाना चाहिए –

संबंधित मुद्दे