昨天弄到一套qq的动态表情包,这样的:

因为是用百度网盘分享的,所以随即下载了一个百度网盘。
对了如果有需要的通过小程序自取(可以保存到手机相册,然后添加到微信的表情包),在小程序的这个位置::


但是出现了一个奇怪的问题,每次浏览电脑图片时,莫名发现百度网盘居然会启动!

然后仔细观察了一下发现,右键菜单居然多了一个默认选项:

说实话开始压根没有把他们联想起来,重复几次查看图片网盘重启后有点回过味了,于是开始一通找,找到选项如下:

不得不说百度的产品经理真tm是个鬼才,居然还能想到这种方法来保证用户的活跃…
使用everything大概找了一下:

既然直到名称就好办了
写个脚本清除掉好了,新建文本文档重命名为remove_baidu_imageviewer.ps1
这是一个powershell脚本,有对应的后缀名!对了我这个脚本比较激进,直接移除类似的文件和注册表、移除右键选项、还原默认图片打开方式、并创建了锁文件防止百度网盘再次生成。脚本比较激进!不确认会不会有其他影响,慎用!可参考!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
| <# .SYNOPSIS 百度网盘“智能看图”功能一键清理脚本(当前用户)
.DESCRIPTION - 杀掉相关进程 - 删除程序目录和缓存目录 - 删除注册表残留 - 清理“打开方式”列表中的智能看图条目 - 可选恢复图片默认打开方式 - 可选创建锁文件,阻止目录再次生成
.NOTES 请以管理员身份运行! #>
# ------------------------ 配置区 ------------------------ # 是否恢复默认打开方式(默认 false) $RestoreAssoc = $false
# 要恢复的扩展名和 ProgId (Win11 照片常见 ProgId,可能不同版本不同) $ImageExts = '.jpg','.jpeg','.png','.gif','.bmp','.webp','.tif','.tiff','.heic' $ProgId = 'AppX4hxtad77fbk3jkkeerkrm0ze94wjf3s9'
# 防止再次生成的目录(用“锁文件”占位) $LockTargets = @( (Join-Path $env:APPDATA 'baidu\BaiduNetdisk\module\ImageViewer') # 如有需要可加入 Temp 缓存目录,但 Temp 本身会清理,不建议锁死 # (Join-Path $env:LOCALAPPDATA 'Temp\baidu\ImageViewer') )
# OpenWith 清理时用于匹配的关键字 $Keywords = 'baidu','imageviewer','smartpic','bdimageviewer','baidunetdiskimageviewer' # --------------------------------------------------------
Write-Host "========== 百度网盘“智能看图”卸载脚本 ==========" Write-Host "请确认以管理员身份运行..." -ForegroundColor Yellow Write-Host
# 1. 结束相关进程 Write-Host "[1/6] 结束相关进程..." taskkill /F /IM ImageViewer.exe 2>$null taskkill /F /IM BaiduNetdisk*.exe 2>$null
# 2. 删除目录 Write-Host "[2/6] 删除程序目录..." $DelPaths = @( (Join-Path $env:APPDATA 'baidu\BaiduNetdisk\module\ImageViewer'), (Join-Path $env:LOCALAPPDATA 'Temp\baidu\ImageViewer') ) foreach ($p in $DelPaths) { if (Test-Path $p) { try { Remove-Item -Recurse -Force $p Write-Host " √ 删除: $p" } catch { Write-Warning " × 删除失败,请手动删除或确认无进程占用: $p" } } else { Write-Host " (已不存在) $p" } }
# 3. 删除注册表项 Write-Host "[3/6] 删除注册表项..." $RegToDelete = @( 'HKCR\BaiduNetdiskImageViewerAssociations', 'HKCU\Software\Baidu\BaiduNetdiskImageViewer', 'HKCU\Software\Baidu\BaiduNetdisk\ImageViewer', 'HKCU\Software\Classes\bdimageviewer', 'HKCU\Software\Classes\bdsmartpic', 'HKCU\Software\Classes\Applications\ImageViewer.exe', 'HKCU\Software\Classes\Applications\bdimageviewer.exe', 'HKCR\bdimageviewer', 'HKCR\bdsmartpic', 'HKCR\*\shell\BaiduSmartPic', 'HKCR\Directory\shell\BaiduSmartPic', 'HKCR\SystemFileAssociations\.jpg\shell\BaiduSmartPic' )
foreach ($rk in $RegToDelete) { reg delete "$rk" /f >nul 2>&1 if ($LASTEXITCODE -eq 0) { Write-Host " √ 删除 $rk" } else { Write-Host " (不存在或已删除) $rk" } }
# HKCU\Software\RegisteredApplications\BaiduNetdiskImageViewer (删除值) reg delete "HKCU\Software\RegisteredApplications" /v "BaiduNetdiskImageViewer" /f >nul 2>&1 if ($LASTEXITCODE -eq 0) { Write-Host " √ 删除 RegisteredApplications 中的 BaiduNetdiskImageViewer" } else { Write-Host " (不存在或已删除) RegisteredApplications 中的 BaiduNetdiskImageViewer" }
# 4. 从打开方式列表剔除智能看图 Write-Host "[4/6] 清理“打开方式”列表中残留..." foreach ($ext in $ImageExts) { $base = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$ext" $owList = Join-Path $base 'OpenWithList' $owProg = Join-Path $base 'OpenWithProgids'
# OpenWithList if (Test-Path $owList) { $props = (Get-ItemProperty $owList).psobject.Properties | Where-Object { $_.Name -match '^[a-z]$' } # a,b,c... foreach ($p in $props) { if ($p.Value -match ($Keywords -join '|')) { Write-Host " [$ext] 移除 OpenWithList: $($p.Name)=$($p.Value)" Remove-ItemProperty -Path $owList -Name $p.Name -Force } } # 修复 MRUList $mru = (Get-ItemProperty $owList -Name 'MRUList' -ErrorAction SilentlyContinue).MRUList if ($mru) { $valid = ($mru.ToCharArray() | Where-Object { Test-Path ("$owList\$_") }) -join '' Set-ItemProperty -Path $owList -Name 'MRUList' -Value $valid -Force } }
# OpenWithProgids if (Test-Path $owProg) { $props = (Get-ItemProperty $owProg).psobject.Properties | Where-Object { $_.Name -notmatch '^PS(Path|ParentPath|ChildName|Drive|Provider)$' } foreach ($p in $props) { if ($p.Name -match ($Keywords -join '|')) { Write-Host " [$ext] 移除 OpenWithProgids: $($p.Name)" Remove-ItemProperty -Path $owProg -Name $p.Name -Force } } } }
# 5. 可选恢复默认打开方式 if ($RestoreAssoc) { Write-Host "[5/6] 恢复默认打开方式 -> $ProgId" foreach ($ext in $ImageExts) { $path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$ext\UserChoice" if (Test-Path $path) { Remove-Item $path -Recurse -Force } New-Item $path -Force | Out-Null New-ItemProperty -Path $path -Name 'ProgId' -Value $ProgId -Force | Out-Null } }
# 6. 创建锁文件防止再次生成 Write-Host "[6/6] 创建锁文件防止目录再生..." foreach ($t in $LockTargets) { try { if (Test-Path $t) { if ((Get-Item $t).PSIsContainer) { Remove-Item -Recurse -Force $t } else { attrib +R $t Write-Host " (已存在锁文件) $t" continue } } New-Item $t -ItemType File -Force | Out-Null attrib +R $t Write-Host " √ Locked: $t" } catch { Write-Warning " × 无法锁定 $t:$($_.Exception.Message)" } }
Write-Host Write-Host "========== 完成 ==========" Write-Host "建议重启资源管理器或重启电脑以确保所有更改生效。" Write-Host "如仍在“打开方式”出现残留,可手动检查上述注册表路径或反馈我继续调整。" -ForegroundColor Yellow
|
运行后可以看到选项已删除:
