【问题标题】:Is there a way to implement an active window dectector to a toggle?有没有办法实现一个活动窗口检测器来切换?
【发布时间】:2020-07-11 02:01:40
【问题描述】:

所以我想要一个程序在切换开关并且程序不在焦点时执行一个功能。 这是当前代码。

private void Toggle_CheckedChanged(object sender, EventArgs e)
     {
          while (Toggle.Checked = true) 
             {
                FUNCTION
             }
     }

我希望它是这样的

private void Toggle_CheckedChanged(object sender, EventArgs e)
         {
              while (Toggle.Checked = true) & activewindow = false
                 {
                    FUNCTION
                 }
         }

我已经尝试过实现不同的功能,但它被标记为“方法组”。

有人知道怎么做吗?

【问题讨论】:

  • 另外,您不希望 while 成为 if 吗?
  • 无法分配给“ApplicationIsActivated”,因为它是一个“方法组”,而且我希望它是 while,因为我希望它在运行时循环。
  • 应用程序中的复选框是什么?如果是用户,当他们采取检查元素的操作时,焦点将集中在应用程序上。此外,在此方法中运行 while 循环会阻塞主线程并冻结您的应用程序。
  • 它是一个用户,但是一旦单击切换并且用户不在活动窗口中,它将运行该功能。

标签: c# .net


【解决方案1】:

您可以使用async/await 来完成此操作:

private async void Toggle_CheckedChanged(object sender, EventArgs e)
{
    while(Toggle.Checked)
    {
        await Task.Delay(250); // you need some kind of delay in the loop...maybe?
        if (!ApplicationIsActivated())
        {
            await Task.Run(() =>
            {
                FUNCTION();
            });
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多