有人告诉我,处理 ALT+TAB 输入的程序称为任务切换器。但我对库存提供的任务切换器不满意。
谁能给我推动正确的方向,以便我知道如何自己编写一个并用新的替换旧的?
不是我没有编程经验,我只是不知道从哪里开始这个特殊的。:D
谢谢!
在 Windows 中编写替换切换器有三个基本要素(这些在 Windows 7 下进行了测试):
捕获 Alt+Tab:为此,我将使用SetWindowsHookEx
低级键盘挂钩( WH_KEYBOARD_LL
)。
枚举您可以在其间切换的窗口:两个选项是EnumWindows
UI 自动化框架(托管代码可以使用System.Windows.Automation
)。
执行切换:您可以使用SwitchToThisWindow
或SetForegroundWindow
,但无论哪种情况,您都需要uiAccess=true
在清单中进行设置。这还需要您签署可执行文件并将其安装在 Program Files 中。您无需致电AttachThreadInput
或执行其他此类恶作剧。
如需更深入的讨论,请参阅此博客文章。
我们已在此链接中回答了您的问题: 如何关注上次激活的程序? 通过使用此代码而不是那个代码,您可以获得打开的窗口列表,
string name = GetWindowTextRaw((IntPtr)hwnd);
if (name.Length > 0)
{
windowArray.Add(hwnd);
}
现在您可以使用以下代码在窗口之间切换:
SetForegroundWindow((IntPtr)windowArray.sth);