博客

  • Day 12881 Windows 7 下安装航天信息打印机驱动时,提示“操作无法完成(0x00000002)”或“系统找不到指定的文件”

    情况说明:

    在 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

    完成上述操作后,重新安装驱动即可。

  • Day 12850 在 Windows XP 上安装 HP LaserJet Pro M127/128 打印机驱动时,提示“发生严重错误”或“系统找不到指定的文件”

    情况说明:

    由于实际情况所限,需要在一台 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 秒才能放弃),安装完成后恢复网络即可。

  • Day 12796 时光微尘:关于 Windows 3.2 中一处翻译的追忆

    前些日子,为了求证某位群友提出的一个 Microsoft Office 中的设计问题,在网上试图查找早期版本的 Office,未果,却顺手解决了一个儿时的心中疑问。

    起因是想找到(可能是)第一个具有简体中文语言的 Word 6.0,为此先去安装了其运行环境 Windows 3.2 简体中文版。使用过该版本 Windows 的朋友可能还记得其附带了一个简单的“Windows 教程”,用于帮助用户熟悉鼠标的操作和 Windows 的系统设计,其中有一节内容有这样一个画面:

    看到这里,一个自儿时就存在的疑问立刻从心底浮现了出来:“苏打水”里面的“价格”到底是什么玩意?

    为了验证这个问题,借助万能的互联网,又找来了繁体中文版的 Windows 3.1(简体中文版的 Windows 3.x 是单独一个版本号 3.2,其他版本都是 3.1),终于解开了这个疑惑:

    对比可以看出,“优格”被错写成了“价格”,并且在群友的提醒下还发现“圣代”被错写成了“苏打水”。Windows 3.2 发布于 1993 年,是否由于简中版的翻译人员没有吃过“优格”和“圣代”而导致写错已无法考证,但或许可以将这一胜景称作 zh-ms 的开始(彼时 Windows 简体中文版的其他翻译质量还是很高的,不会出现如今“坐和放宽”的笑话)。

    为求严谨,后续还找来了英文版 Windows 3.1 和俄文版 Windows 3.11 进行对照验证,结果是相同的:

    日文版不论是 DOS/V 版本还是 PC-9800 的版本都没有带这个教程,故跳过。

    这还真是一则有趣的历史印记。

  • Day 12773 在 64 位 Windows 10 下继续使用 MSSQL Server 2000

    部分非常老的应用因厂家未提供更新,被迫在 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 下的同名文件即可(注意先获取权限再覆盖,未测试顺序可否颠倒,如操作失败请按顺序操作试试看)。

  • Day 12640 关闭 Windows 10 中“下载”文件夹始终以“日期”进行分组

    情况描述:

    在 Windows 10 中,系统默认的“下载”文件夹可能会始终以“修改日期”进行分组排序,即按照类似下图的方式进行显示,并且这种分组对于“下载”文件夹是默认的,不能通过:

    (1)在右键菜单中选择“分组依据-(无)”的方式进行修改,或

    (2)在进行第(1)步操作后,在“文件夹选项”对话框中选择“应用到文件夹”的方式进行覆盖。

    发生原因:

    依据多个来源的信息,该问题是在 Windows 10 1903 版本后引入的,“下载”文件夹按照“修改日期”进行分组来自于系统模板设计,通过一般方式无法修改,只能修改注册表中的默认值。

    处理方式:

    1、打开注册表以下路径(提示:可以直接复制整个路径到菜单栏下方的文本框中,并按回车跳转):

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{885a186e-a440-4ada-812b-db871b942259}\TopViews\{00000000-0000-0000-0000-000000000000}

    2、首先在左侧 {00000000-0000-0000-0000-000000000000} 项上点击右键,选择“权限”,并点击“高级”按钮,在对话框上方点击“所有者”(如果之前从未修改过该项的话,此处应显示为 SYSTEM)后面的“更改”,在后续弹出的“选择用户或组”中点击左下角的“高级”按钮,并在新弹出的“选择用户和组”对话框右侧点击“立即查找”,并在“搜索结果”中选择 Administrators(注意带s,意为管理员组),最后点击所有对话框的“确定”按钮。

    3、在注册表右侧对以下键值的内容进行修改:

    键值 GroupBy

    原始值 System.DateModified

    修改为 System.Null

    键值 SortByList

    原始值 prop:System.DateModified

    修改为 prop:System.ItemNameDisplay

    4、重启 explorer.exe 或系统,并重新进入“下载”文件夹,最后一次在右键菜单中将“分组依据”修改为“无”,此时关掉窗口再重新打开“下载”文件夹,可发现没有再次变回按修改时间分组,修改完毕。

    参考资料:

    1、https://superuser.com/questions/1566886/downloads-folder-keeps-getting-grouped

    2、https://learn.microsoft.com/en-us/windows/win32/properties/props-system-null

    3、https://blog.csdn.net/weixin_42218499/article/details/124884803

    4、https://www.cnblogs.com/lzl_17948876/p/14439746.html

  • Day 12630 全屏电池电量显示页面

    页面地址:https://battery.win32.app/

    因为一些个人需求,希望在全屏显示当前设备的剩余电量并动态更新。

    该页面作者为 SilentDepth,并追加了群友 Zero Ny 的改进,使用现代浏览器访问上述页面地址即可。

    仅在 Chrome 和 Microsoft Edge 下测试过确认可用,其它浏览器请自行测试。

    不禁感慨:以前要是想实现一样的功能,无论如何都得写个 Native APP,而现在只要一个 HTML 页面就可以了,时代变化真快啊。

  • Day 12479 HEU KMS 激活 Office 时报错 0x80080005

    本文解决方案来自:https://blog.csdn.net/qazwsxrx/article/details/126393987

    问题描述:

    在使用 HEU KMS 激活工具激活 Office 时,经过长时间的等待后返回错误信息,错误码为 0x80080005,即使清除许可证再试也没有效果。

    可能原因:

    本次笔记时的原因为:该设备之前曾使用 HEU KMS 工具架设本地 KMS 服务器进行激活,但这一次采用的是公用 KMS 服务器激活,之前 KMS 激活工具为本地激活创建的映像劫持不能用于在线激活所致。

    解决方法:

    1、删除注册表下述键值:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\SppExtComObj.exe

    2、重新激活即可。