大悟还俗

邮箱 key_ok@qq.com 我的收集 http://pan.baidu.com/share/home?uk=1177427271
posts - 236, comments - 8, trackbacks - 0, articles - 0
  新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

共6页: 上一页 1 2 3 4 5 6 下一页 

2013年11月18日

摘要: 为了显示效果,在钩子的DLL中我们会获取挂钩函数的窗体句柄,这里的主程序窗体名为"TestMain",通过FindWindow查找。KeyBoardHook.dll代码library KeyBoardHook;{ Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your D阅读全文

posted @ 2013-11-18 17:24 大悟还俗 阅读(203) 评论(0) 编辑

摘要: 原理简单,在FTP上维护一个Update.ini文件,里面记录着要更新文件的版本号,本地也有一个Update.ini文件,每次启动更新程序时,先从FTP上下载Update.ini文件到本地名字为Update_new.ini,然后比较这两个文件,如果新的版本号大于旧的,或者新的文件在就ini中没有,这些就表示要更新的文件,然后逐一下载。 本程序名字为AutoUpdate,你生成这个exe,然后和主程序一起打包,创建桌面快捷方式时,指向AutoUpdate,而不是主程序。 在本地还有一个ini文件,比如叫ftp.ini吧,里面内容是[coninfo]main=Project1.exeparam=.阅读全文

posted @ 2013-11-18 17:23 大悟还俗 阅读(215) 评论(0) 编辑

摘要: 在很多程序中,都可以看到程序运行中,会有一个Dos窗口,实时显示一些运行信息,这里就告诉大家是如何实现的,我们做个简单的,其实对控制台的操作还有很多,有兴趣的可以去查资料。 用到的API函数如下: //创建控制台 AllocConsole; //获取控制台窗口 GetStdHandle; //向控制台输出信息 WriteConsole; //释放控制台 FreeConsole;unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,..阅读全文

posted @ 2013-11-18 17:21 大悟还俗 阅读(226) 评论(0) 编辑

摘要: 我们知道在文本框等可以接收输入的组件中,我们可以看到闪烁的光标,并可以输入文字,如果我们在,比如窗体上时,因为不支持输入,也无法显示闪烁的光标,那我们 有办法做自己的输入吗?当然可以,下面我们演示在Form上来输入文字。 用到的API函数如下GetTextMetrics:获取程序当前的字体信息,存放到TEXTMETRIC结构中CreateCaret:为系统插入标记创建一个新的形状,并且将插入标记的属主关系指定给特定的窗口。插入标记的形状。可以是线、块或位图ShowCaret:显示光标SetCaretPos:设置光标的位置unit Unit1;interfaceuses Windows, Me.阅读全文

posted @ 2013-11-18 17:20 大悟还俗 阅读(396) 评论(0) 编辑

摘要: RTTI需要引用单元TypeInfo至于RTTI的数据结构,大家可以参考TypeInfo单元的代码看例子,先为大家介绍一下根据字符串找到属性,并且对其修改的例子根据属性字符串找到属性,并修改属性GetPropInfo 函数用于获得属性的 RTTI 指针 PPropInfo。它有四种重载形式,后面三种重载的实现都是调用第一种形式。AKinds 参数用于限制属性的类型,如果得到的 PPropInfo 不属于指定的类型,则返回 nil。 function GetPropInfo(TypeInfo: PTypeInfo; const PropName: string): PPropInfo; func阅读全文

posted @ 2013-11-18 17:19 大悟还俗 阅读(78) 评论(0) 编辑

摘要: 功能: 根据省份更新地市信息-------------------------------------------------------------------------------}procedure TForm.GetCityInfo;var iXMLAreaFile : IXMLDocument; sFileName,aProvince,sProvince,sCity : string; nCol,nNum,nCityCount,nprovinceCount : Integer;begin iXMLAreaFile := TXMLDocument.create(nil)...阅读全文

posted @ 2013-11-18 17:15 大悟还俗 阅读(550) 评论(0) 编辑

摘要: procedure CreateParams(var Params: TCreateParams); override; procedure MainForm.Createparams(var Params: TCreateParams);begin inherited; With Params do begin WndParent := Application.MainForm.Handle; Params.ExStyle := WS_EX_TOPMOST; end;end;View Code阅读全文

posted @ 2013-11-18 17:12 大悟还俗 阅读(102) 评论(0) 编辑

摘要: 例如对windows发消息让文本选中。 SendMessage(Text1.hwnd,EM_GETSEL,0,-1); EC_LEFTMARGIN(&H1) EC_USEFONTINF //设置左边距时使用EC_RIGHTMARGIN EC_USEFONTINF //设置右边距时使用EC_USEFONTINF,O//边距 设置编辑控件的左、右边距,当wParam含EC_LEFTMARGIN时在lParam的低16位指定左边距点数,当wParam含EC_RIGHTMARGIN时在lParam的高16位指定右边距点数。当指定wParam为EC_USEFONTINFO时,则用当前字体的字符&阅读全文

posted @ 2013-11-18 15:02 大悟还俗 阅读(165) 评论(0) 编辑

摘要: library Hook;uses SysUtils, Windows, Classes, ApiDefine in 'ApiDefine.pas', APIHook in 'APIHook.pas';{$R *.res}var HookHandle: HHook;function HookProc(code:Integer;wparam:WPARAM;lparam:LPARAM):LRESULT;stdcall;begin Result := CallNextHookEx(HookHandle,code,wparam,lparam);end;procedure阅读全文

posted @ 2013-11-18 10:37 大悟还俗 阅读(103) 评论(0) 编辑

摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;type //导入表元素结构 TImageImportDiscriptor = packed record OriginalFirstThunk: DWORD; DataTimpStamp: DWORD; ForwardChain: DWORD; DLLName: DWORD; FirstThunk: D...阅读全文

posted @ 2013-11-18 10:36 大悟还俗 阅读(445) 评论(0) 编辑

摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } //模式数组 arrNext : array of Integer; //主串数组...阅读全文

posted @ 2013-11-18 10:35 大悟还俗 阅读(76) 评论(0) 编辑

摘要: uses mshtml, ActiveX;//初始加载网易主页procedure TForm1.FormCreate(Sender: TObject);begin Webbrowser1.Navigate('http://www.163.com/');end;procedure TForm1.Button1Click(Sender: TObject);varI: Integer;Document: IHTMLDocument2;Element: IHTMLElement;Anchors: IHTMLElementCollection;sLink: string;begin //阅读全文

posted @ 2013-11-18 10:32 大悟还俗 阅读(91) 评论(0) 编辑

摘要: DDE(Dynamic Data Exchange),称为动态数据交换。用于进程间的通讯,看看他如何来和Word交互。在System页签下有TDdeClientConv组件,拖一个放到界面上,然后我们写如下代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleServer, StdCtrls, DdeMan;type TForm1 = class(TForm) Button1: TButton; Dde...阅读全文

posted @ 2013-11-18 10:30 大悟还俗 阅读(106) 评论(0) 编辑

摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls;type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; procedure FormCreate(Sender: TObject); private { Private declara...阅读全文

posted @ 2013-11-18 10:29 大悟还俗 阅读(184) 评论(1) 编辑

摘要: PMouseHookStruct = ^TMouseHookStruct; {$EXTERNALSYM tagMOUSEHOOKSTRUCT} tagMOUSEHOOKSTRUCT = packed record pt: TPoint; hwnd: HWND; wHitTestCode: UINT; dwExtraInfo: DWORD; end; TMouseHookStruct = tagMOUSEHOOKSTRUCT;library Mouse_HookDLL;{ Important note about DLL memory management: S...阅读全文

posted @ 2013-11-18 10:27 大悟还俗 阅读(155) 评论(0) 编辑

摘要: 数据库结构:包括两张表BaseData和UserRightData,BaseData中是一张基本表,里面不区分用户,UserRightData是用户权限表,结构和BaseData一样,只是多了用户字段,增加用户时,就是从BaseData表中复制数据到UserRightData中,并标识用户ID。字段说明:FucCode:该字段与控件tag对应FucName:功能名称IsSel:是否有权限的标志IsFuc:标识该项是否是可以执行的功能FucPID:父节点ID,用来生成树形结构时用权限管理单元:UserRightCenterunit UserRightCenter;interfaceuses W.阅读全文

posted @ 2013-11-18 10:26 大悟还俗 阅读(187) 评论(0) 编辑

摘要: procedure TUIOperate.FillTree(treeview: TTreeView);var findq: TADOQuery; node: TTreeNode; //这个方法是根据记录的id字段值,查找TreeView上的父节点 function FindParentNode(id:Integer):TTreeNode; var i:Integer; begin Result := nil; for i := 0 to treeview.Items.Count - 1 do begin //比较Node的Data值和记录的id值 ...阅读全文

posted @ 2013-11-18 10:23 大悟还俗 阅读(135) 评论(0) 编辑

摘要: 关键字:MethodAddress:取得方法的地址,这个方法需要是published的。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TShowInfo = procedure(info:string) of object; //声明一个procedure类型,参数和ShowInfo一致 TForm1 = class(TForm) Button1: TButton; pr...阅读全文

posted @ 2013-11-18 10:22 大悟还俗 阅读(81) 评论(0) 编辑

摘要: 这是DLL的代码library MyDll;uses SysUtils, Dialogs, Classes;procedure ShowInfo(info:PChar);stdcall;begin ShowMessage('您选择了【'+info+'】');end;function GetCaption:Pchar;begin Result := '中国';end;exports ShowInfo, GetCaption;{$R *.res}beginend.View Code 这是调用窗体的代码本例只使用了一个DLL,所以当有多个DLL时,需要阅读全文

posted @ 2013-11-18 10:21 大悟还俗 阅读(105) 评论(0) 编辑

摘要: SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_LAYERED ); WS_EX_ACCEPTFILES = 0x00000010 指明了一个已创建视窗具有拖拽文件功能 WS_EX_APPWINDOW = 0x00040000 强制一个可见的顶级视窗到工具栏上 WS_EX_CLIENTEDGE = 0x00000200 使一个视窗具有凹陷边框 WS_EX_COMPOSITED = 0x02000000 Windows XP:...阅读全文

posted @ 2013-11-18 10:18 大悟还俗 阅读(947) 评论(0) 编辑

摘要: 1.FastReport中如果访问报表中的对象?可以使用FindObject方法。TfrxMemoView(frxReport1.FindObject(’memo1′)).Text:=’FastReport’;2.FastReport中如何使用上下标?设置frxmemoview.AllowHTMLTags := True;在Text输入如下上标:mm2下表:k6举一反三,你还可以使用其他HTML标记。3.FastReport中如何打印总页数?设置两次报表后加入引号内内容 “第[Page#]页 共[TotalPages#]页”4.FastReport中如何动态加入变量及变量组?建立变量组名frx阅读全文

posted @ 2013-11-18 10:17 大悟还俗 阅读(152) 评论(0) 编辑

摘要: 1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls; 8 9 type10 TForm1 = class(TForm)11 Button1: TButton;12 Button2: TButton;13 Button3: TButton;14 procedure Button1Click(Sender: TObject);15 ...阅读全文

posted @ 2013-11-18 10:15 大悟还俗 阅读(81) 评论(0) 编辑

2013年11月11日

摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Buttons, ExtCtrls, TrayIconForm, AppEvnts; type TShareInfo = record Actived : array [ 1..4 ] of boolean; end; PShareInfo = ^TShareInfo; ...阅读全文

posted @ 2013-11-11 13:06 大悟还俗 阅读(250) 评论(1) 编辑

摘要: 要求:一个EXE,如何将它做成这样的效果:1、双击它时,像一个FORMS程序那样正常显示窗体运行。2、注册成系统服务,每次都可以从service.msc中启动它。也就是说,没注册之前,它可以当作普通FORMS程序运行,注册之后,它就可以当系统服务运行。做法:参考Delphi 里面scktsrvr的源代码,Program Files/Borland/Delphi7/Bin 搜索scktsrvr 就会看到有个scktsrvr.dpr,查看它的工程源程序,原理:在启动程序时,通过启动的方式来决定如何加载程序。必须的地方使用红色标记:program RODBLayer;{#ROGEN:RODBLaye阅读全文

posted @ 2013-11-11 13:05 大悟还俗 阅读(123) 评论(0) 编辑

摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type //定义接口如果接口独立成一个文件,则在应用程序中和实现程序中都要引用该接口文件; ICar = interface (IInterface) ['{ED52E264-6683-11D7-B847-001060806215}'] procedure drive; end; //接口实现类1,一定要加入Tint...阅读全文

posted @ 2013-11-11 13:04 大悟还俗 阅读(89) 评论(0) 编辑

摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;const TIMER_ID = 200;type TForm1 = class(TForm) Label1: TLabel; btkilltime: TButton; btsettime: TButton; procedure Button1Click(Sender: TObject); procedure btkilltimeCl...阅读全文

posted @ 2013-11-11 13:03 大悟还俗 阅读(328) 评论(0) 编辑

摘要: 实例1 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; constWM_ME=WM_USER+100; //自定义消息; type TForm1 = class(TForm) Button1: TButton;procedure Button1Click(Sender: TObject);//第一种消息处理方式; 只能处理常量消息; procedure wmme(var message:T...阅读全文

posted @ 2013-11-11 13:02 大悟还俗 阅读(446) 评论(0) 编辑

2013年11月9日

摘要: http://www.cnblogs.com/ChinaEHR/archive/2013/10/14/3368299.htmlhttp://www.raysoftware.cn/?p=378http://www.hxhlb.cn/article/32142aaeb67bbc05379369c3.htmlAndroid Sdk Base Path ***************** D:\adt-bundle-windows-x86_64-20130917\sdk Android Ndk Base Path ***************** D:\android-ndk-r9出...阅读全文

posted @ 2013-11-09 15:35 大悟还俗 阅读(109) 评论(0) 编辑

2013年11月8日

摘要: 万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,createFromFile之类的很容易使用.但是由于FireMonkey是跨平台的类库,必然不能和平台帮得太紧,所以提供了抽象的封装.但是也许Delphi XE5是Android平台的第一个版本,有些地方难免有疏漏,FireMonkey的封装没有提供更换字体的功能.但是我要实现的电子书阅读器换字体几乎是必须要实现的功能,所以只能给FireMonkey动动小手术了.FireMonkey的字体加载是由抽象阅读全文

posted @ 2013-11-08 16:33 大悟还俗 阅读(302) 评论(0) 编辑

摘要: TUniConnection的SpecificOptions参数决定了数据库连接配置参数,但可惜的是,SpecificOptions设计器界面,Devart公司只能让它在设计期配置!SpecificOptions参数为什么那么有用呢?举个例子讲,如果你要连接MSSQL,可能碰到老版本的OLEDB或者当下的NativeClient版本,具体参数可选为:prAuto、prSQL、prNativeClient、prCompact。因此,我们如果自己做界面参数配置,必须获取SpecificOptions默认值和下拉框表列表值。首先在界面上放TUniConnection,设置ProviderName为S阅读全文

posted @ 2013-11-08 16:24 大悟还俗 阅读(311) 评论(0) 编辑

摘要: var BmpPath: PChar;begin BmpPath := 'C:\Temp\Test.bmp'; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BmpPath, SPIF_UPDATEINIFILE);end;函数原型BOOL WINAPI SystemParametersInfo( _In_UINT uiAction, _In_UINT uiParam, _Inout_PVOID pvParam, _In_UINT fWinIni);SPI_GETBEEP = 1; {} SPI_SETBEEP ...阅读全文

posted @ 2013-11-08 01:02 大悟还俗 阅读(139) 评论(0) 编辑

2013年11月7日

摘要: 在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示.但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢?FormatMessage 可以, 但这个函数太复杂了; 可以用 SysErrorMessage 代替它.举例:var err: string; ErrorCode: DWORD;begin ErrorCode:=GetLastError; ShowMessage(IntToStr(ErrorCode)); err := SysErrorMessage(ErrorCode); ShowMessage(err); {操作阅读全文

posted @ 2013-11-07 11:28 大悟还俗 阅读(155) 评论(0) 编辑

摘要: ; not allowed before ELSEElSE前不允许有“;” clause not allowed in OLE automation section在OLE自动区段不允许“”子句 is not a type identifier不是类型标识符 not previously declared as a PROPERTY前面没有说明PROPERTYGOTO leads into or out of TRY statement GOTO进入或超出TRY语句的范围 clause expected, but found要求子句,但出现16-Bit fixup encountered ..阅读全文

posted @ 2013-11-07 11:27 大悟还俗 阅读(82) 评论(0) 编辑

摘要: Windows 数据类型Delphi 数据类型描述LPSTRPAnsiChar字符串指针LPCSTRPAnsiChar字符串指针DWORDLongWord整数BOOLLongBool布尔型PBOOL^BOOL指向布尔值的指针PByte^Byte指向字节值的指针PINT^Integer指向整数值的指针PSingle^Single指向单精度浮点值的指针PWORD^Word指向16位值的指针PDWORD^DWORD指向32位值的指针LPDWORDPDWORD指向32位值的指针UCHARByte8位值(可用来表示字符)PUCHAR^Byte指向8位值的指针SHORTSmallint带符号16位整数UI阅读全文

posted @ 2013-11-07 11:24 大悟还俗 阅读(73) 评论(0) 编辑

摘要: 分类运算符操作操作数结果类型范例算术运算符+加整数,实数整数,实数X + Y-减整数,实数整数,实数Result - 1*乘整数,实数整数,实数P * InterestRate/实数除整数,实数实数X / 2div整数除整数整数Total div UnitSizemod取模整数整数Y mod 6+(一元)符号等同整数,实数整数,实数+7-(一元)符号相反整数,实数整数,实数-X布尔运算符not否定布尔型Booleannot (C in MySet)and与布尔型BooleanDone and (Total > 0)or或布尔型BooleanA or Bxor异或布尔型BooleanA x阅读全文

posted @ 2013-11-07 11:23 大悟还俗 阅读(86) 评论(0) 编辑

摘要: 指令参数存放位置参数传递顺序参数内存管理适用地点registerCPU寄存器从左到右被调用者默认,published 属性存取方法必须使用pascal栈从左到右被调用者向后兼容cdecl栈从右到左调用者调用 C++ 共享库stdcall栈从右到左被调用者API 调用safecall栈从右到左被调用者API 调用,如果回调函数;双接口方法必须使用其他指令near far export inline assemble 等,曾经在16下使用阅读全文

posted @ 2013-11-07 11:22 大悟还俗 阅读(41) 评论(0) 编辑

摘要: Delphi数据类型C/C++ShorInt8位有符号整数charByte8位无符号整数BYTE,unsigned shortSmallInt16位有符号整数shortWord16位无符号整数unsigned shortInteger,LongInt32位有符号整数int,longCardinal,LongWord/DWORD32位无符号整数unsigned longInt6464位有符号整数_int64Single4字节浮点数float*Real486字节浮点数 Doubles8字节浮点数double*Extended10字节浮点数long doubleCurrency64位货币类型 TDa阅读全文

posted @ 2013-11-07 11:20 大悟还俗 阅读(52) 评论(0) 编辑

摘要: 出现runtime error临时解决办法,于注册表位置中找到如下键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Gdiplus,然后把键DisableTIFFCodec的值置为0..原微软提供的临时修复方法为关闭TIFF文件功能,此方法是重新打开漏洞影响的功能..错误信息形式为: Run-time error nnn at xxxx; 其中nnn是运行时的错误编号; xxxx是运行时的错误地址.编号说明I/O错误: (编号100-149)100磁盘读错误,若要对超过格式文件尾进行读取时101磁盘写错误,若磁盘满时,由CloseFile,Write,Writel阅读全文

posted @ 2013-11-07 11:09 大悟还俗 阅读(562) 评论(0) 编辑

摘要: auxGetDevCaps API 获取附属设备容量auxGetNumDevs API 返回附属设备数量auxGetVolume API 获取当前卷设置auxOutMessage API 向输出设备发送消息auxSetVolume API 设置附属设备卷AbortDoc API 终止一项打印作业AbortPath API 终止或取消DC中的一切路径AbortPrinter API 删除打印机缓冲文件AbortSystemShutdown API 停止系统工作AccessCheck API 检验客户访问权限AccessCheckAndAuditAlarm API 检验访问,产生声音或警报Acti阅读全文

posted @ 2013-11-07 10:41 大悟还俗 阅读(248) 评论(0) 编辑

2013年11月5日

摘要: 第一部分 认识ARM,方案商,GPU1, 芯片1.1 ARMARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片. 正是因为这样,各家都采用了自己的编号来命名,所以CPU型号较为复杂.1.2 RISC & CISC市场上可见到的处理器大致阅读全文

posted @ 2013-11-05 14:11 大悟还俗 阅读(104) 评论(0) 编辑

共6页: 上一页 1 2 3 4 5 6 下一页