13

一部のコンピューターでスケジュールされたタスクを実行する単純なフォームを c# で作成しようとしています。私がこれまでに持っているものは次のとおりです。

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!");
        }

何らかの理由でこれが機能しません (IE - スケジュールされたタスクが開始されませんでした)。これをcmdから実行してみました:

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

そしてそれはうまくいきました。助言がありますか?ありがとう!

4

3 に答える 3

10

タスク スケジューラに .NET ラッパーの 1 つを使用することをお勧めします。

私は過去にこれを使って効果を上げました。

于 2011-11-03T10:45:10.933 に答える
2

私はうまく動作する次のものを使用していますが、役立つかもしれません(引数を差し込む)

var p = new Process
                            {
                                StartInfo =
                                    {
                                        UseShellExecute = false,
                                        FileName = "SCHTASKS.exe",
                                        RedirectStandardError = true,
                                        RedirectStandardOutput = true,
                                        CreateNoWindow = true,
                                        WindowStyle = ProcessWindowStyle.Hidden,
                                        Arguments = arguments
                                    }
                            };
            p.Start();
于 2011-11-03T10:45:03.303 に答える