博文

获取程序本身的版本号

function GetVersion(): string; var d1, d2: DWord; VersionBuf: PChar; pc: PChar; InfoPath: string; FileName: string; begin FileName := ParamStr(0); D1 := 0; D2 := GetFileVersionInfoSize(PWideChar(FileName), D1); GetMem(VersionBuf, D2); if GetFileVersionInfo(PWideChar(FileName), D1, D2, VersionBuf) then begin infoPath := '\StringFileInfo\080403A8\FileVersion'; pc := nil; if VerQueryValue(versionbuf, PWideChar(InfoPath), Pointer(pc), d1) then result := string(PChar(pc)); end; FreeMem(VerSionBuf, D2); end;

WinXP自动登录设置

第一种是修改注册表 这种方法比较麻烦,而且要求对注册表有一定的了解。 第1步:运行注册表编辑器,依次展开 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] 分支,然后在右侧窗口双击 "DefaultUserName",接着输入你的登录用户名。如果没有 "DefaultUserName" 这一项,可以按鼠标右键选“编辑→新建→字符串值(s)→DefaultUserName”来添加这个项目,注意要区分大小写字母。 第2步:同样在该分支下,在右侧窗口中双击 "DefaultPassword",然后在空白栏内输入你的密码。假如未发现 "DefaultPassword" 这一项,可按上面的步骤来新建该字符串值。 第3步:接下来在右侧窗口中双击 "AutoAdminLogon",将数值设置为 "1"。假如未发现 "AutoAdminLogon" 这一项,可按上面的步骤来新建。 现在关闭注册表编辑器并重新启动电脑,就可以实现XP的自动登录了。 第二种方法比较简单 在 Windows XP 中单击“开始→运行”,输入 “rundll32 netplwiz.dll,UsersRunDll”(注意大小写及空格),按回车就会出现一个“用户账户”的操作窗口,如果你对 Windows 2000 比较熟悉的话,相信你应该知道怎么做了,取消对“要使用本机,用户必须输入用户名和密码”项的选择,点击“应用”。在接下来弹出的对话框中输入你想让电脑每次自动登录的用户名及其密码,下次启动时就可以实现XP的自动登录了。

在Servicemix中如何使用Quartz组件

大家都用过Quartz吧,作为任务定时调度程序被广泛使用。 设置好触发器的时间配置,再写一个继承自IJob接口的Job类,就可以使用了。 但是,在Servicemix中不是这样使用Quartz的,我们不需要自己写Job类,我在这个问题上曾经耗费了很多时间,寻找怎么继承IJob接口。 在Quartz的xbean配置文件中有一个参数targetService,设置目标服务,明白了吗? 它是定时调度另一个SU元件的。 好了,我们可以自己写一个Bean SU,然后配置到targetService参数下即可。

被弃用的MessageExchangeListener

当我们在使用Servicemix-Bean组件时,有时会发现MessageExchangeListener被deprecated(弃用)了。 其实,这并不是真正的被弃用了,只是在Servicemix环境中移动到了其它位置。 org.apache.servicemix.MessageExchangeListener 更改为: org.apache.servicemix.jbi.listener.MessageExchangeListener

Servicemix的Jar包加载路径

在使用Servicemix的过程中,我们经常需要引用其它的一些Jar包。通常情况下,我们将Jar包直接放在lib目录下就可以了。 随着jar数量的增加,我就想着将一些jar包放在别的什么地方。 通常情况下,都是通过修改可执行的bat文件来添加一些加载路径。但在Servicemix下是行不通的,因为在Servicemix中,jar包的加载路径是通过conf目录下的servicemix.conf来配置的。 load ${servicemix.home}/conf load ${servicemix.home}/lib/*.jar load ${servicemix.home}/lib/optional/*.jar load ${servicemix.home}/../lib/*.jar 最下面一行是我自己添加的路径。

Delphi2009中的Unicode

1. Delphi中所有的变量均可以混合使用各国文字来命名 存储文件的文件名 程序和函数名称 程序中使用的变量 2. Delphi中常用的Unicode编码 UTF-8 UTF-16 UTF-32 UCS-4 UCS-2 3. 旧的Delphi程序与Unicode系统的转换 AnsiString到UnicodeString:AnsiToUtf8 UnicodeString到AnsiString:Utf8ToAnsi 4. 新旧版本的String的区别 Delphi 2009 之前 Char = AnsiChar; PChar = PAnsiChar; String = AnsiString; Delphi 2009 Char = WideChar; PChar = PWideChar; String = UnicodeString; 5. 获取字符串的CodePage标记符 函数StringCodePage可以获得字符串的CodePage: BIG5: 950 GB2312: 936 UTF-16: 1200 UTF-8: 65001 CodePage列表:见 http://yeyanbo.blogspot.com/2009/04/codepage.html 6. Char与Byte SizeOf 获取字符串的Byte数 Length 获取字符串的Char数 所有使用到Byte或Char的函数均需要注意 Fillchar, strPCopy, Move, Copy ...

CodePage标志符

编码 .NET中编码名称 备注信息 037 IBM037 IBM EBCDIC US-Canada 437 IBM437 OEM United States 500 IBM500 IBM EBCDIC International 708 ASMO-708 Arabic (ASMO 708) 709 Arabic (ASMO-449+, BCON V4) 710 Arabic - Transparent Arabic 720 DOS-720 Arabic (Transparent ASMO); Arabic (DOS) 737 ibm737 OEM Greek (formerly 437G); Greek (DOS) 775 ibm775 OEM Baltic; Baltic (DOS) 850 ibm850 OEM Multilingual Latin 1; Western European (DOS) 852 ibm852 OEM Latin 2; Central European (DOS) 855 IBM855 OEM Cyrillic (primarily Russian) 857 ibm857 OEM Turkish; Turkish (DOS) 858 IBM00858 OEM Multilingual Latin 1 + Euro symbol 860 IBM860 OEM Portuguese; Portuguese (DOS) 861 ibm861 OEM Icelandic; Icelandic (DOS) 862 DOS-862 OEM Hebrew; Hebrew (DOS) 863 IBM863 OEM French Canadian; French Canadian (DOS) 864 IBM864 OEM Arabic; Arabic (864) 865 IBM865 OEM Nordic; Nordic (DOS) 866 cp866 OEM Russian; Cyrillic (DOS) 869 ibm869 OEM Modern Greek; Greek, Modern (DOS) 870 IBM870 IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual...