在 windows 之间切换
Switching between windows
背景:我们的呼叫中心有特殊的 "Main" 程序可以在其中工作。来电时显示"small pop-up window"。此外,我们还有浏览器式 CRM。所有这些都是 运行 on Windows 7. 来电时,IE 中的客户端页面正在加载。因此,呼叫中心工作人员要查看客户端页面,必须单击 IE 选项卡中的任务栏。当他这样做时,IE window 显示,但 "small pop-up window" 也显示在上面。所以,目标是自动化它:工作人员不想点击 IE。
现在代码:
GetIeInstance()
{
For pwb in ComObjCreate( "Shell.Application" ).Windows
{
If InStr(pwb.FullName, "iexplore.exe" )
{
Return pwb
}
}
Return 0
}
ComObjError(false)
Loop
{
ie := GetIeInstance()
if (hran != ie.LocationURL)
{
WinActivate, ahk_class IEFrame
WinWaitActive, ahk_class IEFrame
}
hran := ie.LocationURL
Sleep, 100
}
很明显:当我们接到新的收入电话时(因此,在 IE 中加载了新的客户端页面),Windows 专注于 IE window。但它无法正常工作,因为在一秒钟后 Windows 重新聚焦到 "Main" 程序 window(IE window "blink")。添加
Winset, Alwaysontop, , ahk_class IEFrame
没有帮助。知道如何解决吗? (或者如何模拟点击任务栏上的 IE 选项卡?)
修复它!
添加
sleep, 2000
之前
WinActivate, ahk_class IEFrame
拯救世界
背景:我们的呼叫中心有特殊的 "Main" 程序可以在其中工作。来电时显示"small pop-up window"。此外,我们还有浏览器式 CRM。所有这些都是 运行 on Windows 7. 来电时,IE 中的客户端页面正在加载。因此,呼叫中心工作人员要查看客户端页面,必须单击 IE 选项卡中的任务栏。当他这样做时,IE window 显示,但 "small pop-up window" 也显示在上面。所以,目标是自动化它:工作人员不想点击 IE。
现在代码:
GetIeInstance()
{
For pwb in ComObjCreate( "Shell.Application" ).Windows
{
If InStr(pwb.FullName, "iexplore.exe" )
{
Return pwb
}
}
Return 0
}
ComObjError(false)
Loop
{
ie := GetIeInstance()
if (hran != ie.LocationURL)
{
WinActivate, ahk_class IEFrame
WinWaitActive, ahk_class IEFrame
}
hran := ie.LocationURL
Sleep, 100
}
很明显:当我们接到新的收入电话时(因此,在 IE 中加载了新的客户端页面),Windows 专注于 IE window。但它无法正常工作,因为在一秒钟后 Windows 重新聚焦到 "Main" 程序 window(IE window "blink")。添加
Winset, Alwaysontop, , ahk_class IEFrame
没有帮助。知道如何解决吗? (或者如何模拟点击任务栏上的 IE 选项卡?)
修复它! 添加
sleep, 2000
之前
WinActivate, ahk_class IEFrame
拯救世界