摘要:
维基百科对字符串相似度(Damerau–Levenshtein distance)的定义是:In information theory and computer science, the Damerau–Levenshtein distance (named after Frederick J. Damerau and Vladimir I. Levenshtein) is a "distance" (string metric) between two strings, i.e., finite sequence of symbols, given by counting 阅读全文
摘要:
之前想利用窗体的OnActivate和OnDeactive事件对窗体进行强行置顶并设置焦点,接着就发现窗体的 Form.Active 属性并不靠谱,无法准确的得到窗体是否得到焦点。 既然这样,索性利用Timer定时,每隔一段时间就对窗体去激活+置顶+激活+设置焦点,实践证明效果良好。 新建窗体,放置一个文本框 edt1,再放置一个Timer控件 tmr1,代码如下: unit frmTestTop... 阅读全文
摘要:
基本完全Copy李维大师的《Inside VCL》书中的代码(P18-P20),手敲调试绝对好过简单的下载复制。 只有出错才能提高,我相信。 没有使用VCL Framework,纯粹Win API调用,带来的是仅有44KB的文件大小。 其实Windows窗体程序的流程也很简单: 定义窗体类——窗体类名为 AppName = 'ET_PureObjectPascalWindow' 注册窗体类——fu... 阅读全文
摘要:
Windows API 函数 GetACP 可以获得当前系统的代码页编码,如简体中文是 936。如果要获得 Dos 下的代码页,则需要调用 GetOEMCP 函数。如果要判断代码页的有效性,调用 IsValidCodePage 函数。以上函数在 Delphi 中需要引用 Windows 单元。参考:How can I read the current code page of system? http://www.scalabium.com/faq/dct0082.htmTechnorati 标签: Delphi,GetACP,GetOEMCP,IsValidCodePage 阅读全文
摘要:
核心函数是API函数:GetSystemDefaultLangID 和 VerLanguageName。uses Windows;function GetSystemLanguageName: string;var ID: LangID; LanguageName: array[0..255] of Char;begin // 获取当前系统 Locale // 对于简体中文,ID = 2052 ID := GetSystemDefaultLangID; // 将 ID 转换为文字 // 对于简体中文,LanguageName =“中文(中国)” VerLanguageName(ID, Lang 阅读全文
摘要:
在Delphi下,AnsiString 和 WideString 的存储与管理各有不同,这里提供互相转换的函数一对。/// Wide String -> Ansi Stringfunction WideStringToAnsiString(const strWide: WideString; CodePage: Word): AnsiString;var Len: integer;begin Result := ''; if strWide = '' then Exit; Len := WideCharToMultiByte(CodePage, WC_CO 阅读全文
摘要:
代码转自“我在沉睡”的博客,经测试在VMWare7.0.0中能够正常检测。function IsInsideVMWare: Boolean;var rc: Boolean;begin rc := False; try asm push edx push ecx push ebx mov eax, 'VMXh' mov ebx, 0 // any value but not the MAGIC VALUE mov ecx, 10 // get VMWare version mov edx, 'VX' // port number in eax, dx // rea 阅读全文
摘要:
要实现对双击左CTRL键的监控,必须玩钩子了。代码很简单,新建VCL Form的工程,在窗体上放两个按钮,分别叫做 btnHook 和 btnUnHook。调用就是 BeginHook 和 EndHook 这两个函数,窗体代码如下:unit frmTestHookWinKey;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ShellAPI;type TForm1 = class(TForm) btnHook: TButton; 阅读全文
摘要:
查看整个相册 function TLogger.GetLogFileName: string;begin // 如果在光盘运行,则选择临时目录存储,否则就存在 exe 目录下 // Log文件名含有当前用户名,如 ALTRun.Administrator.log if GetDriveType(PChar(ExtractFileDrive(ParamStr(0)))) = DRIVE_CDROM... 阅读全文