my blog my blog

Category: Windows
Windows 10触屏手势软件推荐GestureSign

 对于一个触屏系统,我个人感觉手势太关键了,毕竟还是能脱离鼠标是最好的,但是单靠屏幕的触摸却没法做那么好,所以呢,必须得有手势系统的支持,然而windows10竟然默认都没有手势系统自定义的支持,只有几个简单的手势支持,没有自定义,简直是太不够了。所以推荐软件GestureSign,比那个Touchme的手势好用(其实全英文也可以接受,关键是貌似没有效果,根本用不了)。

软件使用也很简单,就是简单的手势加功能就可以了。不过说明一点叫sendkeys,这个可能当你需要send回车键什么的时候就不知道该怎么办了。其实sendkeys功能还是很强大的,下面找到一个写这些键的说明

按键
代码
BACKSPACE
{BACKSPACE}, {BS}或{BKSP}
BREAK
{BREAK}
CAPS LOCK
{CAPSLOCK}
DEL or DELETE
{DELETE} 或 {DEL}
ENTER
{ENTER}或 ~
ESC
{ESC}
NUM LOCK
{NUMLOCK}
SCROLL LOCK
{SCROLLLOCK}
UP ARROW
{UP}
DOWN ARROW
{DOWN}
LEFT ARROW
{LEFT}
RIGHT ARROW
{RIGHT}
END
{END}
HOME
{HOME}
INS or INSERT
{INSERT} 或 {INS}
PAGE DOWN
{PGDN}
PAGE UP
{PGUP}
PRINT SCREEN
{PRTSC}
WIN
^{ESC}
TAB
{TAB}
HELP
{HELP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
注意:如果要输出空格可以这样编写程序:“sendkeys(" ")"
为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。

 

已安装的附加组件因未经验证而被 Firefox 禁用的解决方法

 

每每firefox就自动升级,升级之后还把很多附加组件给禁用了,真的让奶牛比较头疼,直接把它这个功能禁用了吧。

1.在地址栏输入about:config

2.搜索xpinstall.signatures.required

3.点击下使布尔值true变为false

4.重启浏览器,看看咱的附加组件是不是又回来了

Nginx服务器配置多域名指向同服务器

 

当我们用Nginx服务器添加新的虚拟主机的时候,都会生成一个vhost的conf文件,当我们把同一个域名的@和www两个地址都直接A解析到Nginx服务器的时候,会发现只有我们添加的vhost里面的那个域名会被正常解析,如果我们想把@和www两个地址都直接解析到这个vhost上,我们可以这样做。

  1. vim /usr/local/nginx/conf/vhost/www.nenew.net.conf 
  2. 修改字段server_name,比如如下方式 
  3. server_name nenew.net www.nenew.net; 

这样子可以直接将nenew.net和www.nenew.net都指向到这个vhost而不用什么301 302那种跳转,好久不搞linux了,奶牛打算弄个新站,重新拾起web。

设置完成后重启Nginx就搞定了。

奶牛也装了个Windows10

 

不得不说,这个windows10装的机器不情愿,当时windows8.1的时候,自动就给下载完成了,奶牛也没装,毕竟升级感觉会问题比较多。以前的windows8.1也做了ssd的整块硬盘ghost镜像,本以为万无一失了,可是意外还是发生了。

1.本地连接的共享功能不知道咋的让杀毒软件给关了,咋也弄不开了,vpn也用不了了,比较纠结,准备重装。

2.重装时候因为UEFI,导致全盘镜像还原之后无法启动。

3.SSD固态硬盘貌似当时也出现了问题,坏道还是啥的,然后低格了。

4.用系统盘也无法恢复备份的引导,记得当时安装windows8的时候不允许多块硬盘,否则会出现驱动器锁定,然后把硬盘拔掉之后依旧无法恢复。

5.蛋疼的装了win10,幸好当时8.1的时候做了个激活的备份,直接导入到win10里面用,非常棒。使用起来也就那么回事儿吧。

autoproxy改版for firefox下载

 

autoproxy在firefox新版本中很多无法使用订阅功能,用这个改版还是比较好的选择。

下载地址:http://www.400gb.com/file/114503453

使用方法:下载后直接拖动文件到firefox的地址栏即可安装。

Nginx为网站目录设置密码保护

 

在Nginx的nginx.conf里面有如下的字段

  1. server
  2.     {
  3.         listen 80 default_server;
  4.         #listen [::]:80 default_server ipv6only=on;
  5.         server_name www.nenew.net;
  6.         index index.html index.htm index.php;
  7.         root  /home/wwwroot/default;
  8.         #error_page   404   /404.html;
  9.         include enable-php.conf;
  10.         location /nginx_status
  11.         {
  12.             stub_status on;
  13.             access_log   off;
  14.         }
  15.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  16.         {
  17.             expires      30d;
  18.         }
  19.         location ~ .*\.(js|css)?$
  20.         {
  21.             expires      12h;
  22.         }
  23.         location ~ /\.
  24.         {
  25.             deny all;
  26.         }
  27.         access_log  /home/wwwlogs/access.log  access;
  28.     }
  29. include vhost/*.conf;
  30. }

如果我们想在默认的目录添加密码保护,只保护对目录的访问,也就是登陆这个目录就会输入密码,则我们这样设置

  1. server
  2.     {
  3.         listen 80 default_server;
  4.         #listen [::]:80 default_server ipv6only=on;
  5.         server_name www.nenew.net;
  6.         index index.html index.htm index.php;
  7.         root  /home/wwwroot/default;
  8.         #error_page   404   /404.html;
  9.         include enable-php.conf;
  10.         location /nginx_status
  11.         {
  12.             stub_status on;
  13.             access_log   off;
  14.         }
  15.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  16.         {
  17.             expires      30d;
  18.         }
  19.         location ~ .*\.(js|css)?$
  20.         {
  21.             expires      12h;
  22.         }
  23.         location ~ /\.
  24.         {
  25.             deny all;
  26.         }
  27.         location / 
  28.         {        
  29.   auth_basic “Restricted”;
  30. auth_basic_user_file pass_file;
  31. }
  32.         access_log  /home/wwwlogs/access.log  access;
  33.     }
  34. include vhost/*.conf;
  35. }

其中pass_file是密码文件的绝对路径,密码文件是由用户名和函数 crypt加密的密码组成,可以使htpasswd -c -d pass_file username 来生成。

64位版本的SocksCap64代理程序介绍与推荐

 

奶牛最近在找一个好用的代理程序,支持socks5的tcp和udp两种协议,并且支持64位win8系统,终于最后找到了这个sockscap64.

首先很难的,作者是国人,并且提倡软件免费,并打算一直免费提供sockscap64这软件。sockscap64目前支持socks代理和http代理,并且支持tcp和udp,Sockscap64是基于远程DLL注入技术, 通过修改系统Winsock的API后从而使运行于Sockscap64的网络软件通过SOCKS代理访问网络; 从而实现网络加速或突破局域网限制的功能。经过测试udp功能也比较稳定。

特此推荐,下载http://www.sockscap64.com/software/SocksCap64-setup-2.6.exe

Ubuntu下socks5代理服务器dante-server的安装与配置

 

安装

  1. apt-get install dante-server 

配置文件在/etc/danted.conf

  1. vim /etc/danted.conf 
  2. # $Id: sockd.conf,v 1.43 2005/12/26 16:35:26 michaels Exp $ 
  3. # A sample danted.conf 
  4. # The configfile is divided into three parts; 
  5. #    1) serversettings 
  6. #    2) rules 
  7. #    3) routes 
  8. # The recommended order is: 
  9. #   Serversettings: 
  10. #               logoutput 
  11. #               internal 
  12. #               external 
  13. #               method 
  14. #               clientmethod 
  15. #               users 
  16. #               compatibility 
  17. #               extension 
  18. #               connecttimeout 
  19. #               iotimeout 
  20. #               srchost 
  21. #  Rules: 
  22. #       client block/pass 
  23. #               from to 
  24. #               libwrap 
  25. #               log 
  26. #     block/pass 
  27. #               from to 
  28. #               method 
  29. #               command 
  30. #               libwrap 
  31. #               log 
  32. #               protocol 
  33. #               proxyprotocol 
  34. #  Routes: 
  35.  
  36. # the server will log both via syslog, to stdout and to /var/log/lotsoflogs 这行是日志输出,输出到syslog stdout和lotsoflogs里面
  37. logoutput: syslog stdout /var/log/lotsoflogs 
  38.  
  39. # The server will bind to the address 10.1.1.1, port 1080 and will only 
  40. # accept connections going to that address. 
  41. #internal: 10.1.1.1 port = 1080 
  42. # Alternatively, the interface name can be used instead of the address. 这里设置eth0为网卡,端口1080
  43. internal: eth0 port = 1080 
  44.  
  45. # all outgoing connections from the server will use the IP address 
  46. # 195.168.1.1 
  47. #external: 192.168.1.1,这里是设置流量出口使用的ip,也是用eth0网卡的
  48. external:eth0
  49. # list over acceptable methods, order of preference. 
  50. # A method not set here will never be selected. 
  51. # If the method field is not set in a rule, the global 
  52. # method is filled in for that rule. 
  53.  
  54. # methods for socks-rules. 设置方式为用户名模式
  55. method: username 
  56. #methods for client-rules. 
  57. clientmethod: none 
  58.  
  59. #or for PAM authentification 
  60. #method: pam 
  61.  
  62. # An important section, pay attention. 
  63.  
  64. # when doing something that can require privilege, it will use the 
  65. # userid: 
  66. user.privileged: root 
  67.  
  68. # when running as usual, it will use the unprivileged userid of: 
  69. user.notprivileged: nobody 
  70.  
  71. # If you compiled with libwrap support, what userid should it use 
  72. # when executing your libwrap commands?  "libwrap". 
  73. user.libwrap: nobody 
  74.  
  75.  
  76. # some options to help clients with compatibility: 
  77.  
  78. # when a client connection comes in the socksserver will try to use 
  79. # the same port as the client is using, when the socksserver 
  80. # goes out on the clients behalf (external: IP address). 
  81. # If this option is set, Dante will try to do it for reserved ports aswell. 
  82. # This will usually require user.privileged to be set to "root". 
  83. compatibility: sameport 
  84.  
  85. # If you are using the bind extension and have trouble running servers 
  86. # via the server, you might try setting this.  The consequences of it 
  87. # are unknown. 
  88. compatibility: reuseaddr 
  89.  
  90. # The Dante server supports some extensions to the socks protocol. 
  91. # These require that the socks client implements the same extension and 
  92. # can be enabled using the "extension" keyword. 
  93. # enable the bind extension. 
  94. extension: bind 
  95.  
  96.  
  97. # misc options. 
  98.  
  99. # how many seconds can pass from when a client connects til it has 
  100. # sent us it's request?  Adjust according to your network performance 
  101. # and methods supported. 
  102. #connecttimeout: 30   # on a lan, this should be enough if method is "none". 
  103.  
  104. # how many seconds can the client and it's peer idle without sending 
  105. # any data before we dump it?  Unless you disable tcp keep-alive for 
  106. # some reason, it's probably best to set this to 0, which is 
  107. # "forever". 
  108. #iotimeout: 0 # or perhaps 86400, for a day. 
  109.  
  110. # do you want to accept connections from addresses without 
  111. # dns info?  what about addresses having a mismatch in dnsinfo? 
  112. #srchost: nounknown nomismatch 
  113.  
  114. # The actual rules.  There are two kinds and they work at different levels. 
  115. # The rules prefixed with "client" are checked first and say who is allowed 
  116. # and who is not allowed to speak/connect to the server.  I.e the 
  117. # ip range containing possibly valid clients. 
  118. # It is especially important that these only use IP addresses, not hostnames, 
  119. # for security reasons. 
  120. # The rules that do not have a "client" prefix are checked later, when the 
  121. # client has sent its request and are used to evaluate the actual 
  122. # request. 
  123. # The "to:" in the "client" context gives the address the connection 
  124. # is accepted on, i.e the address the socksserver is listening on, or 
  125. # just "0.0.0.0/0" for any address the server is listening on. 
  126. # The "to:" in the non-"client" context gives the destination of the clients 
  127. # socksrequest. 
  128. # "from:" is the source address in both contexts. 
  129.  
  130.  
  131. # the "client" rules.  All our clients come from the net 10.0.0.0/8. 
  132.  
  133. # Allow our clients, also provides an example of the port range command. 设置客户可以通过任何ip登陆,访问任何ip
  134. client pass { 
  135.         from: 0.0.0.0/0 to: 0.0.0.0/0 
  136. #       method: rfc931 # match all idented users that also are in passwordfile 
  137.  
  138. # This is identical to above, but allows clients without a rfc931 (ident) 
  139. # too.  In practise this means the socksserver will try to get a rfc931 
  140. # reply first (the above rule), if that fails, it tries this rule. 
  141. #client pass { 
  142. #       from: 10.0.0.0/8 port 1-65535 to: 0.0.0.0/0 
  143. #} 
  144.  
  145.  
  146. # drop everyone else as soon as we can and log the connect, they are not 
  147. # on our net and have no business connecting to us.  This is the default 
  148. # but if you give the rule yourself, you can specify details. 
  149. #client block { 
  150. #       from: 0.0.0.0/0 to: 0.0.0.0/0 
  151. #       log: connect error 
  152. #} 
  153.  
  154.  
  155. # the rules controlling what clients are allowed what requests 
  156.  
  157. # you probably don't want people connecting to loopback addresses, 
  158. # who knows what could happen then. 
  159. #block { 
  160. #       from: 0.0.0.0/0 to: 127.0.0.0/8 
  161. #       log: connect error 
  162. #} 
  163.  
  164. # the people at the 172.16.0.0/12 are bad, no one should talk to them. 
  165. # log the connect request and also provide an example on how to 
  166. # interact with libwrap. 
  167. #block { 
  168. #       from: 0.0.0.0/0 to: 172.16.0.0/12 
  169. #       libwrap: spawn finger @%a 
  170. #       log: connect error 
  171. #} 
  172.  
  173. # unless you need it, you could block any bind requests. 
  174. #block { 
  175. #       from: 0.0.0.0/0 to: 0.0.0.0/0 
  176. #       command: bind 
  177. #       log: connect error 
  178. #} 
  179.  
  180. # or you might want to allow it, for instance "active" ftp uses it. 
  181. # Note that a "bindreply" command must also be allowed, it 
  182. # should usually by from "0.0.0.0/0", i.e if a client of yours 
  183. # has permission to bind, it will also have permission to accept 
  184. # the reply from anywhere. 
  185. #pass { 
  186. #       from: 10.0.0.0/8 to: 0.0.0.0/0 
  187. #       command: bind 
  188. #       log: connect error 
  189. #} 
  190.  
  191. # some connections expect some sort of "reply", this might be 
  192. # the reply to a bind request or it may be the reply to a 
  193. # udppacket, since udp is packetbased. 
  194. # Note that nothing is done to verify that it's a "genuine" reply, 
  195. # that is in general not possible anyway.  The below will allow 
  196. # all "replies" in to your clients at the 10.0.0.0/8 net. 
  197. #pass { 
  198. #       from: 0.0.0.0/0 to: 10.0.0.0/8 
  199. #       command: bindreply udpreply 
  200. #       log: connect error 
  201. #} 
  202.  
  203.  
  204. # pass any http connects to the example.com domain if they 
  205. # authenticate with username. 
  206. # This matches "example.com" itself and everything ending in ".example.com". 
  207. #pass { 
  208. #       from: 10.0.0.0/8 to: .example.com port = http 
  209. #       log: connect error 
  210. #       method: username 
  211. #} 
  212.  
  213.  
  214.  
  215.  
  216. # block any other http connects to the example.com domain. 
  217. #block { 
  218. #       from: 0.0.0.0/0 to: .example.com port = http 
  219. #       log: connect error 
  220. #} 
  221.  
  222. # everyone from our internal network, 10.0.0.0/8 is allowed to use 
  223. # tcp and udp for everything else. 设置协议支持tcp和udp
  224. pass { 
  225.         from: 0.0.0.0/0 to: 0.0.0.0/0 
  226.         protocol: tcp udp 
  227.  
  228. # last line, block everyone else.  This is the default but if you provide 
  229. # one  yourself you can specify your own logging/actions 
  230. #block { 
  231. #       from: 0.0.0.0/0 to: 0.0.0.0/0 
  232. #       log: connect error 
  233. #} 
  234.  
  235. # route all http connects via an upstream socks server, aka "server-chaining". 
  236. #route { 
  237. # from: 10.0.0.0/8 to: 0.0.0.0/0 port = http via: socks.example.net port = socks 
  238. #} 

配置完成,

  1. /etc/init.d/danted start 

进行启动。登陆是用本机用户名和密码即可。建议将用户的shell设置为nologin

Emmet For Notepad++的安装方法教程

按照官方的方法教程,安装方法有两种。

第一种:用插件管理器安装,打开插件—插件管理器—显示插件下找到emmet插件安装

第二种:手动方法。

先安装Python Script插件,官方教程上说可以在插件管理器里面安装。下载EmmetNPP 插件,解压缩到 C:\Program Files\Notepad++\plugins 安装目录,启动notepad++就可以看到Emmet插件了。

官方建议是将快捷键Abbreviation设置为tab

但是,奶牛在安装的过程中发现上面的方法不可行,因为插件根本不工作。有Unknown exception和python script plugin did not accept the script错误提示,环境是win8.1 x64位系统,找到解决方法是Python Script插件问题,下载Python Script插件重新安装解决了此问题。

也用Nero刻张音乐CD吧

 

记得自己是一直一直没有过cd机的人呢,唯一的一个cd光盘读取器(好吧,光驱)是在03年家里买的台式机上,那个光驱只能读cd,嗯,就这点儿功能,那时候觉得有个刻录机是很牛气的事儿呢,想刻个什么就刻录个什么。后来,到了大学,奶牛的第一个笔记本是个dvd rw,所以可以刻录了,刻了好多系统盘呢,windows的啊,linux的啊什么的都刻,后来,打算刻光盘卖系统盘呢,遂买了一个移动光驱,可是,没有实施,光驱一直放到现在也没动过,直到——同事想让我帮忙刻张车载音乐CD。

steps:

1.下载安装Nero

2.打开Nero Express,然后选择音乐光盘,然后选择标准音乐光盘。

3.添加音乐:这里说明下,标准音乐cd的话不看音乐源文件大小的,只看音乐的长度,所以建议下载无损音乐,然后转换成wav或者Nero支持的无损格式后添加。

4.放入一张空光盘,刻录就好了。

嗯,简单,就这么简单,奶牛好久都不碰点儿东西了,记录下吧。