各种软件装的多了,总是容易碰到一些奇奇怪怪的问题。本文是我自身碰到的、在系统和软件使用过程中的问题记录。

系统

查看指定端口的进程

  1. netstat -ano|findstr "1081":找到占用端口的PID
  2. tasklist | findstr "PID号":根据PID查找进程的名称

windows文件夹不自动刷新

  1. 新建项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Update
  2. 新建子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Update\UpdateMode
  3. 在UpdateMode子项下新建“可扩充字符串值”,名为DWORD,值为0
  4. 也可直接导入如下注册表文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Update]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Update\UpdateMode] “DWORD”=hex(2):30,00,00,00

软件

wps activex.msi问题

  • 问题描述

在打开 word 文档或者是 excel 文档的时候总是会弹出如下的窗口。

  • 问题分析

在网上搜索了好久,认为最终的原因应该是安装其他软件的时候出现了这个 activex 的问题,由于打开 wps 的时候软件调用出现了混乱。

  • 解决方式

    • wps 论坛有人反映这个同样的问题,认为应该删除*[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Installer\Products]* 和 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Installer\Features] 下的所有条目,但是实际是无效的(其实理论是正确的,只是位置偏差了而已)

    • 尝试找个 activex.msi 的安装包,但发现根本没有这个文件,只有第三方的相关软件,装上是无效的

最终在网上到处搜索的时候看到有关于其他软件(非 activex)的解决方式,发现其实在 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer] 条目下也是有 ProductsFeatures 条目的,这才让我想到删掉这里相关的应该就不会再弹窗了。事实证明是正确的,在 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products][HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Features] 这两个注册表目录下找到 activex 相关的那个子项目录删掉就不会再出现弹窗了。只是这两个注册表项目的子项数量多的有点吓人,比较难找,可以导出这两个子项,然后到 reg 文件里先去搜索一下(我不是很习惯用注册表直接搜索)。

注意:先去Products 子项找,才能找到对应的子项名称,比如我这里是 71C4321BCC6D93E4A9B3EA8CF32C12AE ,然后再去 Features 下面删除同名的子项

TotalCommander 修改配置文件位置

  • 查看注册表下的用户的SID
whoami /user
  • 修改注册表相对位置
Windows Registry Editor Version 5.00

[HKEY_USERS\SID\Software\Ghisler\Total Commander]
"IniFileName"=".\\wincmd.ini"
"FtpIniName"=".\\wcx_ftp.ini"
"InstallDir"="D:\\Program Files\\totalcmd"

chm文件打开为空白

  • 问题描述

网上邻居或映射的网络驱动器上直接打开chm文件显示空白。而把文件拷贝到本地又是正常的。其原因是Microsoft 公司发布的HTML帮助的安全补丁,将HTML的安全设置提高,默认将禁止非本机HTML帮助文件中控件的访问,以保护计算机安全。

  • 解决方法
    • 将文件拷贝到本地:D
    • 直接运行下面的命令
      • reg add HKLM\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions /v MaxAllowedZone /t REG_DWORD /d 3 /f
      • 撤销修改:reg delete HKLM\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions /f

卸载网络小助手

恶心的小助手卸载的时候竟然需要验证码,可以参照这里直接卸载https://blog.csdn.net/moringacui/article/details/126919870

开机启动并隐藏窗口

有一些我们需要自己添加开机启动的程序,如果带很多参数往往很难启动成功,我尝试过不断的调参数、写bat批处理、做成服务效果都不太理想,如下提供一种最理想的方式(通过golang编程实现):

  1. 启动syncthing示例代码(run_syncthing.go)
func run_syncthing() {
	base_dir := "D:/Green/syncthing"
	syncthing := filepath.Join(base_dir, "syncthing.exe")
    // exec.Command()的参数即命令行运行的时候将参数都加入进去
	cmd := exec.Command(syncthing, "serve", "--no-console", "--no-browser")
    // 如下会保证golang启动子进程的时候隐藏窗口
	cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
    // 启动子进程
	cmd.Start()
}

func main() {
    run_syncthing()
}
  1. 编译子程序
# 编译后要保证我们的主程序也不显示窗口
go build -ldflags="-H windowsgui -w -s" run_syncthing.go
  1. 添加开机启动项
# 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
# 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
# 在上述两个注册表的位置(任意一个)添加字符串项,内容如下:
D:\Green\syncthing\run_syncthing.exe

网络

windows共享网络重启失效问题

  • 问题描述

我在使用hyper-V的时候使用了共享网络来固定虚拟机的IP并保证虚拟机能够正常的上外网,但是每次开机后发现虚拟机还是会出现上不去外网的情况。必须把共享去掉一下,再勾选一下才行。这就弄得操作很麻烦了。

  • 问题解决
    • 添加windows开机启动脚本

    • 通过添加如下脚本可以开机自动重启共享网络(此脚本本人没测试过):

      $NetShare = New-Object -ComObject HNetCfg.HNetShare
      $wlan = $null
      $ethernet = $null
      
      foreach ($int in $NetShare.EnumEveryConnection) {
        $props = $NetShare.NetConnectionProps.Invoke($int)
        if ($props.Name -eq "WLAN") {
          $wlan = $int;
        }
        if ($props.Name -eq "网桥") {
          $ethernet = $int;
        }
      }
      
      $wlanConfig = $NetShare.INetSharingConfigurationForINetConnection.Invoke($wlan);
      $ethernetConfig = $NetShare.INetSharingConfigurationForINetConnection.Invoke($ethernet);
      
      $wlanConfig.DisableSharing();
      $ethernetConfig.DisableSharing();
      
      $wlanConfig.EnableSharing(0);
      $ethernetConfig.EnableSharing(1);
      
    • 修改注册表(推荐)

      打开注册表,然后在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess 中在空白处右击鼠标,新建“DWORD(32位)值(D)”,名称叫做“ EnableRebootPersistConnection ”,将数值数据改为1。
      

win10连接wifi后显示无Internet连接

  • 问题描述

正常的WiFi连接后本来应当是一个天线的符号,但是我的连接以后还是一个地球的形状,显示已经连接上了WiFi,但又显示没有连接上Internet,实际上是能够上网的。试了很多的方法,比如说重置网络、socks、关闭Hyper-V等方式,但是统统都没有用。

之所以会来解决这个问题是因为虽然基本能够正常的上网,但是有的需要识别网络成功的软件就没办法上网。

  • 问题解决

最终是在这里找到了问题的原因和解决的有效方式,原来是因为windows版本更新导致的网络反馈问题,解决方式如下:

将注册表\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet目录下的如下几项:

"ActiveWebProbeContent"="Microsoft Connect Test"
"ActiveWebProbeContentV6"="Microsoft Connect Test"
"ActiveWebProbeHost"="www.msftconnecttest.com"
"ActiveWebProbeHostV6"="ipv6.msftconnecttest.com"
"ActiveWebProbePath"="connecttest.txt"
"ActiveWebProbePathV6"="connecttest.txt"

修改为如下:

"ActiveWebProbeContent"="Microsoft NCSI"
"ActiveWebProbeContentV6"="Microsoft NCSI"
"ActiveWebProbeHost"="www.msftncsi.com"
"ActiveWebProbeHostV6"="ipv6.msftncsi.com"
"ActiveWebProbePath"="ncsi.txt"
"ActiveWebProbePathV6"="ncsi.txt"

设置系统代理后无法访问WindowsStore

# 解除全部uwp应用的网络隔离
FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p