一次 VS2022 安装出错的解决过程

最近新换了电脑,这几天安装 VS2022 时,提示安装失败,未能安装包“Microsoft.VisualStudio.Debugger.JustInTime.Msi,version=16.10.31205.180,chip=x64”。

返回代码 1603 详细信息: 安装时发生严重错误

根据网上的资料,尝试了各种方法都没有解决问题。

怀疑是 VS2022 的原因,卸载后重装 VS2019,问题依旧。

最后,尝试了卸载所有组件,删除文件夹,清理注册表,差点把系统搞崩了。

还是不行。

不得已,我只好认真查看了 VS 的安装日志,发现错误都指向注册表权限。

 Could not write value xxx to key \Software\Microsoft\Windows\Windows Error Reporting\DebugApplications.   Verify that you have sufficient access to that key, or contact your support personnel.

用注册表编辑器打开注册表,找到 HKLM\Software\Microsoft\Windows\Windows Error Reporting\ 发现并不存在 DebugApplications 或者 RuntimeExceptionHelperModules ,试图手工建立子项提示无权限,调整权限也无效。最后将 Windows Error Reporting 删除,再重新安装 VS,问题解决。

写下这段,其实是给自己记录的教训,以后发现问题,要先认真分析问题日志,再解决问题。这样反而事半功倍,可以少走不少弯路。

Dual Monitor Tools v2.11 中文汉化绿色版

Dual Monitor Tools 是一个老牌免费开源的多显示器管理工具。

它提供了多显示器下窗口跳转、壁纸设置、屏幕保护、鼠标控制、屏幕快照捕获显示、魔法单词启动(输入关键词快速执行)、屏幕分割区域等功能。支持热键和命令行参数。

壁纸支持本地磁盘、bing 、unsplash和flickr网站,还支持随机生成形状和自定义url地址。

另外它还提供了一个独立的壁纸管理软件,可以快速的实现多显示器拼接壁纸。

相比较 DisplayFusion Pro 而言,尽管功能相对少一些,但是免费开源,资源占用更少。

Dual Monitor Tools 没有中文版,该软件是GPL3协议开源,所以我对该软件进行了源码级别的汉化,重新编译。

继续阅读

OpenWith 指定文件打开方式

因为小众论坛有人提过一个需求,希望能不修改.url文件默认浏览器的情况下,用另一个浏览器打开这个文件。

我就根据这个需求,写了一个 OpenWith 的小工具,使用方法很简单,首先修改配置文件,让文件类型用指定程序打开即可,方法如下:

扩展名=指定的程序路径, 比如 reg=notepad.exe

每个一行,可以写多个。扩展名可以用 * 指代所有未指定的其他文件。

OpenWith v1.1

然后拖放文件到本软件,或者桌面快捷方式即可。如果文件类型没有指定,会用默认程序打开。

它的优势就是不修改默认的文件关联,也无需右键菜单。本身绿色免安装,即用即走,不占用内存,不需要开机启动。

下载地址

无差别获取windows聚焦锁屏壁纸的bat命令

@echo off

echo 复制图片到 "d:\windows聚焦\" 文件夹...
echo 修改扩展名为jpg...

xcopy "%UserProfile%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\*" "d:\windows聚焦\*.jpg" /y

这个代码会自动复制系统路径的锁屏图片到 d:\windows聚焦 文件夹. 你可以根据自己需求修改文件夹路径.

参数 /y 是覆盖时不提示. 锁屏图片的默认名称是一串随机字母, 通常不会有重名问题. 所以覆盖没问题.

这个方法的优点是安全, 不用担心下载可执行文件带来病毒, 不需要懂ahk编程.

但是缺点是不能筛选图片大小,不能区分竖屏和横屏图片.

使用方法:

复制上面的代码到记事本,另存为 win聚焦.bat 文件, 双击运行即可.

一些奇奇怪怪的快捷方式

环境变量是目录的可以直接在绝对路径中引用,所有值均可在CMD下用 echo 命令显示以查看。

%ALLUSERSPROFILE%通常位于 C:\ProgramData
%APPDATA%通常位于C:\Users\用户名\AppData\Roaming
%CD%列出当前目录。
%CLIENTNAME%列出联接到终端服务会话时客户端的NETBIOS名。
%CMDCMDLINE%列出启动当前cmd.exe所使用的命令行。
%CMDEXTVERSION%命令出当前命令处理程序扩展版本号。
%CommonProgramFiles%通常位于C:\Program Files\Common Files
%COMPUTERNAME%列出了计算机名。
%COMSPEC%通常路径为 C:\WINDOWS\system32\cmd.exe
%DATE%列出当前日期。
%ERRORLEVEL%列出了最近使用的命令的错误代码。
%HOMEDRIVE%列出与用户主目录所在的驱动器盘符。
%HOMEPATH%列出用户主目录的完整路径。
%HOMESHARE%列出用户共享主目录的网络路径。
%LOCALAPPDATA%通常位于C:\Users\用户名\AppData\Local
%LOGONSEVER%列出有效的当前登录会话的域名控制器名。
%NUMBER_OF_PROCESSORS%列出了计算机安装的处理器数。
%OneDrive%列出OneDrive存放路径
%OS%列出操作系统的名字。(WindowsXP和2000列为Windows_NT.)
%Path%列出了可执行文件的搜索路径。
%PATHEXT%列出操作系统认为可被执行的文件扩展名。
%PROCESSOR_ARCHITECTURE%列出了处理器的芯片架构。
%PROCESSOR_IDENTFIER%列出了处理器的描述。
%PROCESSOR_LEVEL%列出了计算机的处理器的型号。
%PROCESSOR_REVISION%列出了处理器的修订号。
%ProgramFiles%列出了ProgramFiles文件夹的路径。
%PROMPT%列出了当前命令解释器的命令提示设置。
%PUBLIC%通常位于C:\Users\Public
%RANDOM%列出界于0和32767之间的随机十进制数。
%SESSIONNAME%列出连接到终端服务会话时的连接和会话名。
%SYSTEMDRIVE%列出了Windows启动目录所在驱动器。
%SYSTEMROOT%列出了Windows启动目录的位置,通常为 C:\Windows
%TEMP%
%TMP%
列出了当前登录的用户可用应用程序的默认临时目录。
通常为 C:\Users\用户名\AppData\Local\Temp
%TIME%列出当前时间。
%USERDOMAIN%列出了包含用户帐号的域的名字。
%USERNAME%列出当前登录的用户的名字。
%USERPROFILE%列出当前用户Profile文件位置。通常为C:\Users\用户名
%WINDIR%列出操作系统目录的位置,通常为 C:\Windows
继续阅读

E-Robot 手机自动化工具

E-Robot 是一款 Android 手机上的自动化 APP,类似 Tasker ,可以实现自动触发事件的功能,所以国内也有把它翻译为《智能触发》。

这类 APP 很多,比如著名的 Tasker 、Automate、AutoSet 等等。这类 APP 我都使用过。

Tasker 功能最强大,插件众多,支持代码编辑,是很多大神的必备工具。但是我一直不习惯这种风格,而且 Tasker 不 root 的话,乐趣少了很多。

继续阅读

关于公文助手的一些思考

小恐龙公文助手发布以来,收到了很多用户的反馈,感谢大家的意见和建议,我把这些反馈集中的几点梳理了一下,大约是这样的:

  1. 安装时遇到问题
    • 无法安装:通常是各类系统故障。
    • 安装后无法显示:通常是由于各类盗版Office的问题。
  2. 使用时遇到问题
    • 每次启动时语音模块的错误提示:通常是盗版windows的问题。
    • 在Wps上的一些不兼容。
    • 全国各地五花八门的公文标准。

说实话,这些问题有的不该发生,尤其是各类盗版问题,虽说不是开发者应该解决的,但也的确是困扰大家的实际情况。

继续阅读

windows 快捷方式深度解析

windows 快捷方式的常见扩展名是.lnk,通常情况下是不显示此扩展名的。快捷方式无法直接编辑, 如果把快捷方式拖动到记事本中,看到的也会是乱码。特别是一些快捷方式,甚至无法通过右键属性修改。

如上图,箭头所示部分是无法修改编辑的.
那么这些快捷方式到底是如何生成的,基本原理又是什么呢? 继续阅读

C# 不用Windows Script Host Object Model创建桌面快捷方式

网络上绝大多数的C#教程都是使用了 Windows Script Host Object Model 来创建快捷方式,这个方法的弊病是需要引入IWshRuntimeLibrary,在添加引用对话框中搜索Windows Script Host Object Model,选择之后添加到Project的引用中。用户在使用中可能会遇到缺少com组件或者被某些杀毒软件误判的问题。

下面的方法很好的解决了这个问题,不需要引用和using, 而且适应32和64位系统。

继续阅读

没有微软鼠标,也能使用即时查看(Instant viewer)功能

之前一直使用罗技和微软的鼠标,这两家的鼠标都有自带的鼠标驱动和配置软件,其中有一个功能,我一直很喜欢,在微软方面,叫做即时查看功能,英文叫做Instant viewer。 罗技方面则叫做应用程序切换。

可以实现全屏预览所有打开的窗口,大约就是这个样子:

Instant viewer 即使查看

不过这个功能只能使用微软或者罗技的鼠标才可以,没有快捷键(除非键盘有多任务按钮),第三方鼠标是无法实现的。

我研究了很久,终于在国外AHK论坛上找到了方法,下面我分享一下自己改进的AHK代码: 继续阅读

又一个任意代码高亮的方法

之前我介绍过如何在Word中高亮显示代码,今天再分享一个可以在Office或者Wordpress 等网页中插入高亮代码的方法。

在Wordpress中插入代码,一般人都会选择插件,或者修改文件的方法。但是插件往往会使用一些远程的js库,影响网站速度,长期来说,也未必稳定。反倒不如直接写入带Highlight格式的HTML更佳。这里就需要用到一个非常不错的软件 继续阅读

如何在Word中高亮显示代码

很多高级文本编辑器是支持代码高亮的,比如emeditor、notepad++、Scite等等。但有时候我们需要粘贴一些代码到Word文档中。但是有些编辑器是无法粘贴高亮格式的。这就需要用到几个巧妙的方法。

注:

notepad++ 可以:插件-NppExport-Copy all formats to clipbord 的方法粘贴。

Scite 可以:菜单 Edit -> Copy as RTF 的方法粘贴。

本方法适合一切可以高亮代码的编辑器,不管它是否支持插件或富格式文本。

继续阅读