我被告知,处理ALT + TAB输入的程序称为任务切换器。但我对库存提供的任务切换器不满意。
任何人都可以向我推动正确的方向,以便我知道如何自己编写一个并用新的替换旧的吗?
这不是我没有编程经验,我只是不知道从哪个开始这个特殊的。 :d
谢谢!
答案 0 :(得分:1)
在Windows中编写替换切换器有三个基本要素(这些已在Windows 7下测试):
捕获Alt +标签:为此,我会使用SetWindowsHookEx
和low-level keyboard hook(WH_KEYBOARD_LL
)。
枚举您可以切换的窗口:两个选项是EnumWindows
或UI自动化框架(托管代码可以使用System.Windows.Automation
)。
执行切换:您可以使用SwitchToThisWindow
或SetForegroundWindow
,但在任何一种情况下,您都需要在清单中设置uiAccess=true
。这还需要您签署可执行文件并将其安装在Program Files中。 不需要致电AttachThreadInput
或执行其他此类诡计。
有关更全面的讨论,请参阅this blog post。
答案 1 :(得分:0)
我们在此链接中回答了您的问题: How to focus on last activated program? 通过使用此代码代替那个代码,您可以拥有打开的窗口列表,
string name = GetWindowTextRaw((IntPtr)hwnd);
if (name.Length > 0)
{
windowArray.Add(hwnd);
}
现在您可以使用以下代码在Windows之间切换:
SetForegroundWindow((IntPtr)windowArray.sth);