2011-11-03 10 views
8

मैं सी # में एक साधारण रूप लिखने की कोशिश कर रहा हूं जो एक निश्चित कंप्यूटर को एक निर्धारित कंप्यूटर चलाएगा। Whet मैं अब तक है:सी # एक निर्धारित कार्य शुरू करें

private void button_Click(object sender, EventArgs e) 
    { 
     try 
     { 

      for (int i = 0; i < num_of_computers; i++) 
      { 
       string line; 
       line = (" /run /tn myTask /s " + _ReplacerObj.MyComputers[i] + " /u user s /p password"); 
       proc.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; 
       proc.FileName = @"C:\WINDOWS\SYSTEM32\schtasks.exe"; 
       proc.Arguments = line; 
       Process.Start(proc); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString(), "Error Message!"); 
     } 

किसी कारण यह काम नहीं करता के लिए (आईई - निर्धारित कार्य शुरू नहीं किया)। मैंने cmd से चलने की कोशिश की:

c:\windows\system32\schtasks.exe /run /tn myTask /s myIp /u user /p password 

और यह ठीक काम किया। कोई सुझाव? धन्यवाद!

+0

"किसी कारण से" - क्या कारण? यह कुछ भी हो सकता है। क्या आपके पास कोई त्रुटि संदेश है? जब आप डीबगर में यह कोड चलाते हैं तो 'Process.Start' एक मान देता है - यानी प्रक्रिया? – ChrisF

+0

क्या आपने कमांड प्रॉम्प्ट में जो परीक्षण किया है उसके समान होने के लिए स्ट्रिंग की पुष्टि की है? –

उत्तर

0

मैं जिसके बाद ठीक काम करता है का उपयोग करें, मदद की हो सकता है (अपने तर्क में प्लग लगाने)

var p = new Process 
          { 
           StartInfo = 
            { 
             UseShellExecute = false, 
             FileName = "SCHTASKS.exe", 
             RedirectStandardError = true, 
             RedirectStandardOutput = true, 
             CreateNoWindow = true, 
             WindowStyle = ProcessWindowStyle.Hidden, 
             Arguments = arguments 
            } 
          }; 
      p.Start(); 
6

मैं काम अनुसूचक के लिए .NET रैपर में से एक का उपयोग करें।

मैंने अतीत में this one का अच्छा प्रभाव डाला है।

0

माइक्रोसॉफ्ट.Win32.TaskScheduler का उपयोग कर;

using (TaskService tasksrvc = new TaskService(@"\\" + servername, username, domain, password, true)) 
{  
    Task task = tasksrvc.FindTask(taskSchedulerName); 
    task.Run(); 
} 
संबंधित मुद्दे