Vbscript “我需要魔法来保持”;Skype for Business“;激活

Vbscript “我需要魔法来保持”;Skype for Business“;激活,vbscript,autohotkey,wsh,lync-2013,skype-for-business,Vbscript,Autohotkey,Wsh,Lync 2013,Skype For Business,“Skype for Business”(以前的“Microsoft Lync”)比我女儿更难醒来。当它被最小化到任务栏时,点击图标来恢复它的速度非常慢——如果它已经空闲了一段时间,那么恢复它实际上需要5-10秒。这是一个经常被投诉的已知问题(如or),但尚未提供解决方案或解决方法 然而,如果可能的话,我想利用这一线希望。正如我上面提到的,Skype只有在闲置一段时间后才会无响应。如果用户正在积极地使用它,那么它运行得很好所以…我想找到一种方法,每隔一个小时左右“震击”一次,让它保持活动状态 我

“Skype for Business”(以前的“Microsoft Lync”)比我女儿更难醒来。当它被最小化到任务栏时,点击图标来恢复它的速度非常慢——如果它已经空闲了一段时间,那么恢复它实际上需要5-10秒。这是一个经常被投诉的已知问题(如or),但尚未提供解决方案或解决方法

然而,如果可能的话,我想利用这一线希望。正如我上面提到的,Skype只有在闲置一段时间后才会无响应。如果用户正在积极地使用它,那么它运行得很好所以…我想找到一种方法,每隔一个小时左右“震击”一次,让它保持活动状态

我的初始策略:使用任务计划程序计划以下WScript(每小时一次):

如果应用程序已经最小化,这可以正常工作,但是如果应用程序处于活动状态(处于焦点),它将突然消失。(如果我省略了最后一行,那么应用程序将在我当前正在处理的任何其他行的顶部弹出。)我尝试用这一行替换最后两行:

WshShell.SendKeys "% {ESC}"
…它只是打开和关闭一个菜单。这样做效果更好,但它将注意力转移到了Skype上(虽然只是暂时的),这会导致进一步的问题。它还取消隐藏任务栏并点亮Skype图标(就好像有消息在等着我)

问题:有人知道我是否可以用它来做这类事情吗

基本上,我正在寻找某种可以做到这一点的脚本:确定Skype窗口当前是否处于活动状态;如果是,什么也不做。否则,向它发送一些不可见的命令(例如:最大化然后最小化),但在所有情况下都会将窗口恢复到以前的状态


有什么建议吗?(非常感谢使用自动热键脚本!)

如果在隐藏窗口时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

尽管我很同情你们,但我不确定这是否是一个主题。如果您发布了Wscript代码,我们可以看一下……我会尝试使用and,而不是最小化窗口。@code11-我继续添加了Wscript代码。但我有一种感觉,这超出了Wscript的预期范围。它就是没有那么灵活。@user3419297-建议不错,但是你能描述一下如何创建一个自动热键脚本来确定应用程序窗口的当前状态,并确保在脚本结束时将窗口恢复到该状态吗?我找不到任何关于“隐藏”窗口的文档(除了你在上面的评论中共享的链接)。隐藏一扇窗户意味着什么?隐藏窗口的图标是否显示在任务栏上?如果是这样,它与最小化它有何不同?如果没有,您如何知道它正在运行?据我所知:“WinMinimize”会缩小窗口并将其放置在任务栏上。“WinHide”隐藏窗口,同时也隐藏任务栏上的按钮(应用程序仍在运行并积极更新,但它消耗的图形资源较少)。通过创建快捷方式或/和Gui(-按钮)来显示/激活隐藏窗口,可以补偿任务栏上没有按钮的情况。要检查应用程序是否正在运行,请使用或命令。
; 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