上一页 1 ··· 8 9 10 11 12
摘要: 维基百科对字符串相似度(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 阅读全文
posted @ 2011-07-21 14:11 ET民工[源自火星] 阅读(1561) 评论(0) 推荐(0) 编辑
摘要: 之前想利用窗体的OnActivate和OnDeactive事件对窗体进行强行置顶并设置焦点,接着就发现窗体的 Form.Active 属性并不靠谱,无法准确的得到窗体是否得到焦点。 既然这样,索性利用Timer定时,每隔一段时间就对窗体去激活+置顶+激活+设置焦点,实践证明效果良好。 新建窗体,放置一个文本框 edt1,再放置一个Timer控件 tmr1,代码如下: unit frmTestTop... 阅读全文
posted @ 2011-07-20 15:34 ET民工[源自火星] 阅读(4454) 评论(1) 推荐(0) 编辑
摘要: 基本完全Copy李维大师的《Inside VCL》书中的代码(P18-P20),手敲调试绝对好过简单的下载复制。 只有出错才能提高,我相信。 没有使用VCL Framework,纯粹Win API调用,带来的是仅有44KB的文件大小。 其实Windows窗体程序的流程也很简单: 定义窗体类——窗体类名为 AppName = 'ET_PureObjectPascalWindow' 注册窗体类——fu... 阅读全文
posted @ 2011-07-18 00:08 ET民工[源自火星] 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2011-07-14 00:17 ET民工[源自火星] 阅读(4283) 评论(0) 推荐(1) 编辑
摘要: 核心函数是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 阅读全文
posted @ 2011-07-13 12:33 ET民工[源自火星] 阅读(1149) 评论(0) 推荐(0) 编辑
摘要: 在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 阅读全文
posted @ 2011-07-13 00:22 ET民工[源自火星] 阅读(4467) 评论(0) 推荐(1) 编辑
摘要: 代码转自“我在沉睡”的博客,经测试在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 阅读全文
posted @ 2011-07-12 17:55 ET民工[源自火星] 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 要实现对双击左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; 阅读全文
posted @ 2011-07-12 16:04 ET民工[源自火星] 阅读(945) 评论(4) 推荐(0) 编辑
摘要: 查看整个相册 function TLogger.GetLogFileName: string;begin // 如果在光盘运行,则选择临时目录存储,否则就存在 exe 目录下 // Log文件名含有当前用户名,如 ALTRun.Administrator.log if GetDriveType(PChar(ExtractFileDrive(ParamStr(0)))) = DRIVE_CDROM... 阅读全文
posted @ 2011-07-12 12:06 ET民工[源自火星] 阅读(219) 评论(2) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12