Day 7297 关于某种特殊的 DVD-Video 碟片的抓取
碟片满足以下特征:
- 在 DVD 机或 PC 的播放器中,可以正常播放。
- 使用通常的手段进行抓取(如格式工厂、MediaCoder 等,或其他常见的 DVD rip 软件),会在抓取第一个节目的少量内容后卡死。
- VIDEO_TS 目录下看上去好像有 99 个节目,且文件总大小大大超出盘片本身的容量。
处理方法:
使用 Handbrake 进行抓取,会自动跳过无效的节目。
碟片满足以下特征:
处理方法:
使用 Handbrake 进行抓取,会自动跳过无效的节目。
有一款叫 TxBench 的工具,可以在 Windows 环境下为磁盘进行测速、安全擦除、信息显示等操作,其中安全擦除功能调用了硬盘本身固件的功能,在启动前会为磁盘加上 ATA 固件锁,而如果由于断电等原因,安全擦除异常中断,会导致磁盘不可用,表现为磁盘在 OS 层面不显示(宛如没有这个硬件一样)、对任何 I/O 操作不响应等。
TxBench 在擦除前不会告知用户设置的固件锁密码,如果擦除异常中断导致硬盘被锁定,需要使用作者提供的工具移除密码。由于软件官网已经下线,感谢 Internet Archive 将这个工具保留了下来,可以在这里下载。

适用于接收器型号为 CU0019 的罗技鼠标接收器(见上图)和鼠标背面没有配对按钮的型号(M170、M171、M185、M186、M221等),不需要去下 Logitech Connection Utility,那个是给支持优联技术的鼠标用的。
一、将接收器插入 PC 的 USB 接口。
二、鼠标开关拨到 OFF 位置(记得装电池),先按住右键并保持不动(一直到配对完成为止),然后将开关拨到 ON 位置。
三、保持按住右键的同时,按一下鼠标的左键。
四、保持按住右键的同时,按一下鼠标的滚轮(中键)。
五、连接完成,尝试移动鼠标,应当已经可以看到指针移动了。
公司有一台采购于 2014 年的 DELL PowerEdge R720 服务器,由于各种原因,机房没有在机架上配备 KVM,于是每次出现需要到现场调试的情况(如进 BIOS 修改设置)都要扛一台有 VGA 输入的显示器过去,在不额外花钱采购的前提下,不论是什么背光的型号都又大又重。
某天在一次出现场之前,突然想到之前似乎看到过有 VGA 转 HDMI 的连接线,检索之后选定了山泽的 VH2024,并在去现场之前找了一台机器进行测试,可以“正常使用”,于是抱着一块小尺寸的便携屏美滋滋地去了机房。
然而,当实际到达现场后,发现除了极少数界面以外(例如启动过程中 Initializing firmware interfaces… 的无光标图形模式画面),大部分时间都是在画面一闪而过之后一直黑屏,甚至连 DELL 图形界面的 BIOS 设置和 Lifecycle Controller 都看不到任何画面,偶尔能打开便携显示器 OSD 画面的情况,输入信号显示为 0×0 的分辨率,给人的感觉是从源头上就出了问题。
顺带一提,由于 VGA 转 HDMI 是模拟转数字信号,芯片是主动模式,而 VGA 端子唯一有供电的 pin 9 是否存在无法确保,所以这种转换线缆都会再配一根从 USB 取电的线,本例中,这根供电线是接上了的,所以看不到画面并不是因为没有插供电。
从机房回来后,丧气之余将线缆拆开,发现其中起主要作用的是一颗 MS9288C 芯片。不过,虽然可以很简单地查到这颗芯片的出品方是安徽合肥宏晶微电子科技有限公司,但查不到任何该芯片的 Datasheet(可以查到一份手册,但上面没有关于支持的信号模式的相关信息)。
尝试去问京东客服,对方也只是山泽的销售人员,不清楚具体原因;向芯片出品方宏晶微发邮件咨询,被告知需要留下公司名称方可进行回访,算了算了.jpg
多方搜索后,在这个页面找到了采用同款芯片的产品,其配套说明书如下:


假设说明书上的内容不是乱写的,那么 MS9288C 所支持的输入分辨率包括:
很不巧的是,Legacy BIOS 使用的是 VGA 文本模式,其分辨率为 720×400,恰好不在支持范围内。
不幸的是,市面上销售的便宜转接头基本上都没有考虑过这个已经进了故纸堆的分辨率,能支持的基本上也只有 OSSC(Open Source Scan Converter,一款开源的视频信号硬件转换器,国内售价 500 元起跳)这类很贵的设备,而如果只是为了减轻去机房的负重明显就不太值得了。
结论就是,学费 40 元,扛台显示器吧,挺好的。
这里还有一篇文章讲述了类似的情况,比我专业多了,可以做进一步参考。
自从 2021 年的 KB5005565 开始,微软就在玩坏 Windows 内置的打印机共享功能的道路上越走越远,虽然知道微软是为了修复 Windows 共享中的漏洞而做出的修改,但你要不要首先确保用户的功能可以继续正常使用?
时至今日,微软的出品质量越来越差,每一次的 Windows Update 都可能引入新的严重 bug,尤其是共享打印机功能,以前通常只需要考虑跨大版本不易解决(如 Win10 去连接 Win7 的共享打印机、XP 去连接 Win11 的打印机等等),而现在甚至同代系统之间都可以昨天还能用、今天就全炸锅了。
前一段时间因各种原因,给某公司组装了几十台办公电脑,由于并非常驻对方公司,无法像在供职公司一样出问题随时上门,在被 Windows 10 优秀的共享打印机功能教训过后(前一天同一个办公室还能用,第二天就全体报错,并且无法重新添加),终于在检索维护方案时,找到一种不需要额外投入成本的方法,即使用 Windows 目前还内置的 LPD 打印服务。
以下操作方式以 Windows 10 为例,Windows 11 操作相近,可自行摸索。
注:如果打印服务器和客户端同属于 Windows 10、11 系列,请优先将双方的网络配置文件设置为专有网络(专用网络),可以省掉很多问题。
一、安装 LPD 打印服务
在拟用作打印服务器(直连打印机)的电脑上打开“启用或关闭 Windows 功能”,启用“打印和文件服务”下的“LPD 打印服务”(无需勾选“LPR 端口监视器”,但选上也没有什么问题),点击确定安装此功能。
二、启用共享
为接下来要共享的打印机启用共享,此时需要记下共享名,稍后在其他机器添加打印机时会用到。
为达到最佳兼容性,共享名最好遵循以下规则:(1)全小写(录入时比较方便);(2)不要有空格;(3)限制在31个(含)字符内。
三、安装 LPR 打印端口
在打印客户端(其他电脑)上打开“启用或关闭 Windows 功能”,这次启用的是“打印和文件服务”下的“LPR 端口监视器”,点击确定安装此功能。
四、在客户机上添加打印机
(一)在“添加设备”对话框中直接点击“我所需的打印机未列出”,在下一步中选择“通过手动设置添加本地打印机或网络打印机”。
(二)选择“创建新端口”,端口类型选择“LPR Port”。
(三)在“添加 LPR 兼容打印机”对话框中,在“提供 LPD 的服务器的名称或地址”中输入打印服务器的 IP 地址,“服务器上的打印机名称或打印队列名称”中输入第二部中记下的共享名。
(四)在下一步中安装打印机驱动,可去厂商网站下载。
五、额外设置
安装完毕后,打开新增打印机的“打印机属性”,在“端口”中取消勾选“启用双向支持”,否则打印机可能没有反应,对于佳能 CAPT 协议的打印机而言,则可能报错“不支持打印机连接的端口”。
不过该方法也不是万能的,目前有观察到以下两种特殊情况:
一、HP Laserjet 1020 打印机的共享
作为一款经典型号,1020 打印机至今仍在生产新品,迄今已有 20 年的历史,其在官网上提供的“全功能软件和驱动程序”截止至 2016 年,安装程序也有很明显的 XP 年代的痕迹。
但是,如果用官方驱动进行 LPD 共享的话,无论如何无法成功,甚至连 Windows 自带的共享有时也困难重重,表现为可以成功添加打印机,可以成功发送打印任务,但打印机实际上不会有任何反应。
临时解决方案为:去 HP 官网下载官方的通用驱动(HP Universal Print Driver Series for Windows),将已添加的打印机驱动替换为这个通用驱动即可。(不保证 100% 修复,可能即使采用通用驱动也无法收到打印任务,最好还是能使用 Windows 自带的共享功能连接该型号的打印机)
此外,如果需要在 macOS 上添加此型号打印机的 LPD 共享连接,驱动程序选择 macOS 自带的 HP Laserjet 1022 即可(HP 官方没有提供 1020 的 macOS 驱动)。
二、LPD 服务报错找不到打印机
出现此错误时,其表象与上一个问题类似,即 LPD 共享可以正常添加,打印任务可以正常下达,但打印机不会有任何反应。
不同的是此时去客户机的事件查看器中,展开 Windows 日志-应用程序,会看到有级别为警告、来源为 Spooler-LPRSVC、事件 ID 为 2004 的记录,内容为:
行式打印机远程工具(LPR)服务无法将打印作业提交到主机(打印服务器 IP 地址)上的 Line Printer Daemon (LPD)打印机(打印机共享名),因为远程主机或打印机上的 LPD 服务正在拒绝打印作业。如果 LPD 服务正在处理其他打印作业则会发生这种情况。LPR 服务将重试打印,直到作业打印成功或用户取消打印作业为止。
在打印服务器上,可以看到级别为错误、来源为 Spooler-LPDSVC、事件 ID 为 4008 的记录,内容为(没有拍照所以为大致内容,来自对英语事件内容的翻译):
行式打印机远程工具(LPR)服务拒绝了来自(打印服务器 IP 地址)提供给(打印机共享名)的打印任务,因为指定的打印机不存在。请从客户端以正确的打印机名称重新发起打印任务。
此问题即便在客户机上添加 LPD 打印机时填写的共享名完全正确也可能发生(添加打印机时只校验服务是否可以连接,并不校验打印队列名称是否正确,所以请优先检查共享名称是否录入有误),临时解决方法为在服务器上给打印机换一个共享名,然后在客户机上重新添加 LPD 打印机,但也可能无效,具体原因仍有待探究。
三、其他一些添加共享打印机时问题的处理方案
(一)打印服务器为 Windows 10、客户端为 Windows 11,在服务器和客户机的网络配置文件均已设置为“专用网络”、打印服务器网络和共享设置已设置“启用文件和打印机共享”、“密码保护的共享”已经设置为“无密码保护的共享”且 Guest 账户没有被禁用的情况下,通过 \\IP 的 UNC 路径访问打印服务器提示“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。这些策略可帮助保护你的电脑免受网络上不安全设备或恶意设备的威胁”:
临时处理方法:
1 在出现上述提示时,使用账号 Guest、密码为空的凭据登录,此时可以看到共享打印机,但尝试安装会提示“0x00000040 指定的网络名不再可用”。
2 在组策略“计算机配置-管理模板-打印机”中,将“配置 RPC 连接设置”中的“用于传出 RPC 连接的协议”从“RPC over TCP”修改为“命名管道上的 RPC”。
3 使用 gpupdate /force 更新组策略(或重启一下)。
由于工作的缘故,需要快速将一批 RAW 图片转换为 JPEG 格式,该批文件的格式较新,手里现有的 AcdSee 和 XnView 无法打开,并且已经没有时间安装 Lightroom 等软件,经查找 Photoshop 的“图像处理器”(文件-脚本-图像处理器)可以完成这一操作。
然而,在操作过程中,发现文件夹中的 CR2 格式文件被尽数跳过。经搜索,原因为 Photoshop 自带的“图像处理器”脚本在判断需要用 CameraRaw 打开的文件时并不包含 CR2 扩展名,幸好这一插件的文件是纯文本,只需对其进行修改即可。
以 Photoshop 2020 为例,用文本编辑器打开下列文件:
C:\Program Files\Adobe\Adobe Photoshop 2020\Presets\Scripts\Image Processor.jsx
在大约115行的位置找到:
gFilesForCameraRaw = Array( “TIF”, “CRW”, “NEF”, “RAF”, “ORF”, “MRW”, “DCR”, “MOS”, “SRF”, “PEF”, “DCR”, “DNG”, “ERF”, “X3F”, “RAW”);
在末尾添加 CR2 扩展名(注意保持大写),使其变成:
gFilesForCameraRaw = Array( “TIF”, “CRW”, “NEF”, “RAF”, “ORF”, “MRW”, “DCR”, “MOS”, “SRF”, “PEF”, “DCR”, “DNG”, “ERF”, “X3F”, “RAW”, “CR2”);
保存后重新调用图像处理器即可。
在 Word 中编辑文档时,由于各种各样的原因(尤以外来文档居多),总会在录入一部分内容后一按回车,全文的部分内容就会变换为特定的格式(例如全部变成微软雅黑、自动缩进等等),而有时并不需要它这样多此一举——尤其是在修改一些长文档时特别烦人。
多数解决方法会要求去 Word 的选项中关闭“正文”样式的自动更新,但经尝试效果不彰,经搜索,找到一则通过 VBA 一次性关闭所有当前文档内置样式自动更新的方法:
Sub 清除自动套用格式()
Dim update As Style
Set Updates = ActiveDocument.Styles
For Each update In Updates
If update.Type = wdStyleTypeParagraph Then
update.AutomaticallyUpdate = False
End If
Next
End Sub将上述代码保存在通用模板 Normal.dotm 中,即可在任意文档中进行使用。
此处假设读者了解如何通过内置的 VBA 编辑器向 Normal.dotm 中添加宏,相关操作步骤请另行搜索。
情况说明:
在 Windows 7 x64 操作系统下安装航天信息 SK-860 税控打印机驱动时,在正常检测到设备的前提下,发生如下情况:
(1)使用其官方安装程序,开始安装后提示“操作无法完成(0x00000002)”,随后提示打印机驱动安装失败(0x00000002 即对应“系统找不到指定的文件”错误);
(2)在设备管理器中试图更新“其他设备”下对应的打印机设备驱动时,使用官方提供的驱动程序包,可以找到对应或兼容的设备型号,但开始安装后提示“系统找不到指定的文件”。
处理经历:
首先尝试上次安装 .NET Framework 3.5 的方法,但本次该方法无效,要么在启动安装程序后没有任何反应(或走完进度条后消失),要么直接给出必须使用“控制面板”中的“打开或关闭 Windows 功能”安装或配置 Microsoft .NET Framework 3.5 SP1 的提示(因为 .NET Framework 3.5 事实上是 Windows 7 的一部分)。
然后从低到高尝试安装各种版本的 .NET Framework ,虽然成功,但并没有解决问题,又发现该机器自 2019 年以来长期未安装过更新,遂运行 Windows Update,安装完所有能检测到的更新,仍未果。
最终后知后觉想到去查看“系统找不到指定的文件”的根源,在 \Windows\inf\SetupAPI.dev.log 中查找最近一次安装该打印机的记录:
flq: CopyFile: ‘C:\Windows\System32\DriverStore\FileRepository\sk-860.inf_amd64_neutral_aa11c87673493b48\amd64\SK-860.GPD’
flq: to: ‘C:\Windows\system32\spool\DRIVERS\x64\{6C859189-FD69-4CD3-9460-EA8EF1602268}\SETDB4.tmp’
cpy: CopyFile Drp is NOT active
flq: MoveFile: ‘C:\Windows\system32\spool\DRIVERS\x64\{6C859189-FD69-4CD3-9460-EA8EF1602268}\SETDB4.tmp’
flq: to: ‘C:\Windows\system32\spool\DRIVERS\x64\{6C859189-FD69-4CD3-9460-EA8EF1602268}\SK-860.GPD’
flq: {SPFILENOTIFY_ENDCOPY}
flq: {SPFILENOTIFY_ENDCOPY – exit(0x00000001)}
flq: {_commit_copyfile exit OK}
flq: source media:
flq: Description – [Windows 安装光盘]
flq: SourcePath – [C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_neutral_02f0bd8e459ed8b3\Amd64]
flq: SourceFile – [UNIDRV.DLL]
flq: Flags – 0x00000000
flq: {SPFQNOTIFY_NEEDMEDIA}
flq: {SPFILENOTIFY_NEEDMEDIA}
flq: {SPFILENOTIFY_NEEDMEDIA – exit(0x00000000)}
flq: {SPFQNOTIFY_NEEDMEDIA – returned 0x00000000}
!!! flq: source media: SPFQOPERATION_ABORT.
!!! flq: Error 2: The system cannot find the file specified.
flq: {_commit_copy_subqueue exit(0x00000002)}
!!! flq: FileQueueCommit aborting!
!!! flq: Error 2: The system cannot find the file specified.
flq: {SPFILENOTIFY_ENDQUEUE}
flq: {SPFILENOTIFY_ENDQUEUE – exit(0x00000001)}
flq: {_commit_file_queue exit(0x00000002)}
注意其中带下划线的两行,明确指出了驱动安装过程中找不到的文件。
经查询,该问题主要出现在一些经过优化或精简的 Windows 7 系统上,在本例中,ntprint 所在驱动包目录名原本包括 02f0bd8e459ed8b3 和 4616c3de1949be6d 两个版本,而本次安装需要的 02f0bd8e459ed8b3 不存在,所以出错,解决方法有二:
(1)将 ntprint.inf_amd64_neutral_4616c3de1949be6d 文件夹及其内容复制一份,并改名为 ntprint.inf_amd64_neutral_02f0bd8e459ed8b3
(2)直接将 ntprint.inf_amd64_neutral_4616c3de1949be6d 文件夹改名为 ntprint.inf_amd64_neutral_02f0bd8e459ed8b3
完成上述操作后,重新安装驱动即可。
情况说明:
由于实际情况所限,需要在一台 Windows XP(32位)的机器上安装 HP LaserJet Pro M127/128 的驱动程序,官方提供了相应操作系统的驱动程序,但总会发生如下情况之一:
(1)使用 HP 官方的安装程序(不论是“全功能软件和驱动程序”还是“PCLm 打印驱动程序”)进行安装,经历漫长的等待后,报“发生严重错误”,安装失败;
(2)对官方安装程序解包,或下载官方的“PCLm 驱动程序(无安装程序)”,然后在控制面板中手动添加打印机,或者使用设备管理器对“其他设备”中对应的感叹号设备进行更新(此时错误代码为 28:此设备的驱动程序未安装),开始安装后很快报错“系统找不到指定的文件”。
解决方法:
尝试多种方法未果后,抱着死马当活马医的心态尝试了一个百度知道中给出的答案:安装 .Net Framework 3.5(或者 .Net Framework 3.5 SP1)。非常神奇的是,装好后再尝试安装驱动,居然就真的顺利安装上了。
其他说明:
由于 Windows XP 对加密套件的支持比 Windows 7 还要古老,下载 .Net Framework 3.5 时最好下载离线安装包,并且在开始安装前断网(由于安装程序会尝试获取更新,但由于加密套件不支持会失败,一旦开始尝试就要等 5 个 60 秒才能放弃),安装完成后恢复网络即可。
部分非常老的应用因厂家未提供更新,被迫在 Windows 10 下继续沿用其附带的 MSSQL Server 2000,会遇到报错“无法定位序数1于动态链接库C:\Windows\SYSTEM32\SQLUNIRL.dll上”。
该报错来自 SQL Server 2000 的”服务管理器”组件,实际上,SQL Server 2000 并非需要该组件才能正常运行,它只是提供了一个启动、停止 SQL 服务的界面,故该问题有两种解决方法:
1、禁用 SQL Server Service Manager 的自动启动:
右键单击任务栏选择“任务管理器”,在“启动”标签下找到 SQL Server Service Manager,右键单击选择“禁用”即可。
2、如果因为某些原因仍然需要此组件,也可以修复此问题:
以管理员权限打开命令提示符(cmd.exe),执行下列指令为 sqlunirl.dll 获取 TrustedInstaller 权限:
(注:MSSQL2000 是 32 位应用程序,本例 Windows 10 为 64 位版本,故下列指令中实际操作的是存在于 SysWOW64 目录中的文件,如为 32 位 Windows 10,请自行调整操作目标文件)
takeown /f “C:\Windows\SysWOW64\sqlunirl.dll”
icacls “C:\Windows\SysWOW64\sqlunirl.dll” /grant administrators:F
接下来,从 SQL Server 2000 安装包的 _x86\SYSTEM 目录下复制一个原版的 sqlunirl.dll,使用上述指令使其获得 TrustedInstaller 权限(注意修改操作目标),然后覆盖 SysWOW64 下的同名文件即可(注意先获取权限再覆盖,未测试顺序可否颠倒,如操作失败请按顺序操作试试看)。