惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 【当耐特】
博客园 - 聂微东
MyScale Blog
MyScale Blog
T
The Blog of Author Tim Ferriss
F
Full Disclosure
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Cyberwarzone
Cyberwarzone
S
Schneier on Security
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
云风的 BLOG
云风的 BLOG
T
Threatpost
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
罗磊的独立博客
L
LangChain Blog
L
Lohrmann on Cybersecurity
The GitHub Blog
The GitHub Blog
P
Palo Alto Networks Blog
The Cloudflare Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
博客园 - Franky
C
Cyber Attacks, Cyber Crime and Cyber Security
S
Securelist
NISL@THU
NISL@THU
L
LINUX DO - 最新话题
PCI Perspectives
PCI Perspectives
V2EX - 技术
V2EX - 技术
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News | PayPal Newsroom
人人都是产品经理
人人都是产品经理
Google DeepMind News
Google DeepMind News
T
The Exploit Database - CXSecurity.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
H
Heimdal Security Blog
Help Net Security
Help Net Security
V
V2EX

博客园 - GKLBB

软件研发 --- AI模型 之 图片转xlsx 软件神器 --- ctf靶场 之 pwn.college 术语俗话 --- 什么是加密狗 软件神器 --- 自动电脑锁屏软件 软件研发 --- 网络安全 之 putty生成无密码登录密钥 软件神器 --- 视频剪辑 之 Avidemux MP4Joiner Shotcut 软件神器 --- 视频格式转化 之 handbrake 软件研发 --- 经验之谈 这个是什么图标,经常看到 软件研发 --- 术语俗话 之 多模态 术语俗话 --- 什么是大数据开发 软件研发 --- 术语俗话 之 什么是边缘计算 软件研发 --- 应知应会 之 什么是云计算开发 应知应会 --- 如何不装软件查看网速 常见问题解决 --- 360拦截接触 常见问题解决 --- 加入会议摄像头无法打开 网络安全 --- CTF打靶 之 ZIP伪加密 → Robot36慢扫电视 → 二维码补齐 → DeepSound隐写 → GPG解密 → Base64图片 → SilentEye隐写 软件研发 --- 应知应会 之 无错误的闪退如何解决 软件研发 --- 应知应会 之 为什么别人的软件如此复杂我的如此简单 网络安全 --- 应知应会 之 什么是旁站 应知应会 --- 如何查询备案 软件神器 --- 格式转化 之 jpg 2 svg 网络安全 --- CTF打靶 之 flag搜索 软件神器 --- 互联网测速 之 软件神器 --- 局域网测速 之 iperf 常见问题解决 --- 模拟器USG6000打开后,启动设备失败,错误40 软件研发 --- AI网络 之 ensp配置生成 软件研发 --- AI编程 之 极简流程 软件研发 --- AI生图产品比较 常见问题解答 --- 为什么我的服务一直被人DDOS 软件研发 --- 开发万能格式转化工具 网站神器 --- 在线格式转化 之 文档转md 术语俗话 --- 什么是云电脑 常见问题解决 --- 如何在没有安装杀毒软件的情况下知道这个文件是不是牧马 常见问题解决 --- Win10下VMware 17安装VMware Tools选项灰色/失效解决办法 常见问题解决 --- 云电脑报错 :PAGE FAULT IN NONPAGED AREA 记一次牧马的发现 人生感悟 --- 为什么我们生活中同一件事有多个品牌,他们到底有什么区别 软件运维 --- 云电脑安装打印机 常见问题解决 --- 网络打印默认端口 常见问题解决 --- 京瓷打印云电脑无法设置双面打印 软件研发 --- 网络安全 之 brupsuite如何设置上游袋里 术语俗话 --- 什么是同步和异步 我的目标 软件研发 --- dify配置 之 markword转word带有简单样式的方法 软件研发 --- 接口文档格式 常见问题 --- dify 的 deepseek是旧模型版本 OWASP 非营利性开源社区 计算机标准化组织 术语俗话 --- POSIX 就是 Unix 世界的"普通话",大家说同一种语言就能互相理解。 我的数字生活唯一选择 软件开发 --- 安卓开发 之 命名空间隔离 术语俗话 --- 页面对齐、 跨页 计算机的哪些人 --- 社交之王 马克·扎克伯格 计算机的哪些人 --- 重新定义新能源 之 埃隆·马斯克 软件研发 --- AI生成ppt word excel pdf的开发关键 软件研发 --- AI应用开发 之 AI生成Word 人生感悟 --- 致可悲的人 软件研发 --- pdf 表格图片 转 excel 常见问题解决 --- 装有系统的固态硬盘错误 人生感悟 --- 什么是行业黑话 术语俗话 --- Kubernetes 术语俗话 --- 什么是DBI,和hook什么区别 答疑解惑 --- 为什么苹果手机电池不允许拆卸 代码可视化技术 术语俗话 --- Wrap 函数 人生感悟 --- 逆向工程为什么十分枯燥且无聊 --- 这里引用一句逆向工程核心原理的话 人生感悟 --- 为什么干活时不见同事,活干完了就来了 软件研发 --- AI应用研发 之 提炼提示词 软件研发 --- AI应用开发 之 AI生成PPT最佳方案 基于屏幕-摄像头的单向数据传输方案设计 俗语俗话 --- 纯虚函数 硬件研发 --- 产品介绍 之 AX6 硬件研发 --- 产品大全 之 SUMAVISION CM50X 应知应会 --- 为什么U盘不识别但是还是可以数据恢复回来 应知应会 --- 为什么我删除了一个文件但是还是可以恢复回来 软件研发 --- AI UI设计 之 PC端效果比对 应用安全 --- 逆向工程 之 C++类的本质 软件研发 --- AI提示词开发 之 代码注释提示词 dobby反编译 https://www.cnblogs.com/Un1corn/p/18615567 应知应会 --- 手机作为热点,windows电脑临时作为网关,给其他电脑上网 应知应会 --- 大量小文件如何快速迁移 常见问题解决 --- apk安装过程中闪退 应用安全 --- 安卓逆向 之 dobby框架 在线生成 APK 图标工具推荐 一个开源库 术语俗话 --- 什么是软件即服务 软件神器 --- 常用谷歌插件 应用安全 --- 逆向技巧 之 识别未知函数 人生感悟 --- 为什么两句话可以说明白的事情要500字说明 软件研发 --- Dify 生成 PPT 方案分析 应用安全 --- 逆向技巧 之 IDA未知函数如何识别 https://yuuki.cool/ 应用安全 --- 逆向技巧 之 ELF节(Section) 与 段(Segment) 硬件研发 --- 接口 人生感悟 --- 为什么ld一直爱开会 应用安全 --- 逆向技巧 之 IDA和claude反编译缺陷 应用安全 --- 逆向技巧 之 ida反编译yahfa的so和源码的差异化比对
常见问题修复 --- chrome浏览器白屏
GKLBB · 2026-04-20 · via 博客园 - GKLBB
@echo off
:: 关闭命令回显,执行过程中不在窗口显示每条命令本身,只显示输出结果;
:: 就像后台静默运行,用户看不到执行了哪些指令,只看到最终效果

goto main
:: 无条件跳转到 :main 标签处开始执行;
:: 目的是跳过下面的 :elevate 子程序,避免脚本启动时意外执行提权逻辑

:elevate
:: 定义标签 :elevate,这是一个"提权子程序入口",被 goto 调用时跳转到此处
powershell -WindowStyle Hidden -Command "Start-Process cmd -ArgumentList '/c ""%~f0""' -Verb RunAs" >nul 2>&1
:: 调用 PowerShell 以隐藏窗口模式静默运行;
:: Start-Process cmd:启动一个新的 cmd 进程;
:: -ArgumentList '/c ""%~f0""':让新 cmd 执行当前脚本自身,%~f0 是当前脚本的完整路径;
:: -Verb RunAs:以管理员身份(UAC 提权)运行,会弹出系统的"是否允许此应用更改设备"确认框;
:: >nul 2>&1:将标准输出和错误输出都丢弃,不显示任何信息;
:: 整体效果:悄悄地用管理员权限重新启动本脚本
exit /b
:: 退出当前脚本(/b 表示只退出当前批处理层,不关闭 cmd 窗口);
:: 因为提权后会有新进程接管工作,旧的非管理员进程使命完成,直接退出

:main
:: 定义标签 :main,脚本真正的执行逻辑从这里开始
fltmc >nul 2>&1 || goto elevate
:: fltmc 是 Windows 的"文件系统过滤器管理器"命令,普通用户权限下执行会失败;
:: 这里借用它来检测当前是否已拥有管理员权限:成功则继续,失败(||)则跳转到 :elevate 去提权;
:: 就像门卫检查通行证,没有就去重新办证再回来;
:: >nul 2>&1 丢弃输出,只利用其退出码(成功=0,失败=非0)做判断

:: ========================================
:: 处理 Chrome
:: ========================================
call :fix_browser "chrome" "chrome.exe" ^
    "%ProgramFiles%\Google\Chrome\Application\chrome.exe" ^
    "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" ^
    "%LocalAppData%\Google\Chrome\Application\chrome.exe"
:: 调用通用修复子程序处理 Chrome;
:: call :fix_browser 是调用本脚本内定义的 :fix_browser 子程序,执行完后会返回此处继续向下执行;
:: 传入四个参数:浏览器名称标签、进程名、以及三个候选安装路径(^ 是批处理的换行续行符)

:: ========================================
:: 处理 Edge
:: ========================================
call :fix_browser "edge" "msedge.exe" ^
    "%ProgramFiles%\Microsoft\Edge\Application\msedge.exe" ^
    "%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" ^
    "%LocalAppData%\Microsoft\Edge\Application\msedge.exe"
:: 调用同一个通用修复子程序处理 Edge,参数换成 Edge 对应的进程名和安装路径;
:: 两个浏览器复用同一套逻辑,避免代码重复,便于维护

exit /b
:: 两个浏览器都处理完毕,脚本主流程结束,正常退出

:: ========================================
:: 子程序:fix_browser
:: 功能:搜索指定浏览器的安装路径,写入兼容性注册表,并重启浏览器
:: 参数说明:
::   %1 —— 浏览器名称(仅用于日志标识,如 "chrome""edge")
::   %2 —— 进程映像名(用于 taskkill,如 "chrome.exe""msedge.exe")
::   %3 —— 候选路径1(64位Program Files)
::   %4 —— 候选路径2(32位Program Files x86)
::   %5 —— 候选路径3(用户LocalAppData)
:: ========================================
:fix_browser
:: 定义子程序标签 :fix_browser,call 调用时跳转到此处执行,执行完后自动返回调用处
setlocal
:: 开启局部变量作用域;
:: 确保本子程序内部设置的变量(如 EXE_PATH)不会泄漏到外部影响其他逻辑;
:: 就像函数拥有自己独立的变量空间,用完自动销毁

set "BROWSER_NAME=%~1"  
:: 去掉参数两端的引号后赋值给 BROWSER_NAME,%~1 中的 ~ 表示去除引号;浏览器名称,仅作标识用
set "PROCESS_NAME=%~2"  
:: 去掉引号后赋值给 PROCESS_NAME;进程映像名,用于 taskkill 终止进程
set "EXE_PATH="         
:: 初始化 EXE_PATH 为空,防止残留上一次调用的旧值干扰本次搜索

:: 在三个候选路径中依次搜索浏览器可执行文件
if exist "%~3" set "EXE_PATH=%~3"                           
:: 检查第一个候选路径(64位安装目录)是否存在,存在则记录路径;%~3 去掉第三个参数的引号
if not defined EXE_PATH if exist "%~4" set "EXE_PATH=%~4"  
:: 第一个没找到时,检查第二个候选路径(32位安装目录);not defined 短路判断,找到了就不再继续检查
if not defined EXE_PATH if exist "%~5" set "EXE_PATH=%~5"  
:: 前两个都没找到时,检查第三个候选路径(用户私有安装目录)

if not defined EXE_PATH (   :: 三个路径都没找到,说明该浏览器未安装
    endlocal                :: 提前结束局部变量作用域,释放本次 setlocal 创建的变量环境
    exit /b                 :: 退出子程序,返回调用处继续执行下一个浏览器的处理
)
if not exist "%EXE_PATH%" ( :: 二次验证:变量有值但文件可能已被删除,再次确认文件真实存在
    endlocal                :: 提前结束局部变量作用域
    exit /b                 :: 退出子程序
)

:: 向 HKLM 和 HKCU 同时写入兼容性配置,确保主进程和所有子进程都能读到该配置
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%EXE_PATH%" /t REG_SZ /d "~ WIN7RTM" /f >nul 2>&1
:: 写入系统级注册表(对所有用户生效);
:: /v "%EXE_PATH%":以浏览器完整路径为键名;
:: /t REG_SZ:值类型为普通字符串;
:: /d "~ WIN7RTM":设置 Windows 7 RTM 兼容模式,让系统为该程序挂载兼容性垫片(Shim);
:: /f:强制覆盖,不弹确认框;>nul 2>&1 静默执行
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%EXE_PATH%" /t REG_SZ /d "~ WIN7RTM" /f >nul 2>&1
:: 写入用户级注册表(只对当前用户生效);
:: Chrome/Edge 的 GPU 进程、渲染进程以更低权限运行时优先读取用户级注册表;
:: 两处都写才能保证所有进程都拿到兼容性配置,缺一可能导致部分子进程仍然白屏

taskkill /f /im "%PROCESS_NAME%" >nul 2>&1
:: 强制(/f)终止所有与进程名匹配的浏览器进程;
:: 必须先关闭再重启,否则新写入的注册表兼容性配置对已运行的进程不生效;
:: >nul 2>&1 静默执行,即使进程不存在也不报错
ping -n 2 127.0.0.1 >nul
:: 利用 ping 本机两次的等待时间实现约 1 秒延迟;
:: 给系统足够时间让浏览器进程彻底退出,再执行启动,避免新旧进程冲突
start "" "%EXE_PATH%"
:: 异步启动浏览器(start 不等待程序退出就立即返回);
:: 第一个 "" 是必须提供的窗口标题占位参数,防止路径中含空格时被误解析为标题

endlocal
:: 结束局部变量作用域,本子程序内所有变量自动销毁,不影响外部环境
exit /b
:: 子程序执行完毕,返回 call 调用处,继续执行下一行