0

我正在尝试创建一个工具来管理一些窗口,例如当我按下一个键时,我会将焦点更改为下一个窗口,依此类推,这是我编写的将焦点设置到列表中的下一个窗口的方法

public void RoundRobinFunc()
{
    if (indexofCurrentRound == Windows.Count)
    {
        indexofCurrentRound = 0;
        SetForegroundWindow(Windows[indexofCurrentRound].HandlerIDD);
        indexofCurrentRound++;
    }
    else if (indexofCurrentRound < Windows.Count)
        {
        SetForegroundWindow(Windows[indexofCurrentRound].HandlerIDD);
        indexofCurrentRound++;
    }
}

这是我在我的键盘记录类中使用热键执行上述方法的方法

private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
    Form1 form1T = System.Windows.Forms.Application.OpenForms.OfType<Form1>().FirstOrDefault();
    if (nCode >= 0 && wParam == (IntPtr)WM_KEYUP)
        {
            int vkCode = Marshal.ReadInt32(lParam);
            var keyName = Enum.GetName(typeof(Keys), vkCode);
            if (form1T.CheckKeys(keyName))
            {
            form1T.RoundRobinFunc();
            }
    }
    return CallNextHookEx(_hookID, nCode, wParam, lParam);
}

问题是当我调试一切正常时,当我按下我的愿望键时,它会将下一个窗口设置在前台,现在问题来了,当我使用发布版本时,它会变得混乱,就像当我按下我的愿望键时,它会切换到下一个窗口一次并卡在那里,永远不会切换到新窗口,它与我的调试测试完全不同,所以我不知道如何调试在调试时可以工作但在 Visual Studio 之外无法工作的东西.

4

0 回答 0