0

有人告诉我,处理 ALT+TAB 输入的程序称为任务切换器。但我对库存提供的任务切换器不满意。

谁能给我推动正确的方向,以便我知道如何自己编写一个并用新的替换旧的?

不是我没有编程经验,我只是不知道从哪里开始这个特殊的。:D

谢谢!

4

2 回答 2

2

在 Windows 中编写替换切换器有三个基本要素(这些在 Windows 7 下进行了测试):

  1. 捕获 Alt+Tab:为此,我将使用SetWindowsHookEx低级键盘挂钩( WH_KEYBOARD_LL)。

  2. 枚举您可以在其间切换的窗口:两个选项是EnumWindowsUI 自动化框架(托管代码可以使用System.Windows.Automation)。

  3. 执行切换:您可以使用SwitchToThisWindowSetForegroundWindow,但无论哪种情况,您都需要uiAccess=true在清单中进行设置。这还需要您签署可执行文件并将其安装在 Program Files 中。您无需致电AttachThreadInput或执行其他此类恶作剧。

如需更深入的讨论,请参阅此博客文章

于 2014-02-10T02:32:52.777 回答
0

我们已在此链接中回答了您的问题: 如何关注上次激活的程序? 通过使用此代码而不是那个代码,您可以获得打开的窗口列表,

string name = GetWindowTextRaw((IntPtr)hwnd);
if (name.Length > 0)
{
     windowArray.Add(hwnd);
}

现在您可以使用以下代码在窗口之间切换:

SetForegroundWindow((IntPtr)windowArray.sth);
于 2012-12-02T11:55:31.957 回答