“Skype for Business”(以前称为“Microsoft Lync”)比我的女儿更难醒来。当它被最小化到任务栏时,单击图标以恢复它是非常慢的 - 如果它已经空闲了一段时间,它需要5-10秒才能恢复。这是一个经常被抱怨的已知问题(例如here或here),但未提供解决方案或解决方法。
然而,如果可能的话,我希望利用一丝希望。正如我上面提到的,Skype只有在闲置一段时间后才会无响应。如果用户正在积极使用它,那么它运行得很好。 所以...... 我想找到一种方法每小时左右“罐装”它 - 让它保持活跃状态。
我的初始策略:使用任务计划程序安排以下WScript(每小时):
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "Skype for Business" 'give app focus
WScript.Sleep 100 'give app time to load
WshShell.SendKeys "% r" 'restore app
WshShell.SendKeys "% n" 'minimize app
如果应用已经最小化,这可以正常工作,但如果应用处于活动状态(聚焦),它将突然消失。 (如果我省略了最后一行,那么应用程序将弹出我当前正在处理的任何其他内容。)我尝试用这一行代替最后两行:
WshShell.SendKeys "% {ESC}"
...只是打开和关闭菜单。这样做效果更好,但它将焦点转移到Skype(尽管是暂时的),这会导致进一步的问题。它还取消隐藏任务栏并点亮Skype图标(好像我有一条消息在等待)。
问题:有谁知道我是否可以使用AutoHotKey来做这类事情?
基本上,我正在寻找可以执行此操作的某种脚本:确定Skype窗口当前是否处于活动状态;如果是的话,什么也不做。否则,向它发送一些不可见的命令(例如:最大化然后最小化),但在所有情况下都要将窗口恢复到以前的状态。
有什么建议吗? (非常感谢autohotkey脚本!)
答案 0 :(得分:1)
如果隐藏窗口时Skype不会无响应,请尝试以下操作:
; Hide Skype after it has been inactive for 20 seconds:
SetTimer, hide_inactive_Skype_window, 1000
return
hide_inactive_Skype_window:
IfWinNotActive, Skype for Business
time++
else
time := 0 ; reset
if (time = 20) ; 20 seconds
{
WinHide, Skype for Business
time := 0 ; reset
}
return
; Use a hotkey to show/activate Skype:
!s:: ; Alt+s
time := 0 ; reset
WinShow, Skype for Business
WinActivate, Skype for Business
return