防止 FreeFileSync的RealTimeSync.exe实时自动同步程序被意外关闭并保持其进程一直运行 2025年11月19日

两个脚本一起在后台隐藏运行,共同守护RealTimeSync.exe进程,共同防止RealTimeSync.exe实时自动同步程序被意外关闭并保持其进程一直运行。
一个用Bat To Exe Converter 转换成隐形Exe批处理脚本
一个编译成隐形Exe的AutoHotkey脚本
@echo off
:loop
tasklist /fi "imagename eq RealTimeSync.exe" | find /i "RealTimeSync.exe" > nul
if errorlevel 1 (echo RealTimeSync未运行,重新启动...start "" %~dp0RealTimeSync.exe "RealTime.ffs_real"
)
timeout /t 5 /nobreak > nul
goto loop
#NoTrayIcon
#Persistent
SetTitleMatchMode, 2; 监控RealTimeSync窗口
Loop {; 查找RealTimeSync窗口IfWinExist, RealTimeSync{WinGet, hWnd, ID, RealTimeSync; 移除关闭按钮WinSet, Style, -0x80000, ahk_id %hWnd% ; 移除WS_SYSMENUWinSet, Style, -0x20000, ahk_id %hWnd% ; 移除WS_MINIMIZEBOXWinSet, Style, -0x10000, ahk_id %hWnd% ; 移除WS_MAXIMIZEBOX; 禁用Alt+F4Hotkey, IfWinActive, ahk_id %hWnd%Hotkey, !F4, BlockClose}; 检查进程是否存在,如果被结束则重新启动Process, Exist, RealTimeSync.exeif (ErrorLevel = 0){Run, %A_ScriptDir%\RealTimeSync.exe RealTime.ffs_real}Sleep, 1000
}BlockClose:
return; 拦截关闭消息
OnMessage(0x112, "WM_SYSCOMMAND") ; WM_SYSCOMMAND
OnMessage(0x10, "WM_CLOSE") ; WM_CLOSE
OnMessage(0x2, "WM_DESTROY") ; WM_DESTROYWM_SYSCOMMAND(wParam, lParam, msg, hwnd) {if (wParam = 0xF060) { ; SC_CLOSEWinGetTitle, title, ahk_id %hwnd%IfInString, title, RealTimeSyncreturn 0 ; 阻止关闭}
}WM_CLOSE(wParam, lParam, msg, hwnd) {WinGetTitle, title, ahk_id %hwnd%IfInString, title, RealTimeSyncreturn 0 ; 阻止关闭
}WM_DESTROY(wParam, lParam, msg, hwnd) {WinGetTitle, title, ahk_id %hwnd%IfInString, title, RealTimeSyncreturn 0 ; 阻止关闭
}
![3]()
