国标监控摄像机模拟器 GB28181模拟器
2025-5-27 乱云飞 评论(0) 浏览(75) 标签: GB28181 国标摄像机 国标监控 国标平台
进程守护
Do
If CheckExeIsRun("onvif.dll") Then
Sleep 6000
Else
ChDrive Left(App.Path, 1)
ChDir App.Path
Shell App.Path & "\onvif.dll " & App.Path & "\onvif.ini", vbHide
Sleep 6000
End If
Sleep 2000
Loop
如何消除 OBS 中的黄色边框
2025-5-14 乱云飞 评论(0) 浏览(125) 标签: 屏幕录像 黄色边框 录屏
一些 OBS 用户报告在尝试使用该程序进行录制时屏幕周围出现黄色边框。 虽然它看起来可能有点不便,但明亮的边框可能会让您和您的观众感到烦恼。 它可能会破坏他们的体验,尤其是当您在黑屏上进行流式传输时。
如果您受到这条讨厌的黄线的影响,您可能想知道这是一个错误还是其他类型的问题。 好消息是这不是错误 – 这是正常现象 Windows 10 台。 然而,坏消息是您将无法简单地打开或关闭它,尽管有一种有时有效的解决方法。
OBS 引入黄色边框并不是为了让用户抓狂。 它是 Windows 10 出于安全原因而实施的功能。
网络威胁无处不在,黑客访问您的屏幕以获取您的敏感数据的情况并不罕见。 您可能在浏览器中输入信用卡号,却从未意识到有人正在远程录制您的屏幕。 黄色边框正是为了防止这种情况发生。 每当你的 Windows 10 PC 注意到某个应用程序正在捕获您的屏幕,它会通过此功能提醒您。
强制所有元素(包括HTTPS和动态内容)变为直角
// ==UserScript==
// @name 全局直角
// @namespace http://tampermonkey.net/
// @version 1.2
// @description 强制所有元素(包括HTTPS和动态内容)变为直角
// @author You
// @match http://*/*
// @match https://*/*
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
// 1. 最高优先级CSS覆盖(包括HTTPS)
GM_addStyle(`
*,
*::before,
*::after {
border-radius: 0px !important;
}
*{border-radius: 0px;}
/* 处理SVG */
rect, circle, ellipse {
rx: 0 !important;
ry: 0 !important;
}
/* 覆盖常见UI库的圆角类名 */
[class*="rounded"], [class*="circle"], [class*="radius"] {
border-radius: 0px !important;
}
`);
// 2. 强制修改内联样式和动态内容
function forceSquareCorners() {
// 遍历所有元素
document.querySelectorAll('*').forEach(el => {
// 内联样式覆盖
if (el.style.borderRadius) {
el.style.borderRadius = '0px';
}
// 特殊处理SVG
if (el.tagName === 'rect' || el.tagName === 'circle' || el.tagName === 'ellipse') {
el.setAttribute('rx', '0');
el.setAttribute('ry', '0');
}
// 覆盖CSS变量(如: --radius)
if (el.style.getPropertyValue('--radius')) {
el.style.setProperty('--radius', '0px', 'important');
}
});
}
// 3. 初始化执行 + 监听动态内容
forceSquareCorners();
const observer = new MutationObserver(forceSquareCorners);
observer.observe(document.documentElement, {
childList: true,
subtree: true,
attributes: true
});
// 4. 确保页面加载完成后再次执行
window.addEventListener('load', forceSquareCorners);
})();
解决按键冲突
#NoEnv
#Persistent
#SingleInstance Force
#InstallKeybdHook
#UseHook
; --- 全局状态 ---
U_IsPressed := false
Zero_IsSent := false ; 标记是否已处理0键
; --- 检测U键按下 ---
~*U::
U_IsPressed := true
SetTimer, CheckU0Combo, -100 ; 100ms检测窗口
return
; --- 检测U键释放 ---
~*U up::
U_IsPressed := false
return
; --- 检测U+0组合 ---
CheckU0Combo:
if (U_IsPressed && GetKeyState("0", "P")) {
Run, calc.exe ; 触发计算器
;Zero_IsSent := true ; 标记0键已处理
}
return
U盘自动启动
#Persistent
#SingleInstance ignore
; === 配置部分 ===
Allowed_USB_IDs := ["EZSOFT", "bakevision"] ; 允许的U盘卷标列表
CheckInterval := 3000 ; 检测间隔(毫秒)
TargetExePath := "ezsoft\ez30.exe" ; 目标程序路径
TargetExeName := "ez30.exe" ; 目标进程名(不含路径)
ConfigExePath := "ezsoft\虚拟监控.exe" ; 配置程序路径(U盘根目录)
DebugMode := false ; 调试模式(true显示提示)
; === 全局变量 ===
CurrentUSBDrive := "" ; 当前检测到的U盘盘符
; === 托盘图标设置 ===
Menu, Tray, NoStandard ; 移除标准菜单项
Menu, Tray, Add, 设置, RunConfig ; 添加设置菜单
Menu, Tray, Add ; 添加分隔线
Menu, Tray, Add, 退出, ExitScript ; 添加自定义退出选项
Menu, Tray, Tip, USB监控程序 ; 设置托盘提示文本
Menu, Tray, Icon ; 显示托盘图标
; === 主循环:检测U盘 ===
SetTimer, CheckUSB, %CheckInterval%
return
CheckUSB:
DriveGet, driveList, List, Removable
foundValidDrive := false
Loop, Parse, driveList
{
driveLetter := A_LoopField ":\"
DriveGet, driveStatus, Status, %driveLetter%
if (driveStatus = "Ready")
{
; 获取U盘卷标
DriveGet, volumeName, Label, %driveLetter%
if (DebugMode)
MsgBox, [检测] U盘卷标:%volumeName%
; 检查是否是指定U盘之一
for index, allowedID in Allowed_USB_IDs
{
if (volumeName = allowedID)
{
foundValidDrive := true
CurrentUSBDrive := driveLetter ; 更新当前U盘盘符
; 检查目标程序是否已在运行
Process, Exist, %TargetExeName%
if (ErrorLevel = 0) ; 未运行
{
exePath := driveLetter . TargetExePath
if FileExist(exePath)
{
Run, %exePath%
if (DebugMode)
MsgBox, [操作] 启动程序:%exePath%
}
else if (DebugMode)
MsgBox, [错误] 未找到程序:%exePath%
}
else if (DebugMode)
MsgBox, [跳过] 程序已在运行(PID:%ErrorLevel%)
break ; 找到匹配的卷标后跳出循环
}
}
}
}
; 如果没有检测到有效U盘,清空当前盘符记录
if (!foundValidDrive)
CurrentUSBDrive := ""
return
; === 运行配置程序 ===
RunConfig:
if (CurrentUSBDrive = "")
{
MsgBox, 未检测到有效的U盘!
return
}
configExeFullPath := CurrentUSBDrive . ConfigExePath
if FileExist(configExeFullPath)
{
Run, %configExeFullPath%
if (DebugMode)
MsgBox, [操作] 启动配置程序:%configExeFullPath%
}
else
MsgBox, 未找到配置程序:%configExeFullPath%
return
; === 退出脚本函数 ===
ExitScript:
; 关闭虚拟监控进程
Process, Close, %TargetExeName%
if (DebugMode)
MsgBox, [操作] 已尝试关闭虚拟监控进程
; 退出脚本自身
ExitApp
return
OSD.lua
MPV播放器
start "" mpv --ontop --fullscreen --title=VirtualCamera --no-window-dragging --no-osc --no-border --start=!start_seconds! -- "!videoFile!"MPV播放器精准控制播放视频的开始位置
将鼠标移动到坐标位置然后按空格键
@echo off REM 调用nircmd将鼠标移动到坐标(1900, 1000) nircmd setcursor 1900 1000 REM 等待一段时间,确保鼠标移动完成 timeout /t 1 /nobreak >nul REM 模拟按下空格键 nircmd sendkeypress 0x20 REM 退出批处理 exit