由Scheduled Task启动时,应用程序不执行Form1_load方法

时间:2013-04-02 10:04:20

标签: c#

我使用Windows窗体在C#中安装了一个应用程序。我的应用程序正常工作,但是当我想通过操作系统(Windows 7)使用计划任务启动它时,它不会加载Form1_load方法。我怎么能解决这个问题?

这是Form1_load方法的主体:

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

            bool fResult = false;
            fResult = registerDeviceNotification();
            g_oGeneratorManager = new CGeneratorManager();
            if (true != fResult)
            {
                Debug.WriteLine("Register device notification failed");
                MessageBox.Show("Register device notification failed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            lblStatus.Text = "Running";
        }
        catch (Exception ex)
        {
            this.Visible = false;
            CLog.Err(ex.Message);
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            Application.Exit();
        }
    }

1 个答案:

答案 0 :(得分:0)

任务调度程序意味着执行类似命令或控制台应用程序,而不是ui。

拆分您打算在任务计划程序下执行的代码,并将这些代码包装在(dll)

然后用ui创建2个单独的项目: 第一个是你现有的winform,但你改变了代码以重用dll。 第二个项目是控制台应用程序,与winform类似,重用dll逻辑。

现在使用控制台应用程序来执行任务计划程序。