首页 > 解决方案 > 在clipboard.gettext 不活动x 分钟后退出应用程序

问题描述

如果您在 x 分钟内不复制我的应用程序,这是可能的。该程序然后关闭几分钟?有人可以向我解释我该如何处理吗?

编辑:我希望我的应用程序在没有正文复制时关闭,例如 2 分钟。

我该如何解决我的问题?

这是我的代码。

        protected override void WndProc(ref Message m)
    {
        base.WndProc(ref m);
        {
            const int WM_DRAWCLIPBOARD = 0x308;
            if (m.Msg == WM_DRAWCLIPBOARD)
            {
                // Kopieert en kijkt of het overeen komt met de list
                var text = Clipboard.GetText(TextDataFormat.UnicodeText);
                // als je gekopieert hebt reset de clipboard
                if (!string.IsNullOrEmpty(text))
                {
                    timer1.Interval = 15000;
                    GetAnswer(Clipboard.GetText(TextDataFormat.UnicodeText));
                    Clipboard.Clear();
                }
            }
        }
    }


    private void Timer1_Tick(object sender, EventArgs e)
    {
        this.Close();
    }
}

}

标签: c#winformsclipboard

解决方案


第一次在主窗体上放置一个Timer组件,并将其设置Interval为所需的分钟数(值以毫秒为单位,因此请确保计算正确)

现在将计时器的启用属性设置为true

如果Tick您只需要编写退出应用程序的代码即可。

现在,每次发生复制/粘贴操作时,像这样重置计时器

Timer1.Interval = xxx;

其中 xxx 是以毫秒为单位的值

重置计时器可以在这里找到

应该这样做

在你的情况下,它看起来像这样

if (!string.IsNullOrEmpty(text))
{
    timer1.Enabled = false; // stop the timer

    // do code here that can take some time...
    GetAnswer(Clipboard.GetText(TextDataFormat.UnicodeText));
    Clipboard.Clear();

    timer1.Interval = 15000; // reset the timer
    timer1.Enabled = true;   // and start it again
}

推荐阅读