防止 FreeFileSync的RealTimeSync.exe实时自动同步程序被意外关闭并保持其进程一直运行 2025年11月19日
防止 FreeFileSync的RealTimeSync.exe实时自动同步程序被意外关闭并保持其进程一直运行 2025年11月19日
由于FreeFileSync没有GoodSync的 /forcetray 和 /forceminiwin 启动参数,也没有 GoodSync 的回收站和多版本历史文件夹功能,所以我只手动运行 FreeFileSync 用于手动同步复制文件夹。除了 FreeFileSync 之外 FastCopy 也能够同步并触发删除。

两个脚本一起在后台隐藏运行,共同守护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_SYSMENU
WinSet, Style, -0x20000, ahk_id %hWnd% ; 移除WS_MINIMIZEBOX
WinSet, Style, -0x10000, ahk_id %hWnd% ; 移除WS_MAXIMIZEBOX
; 禁用Alt+F4
Hotkey, IfWinActive, ahk_id %hWnd%
Hotkey, !F4, BlockClose
}
; 检查进程是否存在,如果被结束则重新启动
Process, Exist, RealTimeSync.exe
if (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_DESTROY
WM_SYSCOMMAND(wParam, lParam, msg, hwnd) {
if (wParam = 0xF060) { ; SC_CLOSE
WinGetTitle, title, ahk_id %hwnd%
IfInString, title, RealTimeSync
return 0 ; 阻止关闭
}
}
WM_CLOSE(wParam, lParam, msg, hwnd) {
WinGetTitle, title, ahk_id %hwnd%
IfInString, title, RealTimeSync
return 0 ; 阻止关闭
}
WM_DESTROY(wParam, lParam, msg, hwnd) {
WinGetTitle, title, ahk_id %hwnd%
IfInString, title, RealTimeSync
return 0 ; 阻止关闭
}
![3]()
www.cnblogs.com/delphixx


浙公网安备 33010602011771号