exe启动后,计时器无法启动

时间:2016-09-02 17:35:02

标签: c# timer console startup

我正在使用C#,visual studio community 2013和Windows 8.1 Pro

我在c#(控制台)中做了一个测试程序,在一段时间(1分钟)之后创建了一个文件txt我也在用户登录时启动了exe,这个工作正常,除非我重启我的电脑。

当我重新启动我的电脑时,程序执行成功但是1分钟后更多不会创建文件txt。我可以在任务管理器中看到exe正在运行。

我认为当它以这种方式开始(登录)时计时器不起作用,但我不知道为什么。

我做错了什么?

注意:控制台始终处于隐藏状态。

感谢。

Code Main:

static void Main(string[] args)
    {
        RegisterInStartup(true);

        System.Timers.Timer aTimer = new System.Timers.Timer();
        aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        aTimer.Interval = 60000;
        aTimer.Enabled = true;

        // Hide
        var handle = GetConsoleWindow();
        ShowWindow(handle, SW_HIDE);
        while(true);

    }

RegisterInStartup:

private static void RegisterInStartup(bool isChecked)
    {
        RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
        if (isChecked)
        {
            registryKey.SetValue("ApplicationName", "\"" + Application.ExecutablePath.ToString() + "\"");
        }
        else
        {
            registryKey.DeleteValue("ApplicationName");
        }
        registryKey.Close();
    }

事件计时器:

private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {
        //only for testing
        StreamWriter objWriter;
        objWriter = new StreamWriter(@"testing.txt");
        objWriter.Write("now");
        objWriter.Close();
    }

0 个答案:

没有答案
相关问题