尝试使用 SetWindowsHookEx 和 SetForegroundWindow

问题描述

我正在尝试创建一个工具来管理一些窗口,比如当我按下一个键时我会将焦点转移到下一个窗口等等 这是我编写的将焦点设置到列表中的下一个窗口的方法

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);
}

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...