В Windows: просто нажмите Alt + F5 и сделайте это. Это решение работает одновременно с несколькими браузерами и, возможно, с любым редактором / IDE. Было протестировано с (jEdit, Eclipse, Notepad ++)
Для этого установите AutoHotKey и запустите приведенный ниже скрипт (скопируйте в текстовый файл и измените расширение на .ahk). Здесь есть портативная версия . Протестировано с версией AutoHotKey 1.0.48.05
Это решение довольно гибкое, так как вы можете изменять ключи, редакторы, браузеры и все остальное. Он предварительно настроен для браузеров Firefox и IE и jEdit, редакторов Eclipse, но вы можете легко настроить этот список.
varTextEditor и varBrowsers были обнаружены с помощью утилиты "WindowSpy", которая входит в комплект AutoHotKey.
;###############################################################################
; Save all unsaved documents, refresh all opened browsers and return to text editor
;###############################################################################
!F5::
;Configuration vars. Edit here the settings of this script
; jEdit Eclipse
varTextEditor = SunAwtFrame,SWT_Window0
;varBrowsers = MozillaUIWindowClass,MozillaWindowClass,Chrome_WidgetWin_0,IEFrame,OpWindow,{1C03B488-D53B-4a81-97F8-754559640193}
; Firefox3 Firefox4 Chrome IEca Opera Safari
varBrowsers = MozillaWindowClass,IEFrame
;End of configuration vars.
WinGetClass, thisWindowClass, A ;Get the active window class
if (InStr(varTextEditor, thisWindowClass, true, 1) > 0) { ;true = case sensitive
varTextEditorClass = ahk_class %thisWindowClass%
if (thisWindowClass = "SunAwtFrame") {
OutputDebug, ...Saving everything
; SetKeyDelay, 100, 100, Play
Send ^+s ;Ctrl + Shift + S = Save all
} else if (thisWindowClass = "SWT_Window0") {
SendPlay ^s ;Ctrl + S = Save
}
Sleep, 500 ;Give some time to the data be recorded on hard disk
} else {
MsgBox, 0, Ops!, You must be in on these text editors: (%varTextEditor%) to get this script running, 5
return
}
;Refresh all opened (and maximized) browsers
Loop, parse, varBrowsers, `,
{
varClasseBrowser = ahk_class %A_LoopField%
if WinExist(varClasseBrowser) {
WinGet, winState, MinMax, %varClasseBrowser% ;get window state. -1 = minimized
if (winState != -1) {
WinActivate, %varClasseBrowser%
OutputDebug, ...Refresh browser %A_LoopField%
Send, {F5}
}
}
}
;Return to text editor
WinActivate, %varTextEditorClass%
return