2016-11-01 15 views
0

«Skype for Business» (ранее «Microsoft Lync») сложнее проснуться, чем моя дочь. Когда он сведен к минимуму на панели задач, щелчок по значку для его восстановления невероятно медленный - буквально требуется 5-10 секунд для восстановления, если он некоторое время простаивает. Это известная проблема, о которой часто жалуются (например, here или here), но разрешение или обходное решение не были предоставлены.Мне нужно волшебство, чтобы активировать «Skype for Business»

Однако есть один проблеск надежды на то, что я хотел бы использовать, если это возможно. Как я уже упоминал выше, 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

Насколько я чувствую к тебе, я не конечно, это по теме. Если вы разместили свой код Wscript, мы могли бы посмотреть ... – code11

+0

Я бы попытался использовать ** [WinHide] (https://autohotkey.com/docs/commands/WinHide.htm) ** и ** [WinShow ] (https://autohotkey.com/docs/commands/WinShow.htm) ** вместо минимизации окна. – user3419297

+0

@ code11- Я пошел вперед и добавил свой код Wscript. Но я чувствую, что это выходит за рамки Wscript. Это не так гибко. – kmote

ответ

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 
+0

Я не могу найти документацию по «скрытым» окнам (помимо ссылок, которые вы поделили в своем комментарии выше). Что значит скрыть окно? Значок скрытого окна появляется на панели задач? Если да, то как это отличается от минимизации? Если нет, то откуда вы знаете, что он работает? – kmote

+1

Насколько я знаю: «WinMinimize» сжимает окно и помещает его на панель задач. «WinHide» скрывает окно, а также скрывает кнопку на панели задач (приложение все еще работает и активно обновляется, но потребляет меньше графических ресурсов).Отсутствие кнопки на панели задач можно скомпенсировать, создав ярлык или/или Gui (-button), чтобы показать/активировать скрытое окно. Чтобы проверить, запущено ли приложение, используйте [IfWinExist] (https://autohotkey.com/docs/commands/WinExist.htm) или [Процесс, Exist] (https://autohotkey.com/docs/commands/ Process.htm # Parameters). – user3419297