存档

使用 Windows API 设置 IE 代理

2019/05/06 49

设置 IE 代理有多种方法。常用的是修改注册表和调用 InternetSetOption API 。

1. 注册表

IE 设置在注册表中所在的位置是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
其中:

  • ProxyServer
    Value Type: REG_SZ
    Value Data: “ProxyServerName:Port”
  • ProxyEnable
    Value Type: REG_DWORD
    Value Data: 0 = Disable 1 = Enable
  • ProxyOverride 不使用代理的地址的列表
    Value Type: REG_SZ
    Value Data: “list_of_exclusion” 。可以使用通配符 * . 使用分号 ; 分隔, 如 192.168.1.*;*.domain.com;<local>

2. 使用 Windows API

示例代码如下 :

关于更多的信息请 参考这里 docs.microsoft.com

3.Others

a. 注意事项

在 IE9 之前, 以上步骤之后可能需要重启 IE 才能使设置生效。或者在打开 “Internet 属性” 面板时设置不生效。此时需要:

来通知其它应用IE属性被修改。

b. 打开 “Internet 属性” 设置面板

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,4
Rundll32 可以做很多事情。具体可以看这里 List of Rundll32 Commands in Windows 10

MacOS mojave 接外设时无法连接 wifi 的问题

2019/01/06 463

昨天为我的rmbp配了一个外接显示器,今天突然发现mac无法连接wifi了,整个下午尝试了包括重启路由器、重置路由器、更换各种wifi参数、重启电脑等等一系列操作,均无法解决。

偶然在网上发现有人说拔掉 U 盘/ type-c 设备 / 移动硬盘等外设可以解决这个问题,我尝试断开外接显示器,果然一下子连上了wifi。如果wifi和显示器只能二选一,那我的显示器岂不是白买了,在 google 上查找度尝试,最终找到几种对我有效的方法:

一 删除设置缓存

1. 关闭wifi

2. 重启电脑  以确保所有用到网络的应用程序都关闭了

3. 删除相关文件  需要先备份  /Library/Preferences/SystemConfiguration 下所有的文件,再将该文件夹删除

4. 重启电脑

5. 打开wifi

这种方法不是对每个人都有效。另外操作前最好先备份一下重要资料。

二、改变外设位置

第一种方法并不是每次都管用。偶尔还得重新弄一回。后来发现:

当外设处于 Mac 的正左侧或正右侧是,断网现在最为明显。当外设位于 Mac 的前侧或后侧时,网速最好。

三、Mac 外壳接地

无意中发现手触到 Mac 某些地方时,连网突然恢复,可能是人体接地使 Mac 天线发生了变化。多次实验当手接触到这两个位置时,信号最好:

想办法让这两个地方接地就可

 

Windows 如何修改系统盘符

2018/11/13 471

在使用 Win10 开发近 5 年的时间里,我填了各种各样的坑。最近终于受不了,将办公室里的开发机器的操作系统换回 Win7 。但是在重装 Win7 系统后,发现了一个问题:Win7 系统盘符并不是 C:/ 而是 F:/ 。这导致有些软件不能使用了。在网上找了一通后,找到如下办法可以将系统盘符换回 C:/ :
修改 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevice\DosDevices\F: 的键名为 \DosDevices\C:
重启以后,发现系统盘符果然改成了 C:/ 。然而,系统无法正常使用:无法加载用户配置文件、无法打开系统应用,甚至连资源管理器都无法打开!
这个时候如果想将注册表改回去,发现
无法打开 C:/windows/regedit.exe, 找不到指定文件
经过一通谷狗之后,有如下解决办法:

1. 恢复到之前的盘符

使用 PE 引导盘,进行系统后打开 regedit.exe ,但是这个时候修改HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 是无效的,因为此时的注册表是 PE 系统的注册表,而不是 Win7 的注册表。应该想办法加载 Win7 的注册表,方法如下:
将鼠标定位在 HKEY_LOCAL_MACHINE\ 上,选择菜单 文件 -> 加载配置单元 , 在对话框中选择 F:\Windows\System32\config\SYSTEM ,在新加载的注册表项里找到 MountedDevices, 将 \DosDevices\C: 改加 \DosDevices\F: ,并重启。
因为 regedit.exe 只是注册表编辑器,真正的注册表文件存储在 F:\Windows\System32\config\SYSTEM 里。

2. 解决盘符的问题

在注册表里搜一下 F:/ ,发现实在太多了。这决定里通过修改盘符不能解决问题而只会引发更多的问题。冷静下来思考了一下,想到如果使用磁盘映射可能可以解决问题:
首先,查看是否有磁盘占用了 盘符 C,如果有,则改之。
然后,cmd 下使用 subst 命令:

此时发现 “我的电脑” 中果然出现了 C 盘且和 F 盘一毛一样。至此问题得到解决。

3. 改进

这种方法的缺点就是,该命令在重启后会失效。所以需要在启动时自动运行。我选择将其加入到 Windows 计划任务库里

附:subst 命令

  • 命令基本格式 > subst [盘符] [路径]
  • 查看所有映射 > subst
  • 解除某个映射 > subst [盘符] /D

Mathematica 的几个技巧

2018/09/14 638

绘图

画曲线的交点

有多种方法。
一是利用 MeshMeshFunction, 二是求出点,并使用 Graphics
eg.1:

eg.2:

文本偏移与旋转

文本绘制使用 Text[expr,coords,offset,dir] ,其中 offset 为偏移量,单位为一个 point(一般是 1/72 inc) 。 dir 为文本的方向

eg.1  偏移

eg.2 旋转


计算

求模等方程

 

 

如何在 Intellij IDEA 中使用 less

2018/06/27 906

1. 安装 node.js  参见这里

2. 安装 less for node.js

3. 安装 file watchers 插件:

File->Settings->Plugins->

4. 配置 File Wathcers:

File->Settings->Tools->

插件会自动寻找配置 lessc 。

至此,改动 less 并保存时会自动生成对应的 css文件

如何用一条 SQL 语句计算多个 COUNT 值?

2018/05/30 770

场景:在某个 SQL 中,得到一个中间表 m ,需要对 m 表 进行分条件的计数运算。为提高效率,不对 m 表做持久化处理。该如何做?
简单地说,即在一条语句中查询多个 COUNT 值。
一个解决方案是求助于 CASE 表达式SUM 表达式

CASE 表达式

在 SQL 语句中, CASE 表达式 具有编程语言中的 if -- else 的功能。

关键字 CASEWHEN 之间的可选表达式称为 base expressionWHENTHEN组成WHEN 表达式THEN 关键词后跟的是 WHEN 表达式的 。还可以包括 ELSE 表达式,它是可选的

  1. 在不使用 base 表达式的情况下,每个 WHEN 表达式从左到右依次计算布尔值, CASE 表达式的值为第一个为 真值 的 WHEN 表达式的值。如果没有值为真的 WHEN 表达式,CASE 表达式的值为 ELSE 表达式值。如果即没有值为真的 WHEN 表达式,也没有 ELSE 表达式,即么 CASE 表达式的结果为 NULL
  2. 在有 base 表达式的情况下,base 表达式会且仅会计算一次,然后从左到右依次与 WHEN 表达式做逻辑运算,第一个运算结果为真的WHEN 表达式的值即为 CASE 表达式的值。如果没有匹配的WHEN表达式,那么 ELSE 表达式的值即为CASE语句的值。若连 ELSE 表达式也没有,即么 CASE 表达式的值即为 NULL

SUM 表达式

啥?

实践

注:本实践使用 sqlite。

现在要计算出 tb 表中 1. 有多少男性,2. 有多少儿童 3. 共多少人。SQL 如下: