分类 Windows 下的文章

给家里的旧电脑换了块主板,尝试不重装系统(Windows 7)作业,失败,“正在启动Windows”时出现0x0000007B蓝屏。

期间得出以下结论:

  1. 通过修改注册表SYSTEM部分可以强制系统进入sysprep阶段,但是会在启动服务部分无限重启;
  2. 通过安装一个全新的系统,再复制其SYSTEM文件至原系统,可以使其在开机阶段不蓝屏,但是在出现鼠标以后无限重启。

当然,可能是因为这两项尝试是我已经在多次蓝屏之后再做尝试时,之前的遗留症状。

然后因为各种原因,决定重装系统,还是Windows 7。在安装更新时出现了0x8007000E错误。 被坑爹的某度带着绕了好大的弯,最后终于在巨硬官方论坛里找到了解决方案(还好,起码这次绕回来了):安装KB3102810补丁即可。

下载链接如下: https://support.microsoft.com/en-us/help/3102810/installing-and-searching-for-updates-is-slow-and-high-cpu-usage-occurs 往下翻,在Method 2的表格里面,选择Operating System对应的Update,进入下载界面。 32位选x86,64位选x64,Embedded和Server基本上见不到就不用选了。 下载后双击安装,提示重启电脑生效。重启后,Windows Update正常工作。

相信Win10+1080p屏幕的笔记本是绝大部分人在可移动电脑上的选择。然鹅,绝大部分的软件是在缩放比正常(即100%)的台式电脑上设计制作的。dpi缩放的确让大部分软件的文字在小尺寸的高分屏上有令人可以接受的大小,随之而来的是非倍数比例的缩放在离散的像素点上,相当不尽人意的表现。(当然,若是不介意文字是糊的话,此文就没什么阅读的意义了)

不知是不是Win10内部交流的不顺利,身为系统组件本身的管理控制台mmc.exe和资源监视器perfmon.exe竟然都是糊的。被这个问题困扰了一年有余,今日在写java awt(不要问我为什么作死用awt,年少轻狂啊)时,被Win10(可能不止?待测试)窗体的内边距玩的欲哭无泪,不知咋地又想到这个问题,就神奇的找到了一篇文章(见文尾)。本来是用来解决vs的缩放问题的,结果被我反着一用,倒还解决了一个陈年老题。。方法如下

(大概是)强制决定dpi缩放功能是否开启的路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

在这个项下新建如下的结构,即可实现在第三方程序属性选项卡中“高dpi时禁用缩放”的相同功能。

...
  └-Image File Execution Options
       └-executable_name
            └-dpiAwareness: DWORD = 0

亦即在Image File Execution Options项下建立一个目标程序的文件名(不带路径,要扩展名)的新项(原有就不用新建了),再在项下建立一个新DWORD值,名为dpiAwareness,十/十六进制都可以(0-9的十和十六进制整数表达相同),0代表禁用,1代表启用。例如开头所说的解决系统程序糊的问题,将dpiAwareness设置为1即可。

差点忘了,最后还要diss一下Win10自带的最大号病毒——Windows Update

参考: https://www.cnblogs.com/DoNetCShap/p/10280920.html

====================

2022/3/11更新

https://docs.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process

根据巨硬官网所说,在1607版本开始,是提供了按显示器设置的缩放功能的(per-monitor DPI awareness),足以解决在缩放比例不同的显示屏上糊的问题。然而搜索一圈并没有发现网上有详细说这个功能怎么在注册表里用的。但是经过大胆尝试后,发现将dpiAwareness设置成2就可以开启该功能,妈妈再也不用担心我的VS在副屏上是糊的了

原理:先把装Linux时可以引导的启动扇区备份成文件,再由bootmgr的扇区引导功能读取文件,实现启动扇区的“还原”。 备份文件大概用dd的原理就好吧

bcdedit /create /d "name-of-your-boot-entry" /application bootsector
bcdedit /set {id} device partition=your-partition:
bcdedit /set {id} path path-under-partition-given-last-command
bcdedit /displayorder {id} /addlast

其中id为第一条命令返回的带括号的标识符

样例如下:

bcdedit /create /d "CentOS" /application bootsector
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device partition=C:
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} path \\linux-boot.bin
bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast

四条命令的作用分别为: 1.创建Windows启动条目 2.设置启动磁盘分区 3.确定启动时读取的引导文件 4.使刚刚设置好的启动条目在bootmgr中显示

参考内容:https://wenku.baidu.com/view/6ddae0d026fff705cc170afc.html