如题,我以 ⚡️通过监测特定进程网络请求,实现希沃掌上看班和窥屏预警⚡️ 为原理,使用 zTasker 编写检测 media_capture.exe 网络上传请求,并运行 ClassIsland 自动化。
具体自动化见详情:
zTasker 侧任务:

p.s. 经过测试,无法通过识别 rdcRemoteDesktop.exe 的网络上传请求来实现桌面窥屏/麦克风预警。
ClassIsland 侧自动化:




ClassIsland 侧组件:


(上为行规则集,单独两个组件的规则不放了)
CameraWarningStart.bat
@echo off
setlocal
set "SCRIPT_DIR=%~dp0"
set "FLAG_FILE=%SCRIPT_DIR%.flag_CameraWarning"
dir /b /a "%FLAG_FILE%" 2>nul | find /I ".flag_CameraWarning" >nul
if not errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq media_capture.exe" 2>nul | find /I "media_capture.exe" >nul
if errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq ClassIsland.Desktop.exe" 2>nul | find /I "ClassIsland.Desktop.exe" >nul
if errorlevel 1 (
tasklist /NH /FI "IMAGENAME eq ClassIsland.exe" 2>nul | find /I "ClassIsland.exe" >nul
if errorlevel 1 goto :eof
)
start "" "classisland://app/api/automation/run/media_capture_start"
echo.> "%FLAG_FILE%"
attrib +h +s "%FLAG_FILE%"
endlocal
CameraWarningEnd.bat
@echo off
setlocal
set "SCRIPT_DIR=%~dp0"
set "FLAG_FILE=%SCRIPT_DIR%.flag_CameraWarning"
dir /b /a "%FLAG_FILE%" 2>nul | find /I ".flag_CameraWarning" >nul
if errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq media_capture.exe" 2>nul | find /I "media_capture.exe" >nul
if errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq ClassIsland.Desktop.exe" 2>nul | find /I "ClassIsland.Desktop.exe" >nul
if errorlevel 1 (
tasklist /NH /FI "IMAGENAME eq ClassIsland.exe" 2>nul | find /I "ClassIsland.exe" >nul
if errorlevel 1 goto :eof
)
start "" "classisland://app/api/automation/run/media_capture_end"
del /f /q /a "%FLAG_FILE%"
endlocal
MicrophoneWarningStart.bat
@echo off
setlocal
set "SCRIPT_DIR=%~dp0"
set "FLAG_FILE=%SCRIPT_DIR%.flag_MicrophoneWarning"
dir /b /a "%FLAG_FILE%" 2>nul | find /I ".flag_MicrophoneWarning" >nul
if not errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq rdcRemoteDesktop.exe" 2>nul | find /I "rdcRemoteDesktop.exe" >nul
if errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq ClassIsland.Desktop.exe" 2>nul | find /I "ClassIsland.Desktop.exe" >nul
if errorlevel 1 (
tasklist /NH /FI "IMAGENAME eq ClassIsland.exe" 2>nul | find /I "ClassIsland.exe" >nul
if errorlevel 1 goto :eof
)
start "" "classisland://app/api/automation/run/microphone_capture_start"
echo.> "%FLAG_FILE%"
attrib +h +s "%FLAG_FILE%"
endlocal
MicrophoneWarningEnd.bat
@echo off
setlocal
set "SCRIPT_DIR=%~dp0"
set "FLAG_FILE=%SCRIPT_DIR%.flag_MicrophoneWarning"
dir /b /a "%FLAG_FILE%" 2>nul | find /I ".flag_MicrophoneWarning" >nul
if errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq rdcRemoteDesktop.exe" 2>nul | find /I >! "rdcRemoteDesktop.exe" >nul
if errorlevel 1 goto :eof
tasklist /NH /FI "IMAGENAME eq ClassIsland.Desktop.exe" 2>nul | find /I >! "ClassIsland.Desktop.exe" >nul
if errorlevel 1 (
tasklist /NH /FI "IMAGENAME eq ClassIsland.exe" 2>nul | find /I "ClassIsland.exe" >nul
if errorlevel 1 goto :eof
)
start "" "classisland://app/api/automation/run/microphone_capture_end"
del /f /q /a "%FLAG_FILE%"
endlocal
当前 zTacker 侧任务存在问题:即使 media_capture.exe 进程上传网络速度高于 100KB/s 时,希沃看班- 摄像头警告结束 任务还是会按照 20s 的频率执行,导致脚本被重复执行,进而导致 ClassIsland 侧自动化被重复执行,导致 ClassIsland 侧自动化内只能写 设标志 行动(写提醒会导致提醒重复显示)。但是我又想要铃声播报,想问问这是 zTasker 的问题还是我写的自动触发条件的问题,我应如何避免/实现我想要的效果?
(如果重复执行是 zTasker 的问题,我就顺便去那边社区提个 bug 反馈)