相信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在副屏上是糊的了

昨天在外闲着没事,把之前入门视频压缩的想法延续了一下,稍微看了一下mpeg和h264的编码原理。打算用megui。 大过年的不睡觉,先放一颗卫星再说。 到时候有时间来填坑吧233

SQL Server Express = SQL Server的精简版 SQL Server Express LocalDB = SQL Server Express的轻量版,可嵌入应用程序使用 ∴SQL Server Express LocalDB = SQL Server的精简精简版 一般来说,随着Visual Studio的安装,在默认情况下会有Express版或者LocalDB版的SQL Server一并安装。 我的VS2013自带的就是SQL Server 2012 Express LocalDB版本。

- 阅读剩余部分 -

Thread类作为对象,其本身具有的功能是顺序执行指定功能(run()方法,即普通的函数功能)和异步执行指定功能(start()方法,在不阻塞后续代码执行的同时,执行自身的run()方法,即多线程特性,开启新线程来执行该方法)。对应的接口为Runnable。构造函数有如下形式:

Thread()
Allocates a new Thread object.
Thread(Runnable target)
Allocates a new Thread object.
Thread(String name)
Allocates a new Thread object.
Thread(ThreadGroup group, Runnable target)
Allocates a new Thread object.
Thread(ThreadGroup group, String name)
Allocates a new Thread object.
Thread(Runnable target, String name)
Allocates a new Thread object.
Thread(ThreadGroup group, Runnable target, String name)
Allocates a new Thread object so that it has target as its run object, has the specified name as its name, and belongs to the thread group referred to by group.
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
Allocates a new Thread object so that it has target as its run object, has the specified name as its name, and belongs to the thread group referred to by group, and has the specified stack size.

- 阅读剩余部分 -

在bash中可以使用转义字符来显示不同的颜色。

<ESC>[{attr};{fg};{bg}m

其中为ESC键对应的转义字符,可用的表达方式有\e\033^[三种

在vi中输入该字符的方式: i进入编辑模式->Ctrl+V->ESC键

应该会出现一个与文本颜色不同的^[字符,此时输入成功

{attr} needs to be one of the following: 0 Reset All Attributes (return to normal mode) 重置特效 1 Bright (usually turns on BOLD) 加亮(显示效果通常为加粗) 2 Dim 变淡 3 Underline 下划线 5 Blink キラキラ~ 7 Reverse 前景/背景色交换 8 Hidden (emm暂时没看出来) {fg} needs to be one of the following: 前景色 30 Black 31 Red 32 Green 33 Yellow 34 Blue 35 Magenta 36 Cyan 37 White {bg} needs to be one of the following: 背景色 40 Black 41 Red 42 Green 43 Yellow 44 Blue 45 Magenta 46 Cyan 47 White

通过/etc/motd (mESSAGE oF tOdAY)可以展示有意思的登陆提示信息。

参考: https://www.linuxjournal.com/article/8603