快捷键 HK4WIN 0.10 版本发布

2011年11月19日,距离上一版本的HK4WIN 0.9整整4个月了,这期间我经历了很多事情,心境也变了好多,没什么心思继续鼓捣快捷键了,也就是说不会尝试着加入GUI用户界面了,就在现在版本的基础上修复些bug,如果有人给我提一些简单且易于实现的快捷键建议,也会试着加进新版本。

一开始做这个东西,我就是想自己用用,没想着公开发行,毕竟不是干这个的,今后也不打算吃这碗饭,纯粹是爱好,但逐渐发现有很多志同道合的朋友跟我一样喜欢摆弄快捷键,甚至有朋友多次打电话询问,有更多的朋友给我发邮件指出一些bug,但是我犯懒,上一个0.9版本中的许多错误经大家多次指出都没修正,这次简单地修正一下,发个新版本算了,希望这个小程序能给大家带来些许方便。

0.10 Build 20111119

1.新增“窗口透明度”自动调整功能
按Ctrl+Alt+Shift+Z,在配置文件中,修改TransparentList的值,等号后填写需要自动调整透明度的窗口的“类”(按Ctrl+Alt+Shift+C获得),以逗号分隔多个类,TransparentValue等号后面填写整数数值,范围30~255,越小越透明。

2.修复bug:IE中,如果开启鼠标手势,滚轮失效。

3. 修复bug:某些情况下,自动关机失效,原因不明。0.10版本开始使用新的关机机制(vbs脚本),这样某些原因不明的关机失效bug可能解决,关机1分钟倒计时开始后,按Ctrl+Alt+Shift+D可取消自动关机,如果倒计时尚未开始时需要取消自动关机,则再次按下左右Ctrl键。

4.修复bug:Win+Shift+A/U/P打开控制面板相应功能失效。

5.连续按两下CapsLock返回桌面的快捷键默认关闭,如果需要请自行打开Fn0102=1。

6.][输入当前日期和时间的快捷键从热词速写功能中独立出来,使用Fn0502控制是否开启,其他热词速写快捷键统一使用Fn0501进行控制。

已经在使用0.9版本的朋友,可以手动下载0.10新版本,替换掉原来的0.9版本中的HK4WIN.exe其他文件不用管,嫌麻烦的可以等待每逢周三周日的自动更新(前提是没有关闭自动更新)。

读书笔记:MATLAB(03)

2.4 函数编写与调试

2.4.1 基本结构

两种源程序文件格式:M-文件、M-函数。常用后者。
保留变量nargin和nargout用于确定函数的输入和输出变量的个数。
[输出变量列表]=函数名(输入变量列表),均用逗号分隔。
help 函数名:显示注释语句内容,但空格行下方的注释不被显示。
if abs(n-floor(n))>eps|n<0
error(‘n应该是非负整数’);
上面的代码涉及abs、floor、eps、error、|等符号,用于判定是否为非负整数。
函数可以递归调用:
function srhf_fact(n)
if n>1
k=n*srhf_fact(n-1);
elseif any[0,1]==n
k=1
end

2.4.2 可变输入输出个数
如何建立起无限个输入或输出变量的函数?这种方式被广泛采用。
conv(A,B)用于求多项式的乘积,多个多项式的乘积只能嵌套使用此函数,即conv(C, conv(A,B))。这样很不方便,可以考虑编写一个新的函数convs,其输入变量不限于2个,而是无限个,在MATLAB中“无限”并不是纯粹数学上的无限,而是指输入或输出变量的个数不再于函数编写时加以限制,所以在函数中需要知道用户在输入变量列表中给出了几个变量,这需要调用length函数。

函数输入变量列表可以是一个变量(实际上是一个向量) varargin,此变量是保留变量,它表示多个变量的集合,那么length(varargin)的输出变量是一个正整数,表示varargin中具体包含的变量数量。
function a=convs(varargin)
a=1;
varnum= length(varargin);
for i=1:varnum
a=conv(a,varargin{i});
end
end
继续阅读 »

读书笔记:MATLAB(02)

2.2 基本数学运算

2.2.1 矩阵的代数运算

矩阵转置:如果矩阵元素含有复数元素,则转置后取其共轭复数值,称为Hermit转置,记为B=A*,MATLAB中用A’表示。而矩阵的一般转置用A.’表示。

加减法运算:A和B的维数若相同,则相应元素相加减;若二者之一为标量,则遍加减于每个元素;否则报错。

矩阵乘法:C=A*B,并不需要指定二者的维数,若不相容则报错

矩阵的左除:A\B表示A-1B

矩阵的右除:B/A表示B A-1

矩阵翻转:fliplr(A)左右翻转,flipud(A)上下翻转,rot90(A)逆时针翻转90度

矩阵乘方运算:只有方阵可进行乘方运算,B=A^x

点运算:这是一种特殊且非常重要的运算,即对应元素的直接运算,这要求二者维数相同。A.*B、A.^x、A.^A

2.2.2 矩阵的逻辑运算

逻辑运算的结果是一个矩阵,矩阵的元素非0即1。
与运算:C=A&B,只有当AB所有元素非0,C才为1,否则C取0
或运算:C=A|B,只有当AB所有元素为0,C才为0,否则C取1
非运算:C=~A,只有当A元素为0,C为1,否则C取0
异或运算:C=xor(A,B),只有当AB元素一个非0,一个为0,C才为1,否则取0,即只有二者逻辑结果不同才可取1,若相同则取0
继续阅读 »

读书笔记:MATLAB(01)

今天开始写读书笔记,第一本书是《高等应用数学问题的MATLAB求解》。

MATLAB语言是科学研究者首选的计算机数学语言。大多数学生缺乏对应用数学问题的全面了解,不清楚什么问题能用数学描述,什么样的数学问题能求解,以至于走了很多弯路。通过学习MATLAB语言可以使数学问题求解能力显著提高,即使对某些数学公式理解不够深刻,只要学习了MATLAB语言也能容易地求解类似问题,毕竟科学研究者和工程技术人员通常不考虑为什么这样做,而只考虑结果是什么。借助MATLAB数学基础不深厚的人同样能轻易利用计算机解决高深的应用数学问题。

第1章 计算机数学语言概述


1.1为什么学习计算机数学语言

并不是所有数学问题都能手工推导的,手工推导有时是不易、不可靠、不精确甚至是不可能的,所以需要计算机的帮助。用计算机的方式有两种,其一是数值分析,其二是计算机语言,前者只能解数值计算问题,后者还可以解决像公式推导这样的问题。
许多专门的学科在介绍原理与方法时一般采用简单的例子,回避高阶和复杂的例子,这样得到的方法和结论只是理论上的,用于解决现实的实际问题往往是比较困难的,所以需要借助计算机数学语言。

1.2 数学问题的解析解与数值解
数学家往往关注解析解以及解的存在性的严格证明,而工程技术人员通常只关心最后的数值解。数学上,解析解不存在的情况很普遍,例如圆周率就没有解析解,工程技术人员也不关心圆周率是怎么求得的,只是想知道能满足精度要求的数值,一般的计算取3.1416即可,粗略的计算取3.14也未尝不可。 继续阅读 »

文件加密软件TrueCrypt简要教程

0.概述

  每个人的电脑上总有些不想让别人看到的文件,例如商业机密、犯罪证据、间谍情报、冠西摄影作品、日本小电影、个人日记等等,有很大一部分人用层层的文件夹加上隐藏文件的方法藏东西,并自以为别人不会找到,稍懂点电脑的人可能会更改扩展名,或者使用一些加密文件夹的软件,我也曾经这么做过,发现不少问题:

  1.这些加密方式多不是对文件本身进行数据加密处理,只是在操作系统层面进行隐藏,仅仅在电脑显示器上看不到这些文件,并非真正的加密;

  2.数据安全难以保障,有些软件加密文件后,如果卸载了这个软件重新安装,被加密文件就难以解密;

  3.依赖当前操作系统,也就是只能在本机上解密,转移到其他电脑就难以解密。

  这些缺陷导致被加密文件可能被非授权使用或对所有者不可用,造成损失。鉴于此,使用专业的加密软件进行文件加密是很有必要的,软件市场上有多家公司出售专业的加密软件,而且售价不菲,这对政府和商业机构来说或许物有所值,但对普通个人用户来说完全没有必要,免费的加密软件就足以保证个人数据安全。在此介绍一款知名的开源免费的文件加密软件——TrueCrypt。

  TrueCrypt的特点:
  1. 真正的加密,绝非仅仅“隐藏”。TrueCrypt提供三种加密算法:AES、Serpent、Twofish。可以单独使用其中的一种加密算法,也可以两种或三种加密算法叠加使用,越是复杂的算法越难以被破解(比如,单独使用一种算法,破解需要100万年,叠加使用多种算法,破解则需要150万年),但加密步骤越复杂,加密过程耗时越长,而破解难度的提高并没有什么实际意义。三种算法中默认使用的AES算法是美国联邦政府认证的加密算法,加密规则也是公开的,所有具备数学和密码学知识的人都可以尝试破解,但至今无人宣称已成功破解,但是AES算法掌握在美国联邦政府手中,到底有没有破解方法或许只有少数的几个美国要人知道。综上,除非涉及国家机密,单独使用AES算法加密是足够安全的。

  2. 由于TrueCrypt的加密原理是采用AES等加密算法进行加密,跟操作系统关系不大,所以被加密文件具有良好的可移植性,即使TrueCrypt被卸载后重新安装,或将被加密文件移植到其他电脑上,也可以保证密钥持有者能安全地解密文件。

  3. 针对高强度安全要求,TrueCrypt设计了“隐藏加密卷”的功能。就是说,如果密钥持有者人身安全受到威胁,不得不交出密钥,也可以选择交出一个假的密钥,使用假密钥对文件进行解密后看到的并不是真正的文件,而是事先放在那里的“貌似很机密”的文件。

  4. TrueCrypt的缺点主要是:只能保证被加密文件不被非法获取,不能保证不被恶意破坏。就是说别人虽然不可能看到这些文件,但却可以彻底删除它们,所以使用TrueCrypt需要做好备份工作。

  TrueCrypt支持对文件(夹)、分区、硬盘加密,但对分区和硬盘加密有较大风险,除非特别需要不推荐使用,一般我们需要的仅仅是加密文件(夹),下面用一句话介绍下TrueCrypt的工作原理:首先使用TrueCrypt创建一个加密卷,只有使用正确的密钥才能打开此加密卷,加密卷可用于储存文件。

  名词解释
  加密卷:在Windows系统的资源管理器中,加密卷就是一个普通的文件(可以像普通文件那样被复制、分发),并且其扩展名可以是任意的,甚至可以为空,例如01.jpg、02.avi、03.dat、04.doc、05等等,这会让人觉得加密卷是图片、视频、文档,能骗过不少人。使用TrueCrypt加载加密卷,就可以让加密卷在“我的电脑”或“计算机”中以一个分区的形式被“打开”,姑且称其为“虚拟盘”,我们平时常说的C盘、D盘、E盘都是真正在硬盘上被划分出来的分区,但这个“虚拟盘”并不是真正存在的,只是TrueCrypt虚拟出来的,但虚拟盘也会占用一个盘符(例如F盘)并可以向里面拷入文件。宋瑞华 www.songruihua.com

下载TrueCrypt:http://www.truecrypt.org/downloads
下载语言包(中文):http://www.truecrypt.org/localizations

首先安装TrueCrypt,然后将语言文件Language.zh-cn.xml解压缩到TrueCrypt的安装文件夹(默认C:\Program Files\TrueCrypt),然后在菜单栏中选择:Settings>Language>简体中文>OK

1.创建一个文件型加密卷宋瑞华 www.songruihua.com

  加密卷有两种类型,标准加密卷和隐藏加密卷。标准加密卷只有一个密钥,而隐藏加密卷有两个密钥,一个真密钥一个假密钥,密钥持有者使用真密钥加载加密卷可以看到真正被加密的文件,如果有人用暴力等手段威胁密钥持有者,密钥持有者可以说出假密钥,威胁者使用假密钥加载加密卷看到的是伪装的加密文件,而密钥持有者从技术角度完全可以否认真密码的存在。

1.1创建标准加密卷

点击“创建加密卷”按钮

继续阅读 »

Top