@outplayed

Почему содержимое окна Google Chrome не изменяется при обновлении через AutoHotKey?

Есть скрипт:

SingleInstance force
SetCapsLockState, AlwaysOFF
SetNumLockState, AlwaysOn
Process, Priority, , High

^s::
{
SetWinDelay,-1 ;~ to make winactivate etc snappier and less obtrusive
Send {^s}
ChromeSend("^{F5}")

ChromeSend(keys){ ;keys = the keys you want to be sent e.g. "asbnd{space}lk{enter}"
		WinGetActiveTitle,currActive
		WinActivate,ahk_class Chrome_WidgetWin_1
		WinWaitActive,ahk_class Chrome_WidgetWin_1
	Send, %keys%
	WinActivate,%currActive% ;no need to if this since it'll be empty if chrome was active
}

}

Суть скрипта: на СTRL + S забиндена передача сочетания CTRL + S в IDE и CTRL + F5 в Google Chrome последовательно.

Я нажимаю CTRL + S у себя в PHPStorm и у меня на втором монитор обновляется страница, но при всем этом содержимое браузера не изменяется. А вот если наведу мышью и нажму не важно что (CTRL + F5, F5, CTRL + S, CTRL + R), то содержимое корректно обновляется и изменения на экране происходят (простой html код, к примеру). Хочется уж очень реализовать такую функцию, но почему это не работает я даже предположить не могу. Скрипт, по сути, просто выполняет свою функцию, значит это что-то завязано в Хроме, верно?

Всем спасибо.
  • Вопрос задан
  • 648 просмотров
Решения вопроса 1
@outplayed Автор вопроса
Решение на AHK:
SetCapsLockState, AlwaysOFF
SetNumLockState, AlwaysOn
Process, Priority, , High
#IfWinActive ahk_class SunAwtFrame
^s::
^sc155::
{
Send {Shift Down}{LControl Down}o{Shift Up}{LControl Up}

Send ^s
Sleep 150
ControlFocus,,ahk_class Chrome_WidgetWin_1
ControlSend, , {F5}, ahk_class Chrome_WidgetWin_1
ControlFocus,ahk_class SunAwtFrame
}

CTRL + S, CTRL + Ы - сохраняют файл и обновляют окно хрома (класс другого окна можете использовать, если хотите использовать другой браузер. Поменяйте строчку "Send {Shift Down}{LControl Down}o{Shift Up}{LControl Up}" на клавишу, которая будет вас устраивать.

Решение на VBScript:
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.AppActivate("Google Chrome")
WshShell.SendKeys "{F5}"
WshShell.AppActivate("PhpStorm 9.0")


Почему у меня не работало тогда: забыл, что на CTRL + S забиндено сохранение страницы на удаленной машине, а не локальной. Для локальной установил клавишу CTRl+SHIFT+O.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Имхо, у вас какой-то извращенский подход. Лучше разберитесь с https://chrome.google.com/webstore/detail/liverelo...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы