Delphi 函数
文章平均质量分 74
god00
这个作者很懒,什么都没留下…
展开
-
delphi md5加密函数
function TloginForm.md5(input:string):string;varMyMD5 : TIdHashMessageDigest5;Digest: T4x4LongWordRecord;beginMyMD5 := TIdHashMess转载 2011-10-10 16:39:18 · 1476 阅读 · 1 评论 -
Delphi下利用SendInput模拟鼠标键盘
<br />前言<br /> 发了一篇《Delphi下利用WinIo模拟鼠标键盘详解》(http://programbbs.com/bbs/view12-17207-1.htm),再发一个利用SendInput模拟键盘鼠标的程序,以作对比。<br />一、SendInput<br /> SendInput可以将指定的鼠标键盘消息插入到系统消息队列,从而实现对鼠标键盘的模拟。有很多程序对SendInput进行了屏蔽,但不是所有的。所以这里介绍一下SendInput的使用。我已经将主要的模拟功能写在了一个单转载 2011-04-21 10:00:00 · 1345 阅读 · 0 评论 -
GetAsyncKeyState 确定用户当前是否按下了键盘上的一个键
<br />http://topic.csdn.net/t/20060110/12/4507803.html<br /> <br />http://baike.baidu.com/view/1467704.htm#sub1467704<br /> <br />转载 2011-04-19 16:52:00 · 606 阅读 · 0 评论 -
WinAPI: GetModuleHandle - 获取一个模块(exe 或 dll)的句柄
定义: GetModuleHandle( lpModuleName: PChar {模块名; 只能是映射到当前进程的模块}): HMODULE; {返回模块句柄; 0 表示失败}举例: //获取当前模块的句柄var s: string; h: Cardinal;begin {先取得模块名} s := Appl转载 2011-06-05 07:56:00 · 1720 阅读 · 0 评论 -
delphi 全局变量 HInstance 到底是在什么时候赋值的?
在学习 资源文件 和 钩子函数 时, 经常用到当前模块句柄(HInstance)这个全局变量. 今天特别想知道, 它到底是在什么时候给赋值的.输入 HInstance; "Ctrl+鼠标" 找到它的声明之处: SysInit 单元的第 29 行(Delphi 2007) - HInstance: LongWord;看来 Delphi 的隐含单元不只是 System.pas, 还有 SysInit.转载 2011-06-05 08:06:00 · 568 阅读 · 0 评论 -
Delay 延时函数
procedure Delay(MSecs: Longint);//延时函数,MSecs单位为毫秒(千分之1秒)var FirstTickCount,Now:Longint;begin FirstTickCount := GetTickCount(); repeat Application.ProcessMessages; Now := GetTickCount(); until (Now - FirstTickCount >= MSecs)转载 2011-04-12 11:38:00 · 2467 阅读 · 0 评论 -
FindFirst,FindNext,FindClose
procedure GetDirs(dirName: string; List: TStrings); //列出一个目录下所有目录(包括嵌套)的函数varSRec: TSearchRec; {定义 TSearchRec 结构变量}dir: string;constattr: Integer = faDirectory; {文件属性常量, 表示这是文件夹}begindirName := ExcludeTrailingBackslash(dirName) + '/'; {不知道最后是不是 /; 先去掉, 再加上转载 2011-04-10 08:52:00 · 629 阅读 · 0 评论 -
ScreenToClient 坐标转换函数
<br />procedure TForm1.ButtonClick(Sender: TObject);<br /> var<br /> Rect:TRect;<br /> lpPoint:TPoint;<br />begin<br /> GetWindowRect(Button.Handle,Rect); //取得控件相对于屏幕的坐标,即屏幕坐标;<br /> lpPoint:=Rect.TopLeft;<br /> Windows.ScreenToClient(Form1.Handl原创 2011-04-10 12:32:00 · 1147 阅读 · 0 评论 -
Delphi——FindFirst学习
<br />Delphi——FindFirst学习<br />FindFirst在SysUtils中声明 原型为<br />Fucntion FindFirst(const Path:String;Attr:Integer;Var F:TSearchRec):Integer;<br />描述:<br />从指定的目录中搜索第一个给定属性文件实例<br />返回结果保存到参数F中,F参数是一个文件结构包含文件信息<br />成功返回0,否则返回错误代码<br />参数Path:包含路径和搜索模糊文件名,包括通转载 2011-04-09 22:24:00 · 1451 阅读 · 0 评论 -
交换鼠标的左右键
<br />为了改变鼠标左键,需要调用API函数SwapMouseButton。这样可以不用通知控制面板而改变鼠标左键。我们需要修改注册表。以下代码表明,先读注册表,决定鼠标左键开关的当前值,并通过写注册表运行SwapMouseButton函数。<br /><br />uses Windows, Registry ;<br /><br />const<br />LeftButton = '0' ;<br />RightButton = '1' ;<br />VaueToRead = 'SwapMouseBu转载 2011-04-09 18:59:00 · 453 阅读 · 0 评论 -
Delphi如何下载文件?
用indy控件组。http用idhttp。ftp用idftp.还有这个URLDownloadToFile函数{-----------------------------例子------------------------}procedure TForm1.Button1Click(Sender: TObject);var mystream1 :TMemoryStream;begin mystream1 :=TMemoryStream.Create; IdHTTP1.Get('http://www.pco转载 2011-04-21 08:48:00 · 505 阅读 · 0 评论 -
delphi 重命名、复制、移动文件
RenameFile(Oldname, Newname);CopyFile(PChar(Oldname), PChar(Newname), False);MoveFile(PChar(Oldname), PChar(Newname));转载 2011-06-23 11:47:00 · 1059 阅读 · 0 评论 -
delphi获取系统特定文件夹路径
获取收藏夹:use shellapi,shlobjprocedure TForm1.FormCreate(Sender: TObject); var pidl: PItemIDList; FavPath: array[0..MAX_PATH] of char; begin SHGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pidl)转载 2011-06-26 08:08:00 · 787 阅读 · 0 评论 -
Odd - 判断一个整数是不是奇数
var i: Integer; b: Boolean;begin i := 11; b := Odd(i); {是奇数返回真} ShowMessage(BoolToStr(b)); {True} i := 1转载 2011-08-26 18:18:04 · 831 阅读 · 0 评论 -
delphi中对override(重写)和overload(重载)的一些看法 .
重写就是用现在的方法覆盖了继承过来的方法,重载就是在不改变继承过来的方法的基础上重新添加一个方法名字一样,但参数或返回值是不一样的。下面举个例子:unit Unit1;interfacetype TStudent=classprivate//.转载 2011-08-24 11:20:55 · 591 阅读 · 0 评论 -
delphi中create的用法一直不是很清楚 有没有系统全面的介绍
Create是类的构造(constructor)函数,每个类都有构造函数,通过调它创建类的实例,比如:var obj:TObject;begin obj:=TObject.Create;//创建 try //使用.... finally转载 2011-08-24 10:42:34 · 962 阅读 · 0 评论 -
Delphi忽略程序报错
type TForm1 = class(TForm)procedure MyException(Sender:TObject; E:Exception);end; procedure TForm1.MyException(Sender: TObject;原创 2011-08-10 21:42:31 · 864 阅读 · 0 评论 -
构造函数与析构函数的使用
MyClass = object private AA: Integer; public procedure Add; constructor Create; //其它地方不转载 2011-09-01 08:35:08 · 451 阅读 · 0 评论 -
Delphi中的构造函数
Delphi中所有类都继承自TObject ,Create默认不是虚方法 ,Destroy默认是虚方法. VCL中组件继承的大多Create都被声明成虚方法了。 在Delphi当中构造函数当中的create与析构函数destroy大部分都是虚方法.可以覆盖. 被覆盖的函数必须是虚转载 2011-07-19 09:23:14 · 789 阅读 · 0 评论 -
Delphi里如何让程序的任务栏颜色闪烁啊?
可以加个判断,判断窗口是否激活了 if not Self.Active then FlashWindow(Self.Handle, True); 可以这样做的!FlashWindow(Self.Handle, True); //禁止闪烁应该设置为Falsh,没试过,待会测转载 2011-07-11 11:38:31 · 929 阅读 · 0 评论 -
Delphi 函数指针 过程/函数类型
<br />Pascal 中的过程类型与C语言中的函数指针相似,为了统一说法,以下称函数指针。函数指针的声明只需要参数列表;如果是函数,再加个返回值。下面讲解指向非对象(一般的)函数/过程的函数指针。<br />例如声明一个过程类型,该类型带一个通过引用传递的整型参数: <br />type <br /> IntProc = procedure (var Num: Integer); //IntProc是指向过程的函数指针<br />这个过程类型与任何参数完全相同的例程兼容,即用它声明的变量,可以指向任何转载 2011-05-11 09:37:00 · 653 阅读 · 0 评论 -
ExitProcess 参数问题
VOID ExitProcess( UINT uExitCode);uExitCode即退出代码,是个UINT 类型,这个代码一般没有用途,我们一般可以填入0。对于父进程(不一定是父进程,拥有该进程句柄都算)可以通过GetExitCodeThread获取进程的退出代码。这个代码用来告诉父进程程序退出原因,填入什么没有特别规定,可以自己约定,一般来说填入0表示正常退出,其他表示非正常退出。转载于:http://wenwen.soso.com/z/q195158932.htm转载 2011-05-06 19:56:00 · 1041 阅读 · 0 评论 -
Delphi中函数指针的使用
<br />delphi中的函数指针如何定义和使用<br />var<br /> p:Pointer;<br />begin<br /> p:=@函数名称<br />end;<br /><br />调用时<br />p(参数表);<br /><br />就行了<br />{-----------------------------Delphi中函数指针的使用-----------------------------}<br /> <br />Delphi中可以通过函数指针把一个函数作为参数来传递,然后在转载 2011-04-09 10:18:00 · 1148 阅读 · 1 评论 -
用GetprocAddress得到地址后该如何调用这个函数
http://topic.csdn.net/t/20040831/18/3327148.html //定义函数指针 VC++ GetProcAddress返回的是一个函数地址的指针。声明:FARPROC WINAPI GetProcAddress(__in HMODULE hModule, __in LPCSTR LpProcName);你应该知道你要的函数的类型是什么,可以用typedef的方法定义函数类型,然后定义一个这种类型的变量,你得到地址后,将地址的类型转换并存到那个变量中就行了。De转载 2011-04-09 09:59:00 · 2849 阅读 · 0 评论 -
SendKeys.Send()输入中文
<br />SendKeys有两个方法,分别为Send()和SendWait(),作用是模拟键盘输入。因为是模拟键盘输入,所以输入的字符只能是键盘上的按键,结果就是不能输入中文。<br /> 这样一来,是不是就不能输入中文了呢?让我们换一个思路:不让直接输入,复制、粘贴总可以吧。<br /> 来看看复制、粘贴的过程:先把内容复制到(系统的)剪贴板,再从剪贴板复制出来。<br /> 根据这一原理,编码的思路就清晰了:对剪贴板进行操作,把字符串复制到剪贴板(比发送“CTRL+C”方便) 焦点定转载 2011-05-18 09:51:00 · 1318 阅读 · 0 评论 -
CreateRemoteThread
<br />先解释一下远程进程,其实就是要植入你的代码的进程,相对于你的工作进程(如果叫本地进程的话)它就叫远程进程,可理解为宿主。<br /><br />首先介绍一下我们的主要工具CreateRemoteThread,这里先将函数原型简单介绍以下。<br /><br />CreateRemoteThread可将线程创建在远程进程中。<br /><br />函数原型<br />HANDLE CreateRemoteThread(<br /> HANDLE hProcess,转载 2011-05-10 10:37:00 · 641 阅读 · 0 评论 -
EnumChildWindows 枚举子窗体句柄
EnumChildWindows(父窗体句柄,@EnumChildWndProc //回调函数,0 //这个通常为零,不管它,实现自己想要的就算了,以后再研究)回调函数书写格式:function EnumChildWndProc(AhWnd:LongInt;AlParam:lParam):boolean;stdcall; var WndClassName: array[0..254] of Char; //保存窗口所属类 WndCaption: array[0..254] of Ch原创 2011-03-20 10:59:00 · 2117 阅读 · 0 评论 -
WinExec 函数执行Cmd命令
WinExec('cmd.exe netstat -an',SW_SHOW); //不执行;WinExec('cmd.exe /c netstat -an',SW_SHOW); //执行,但一闪而过;WinExec('cmd.exe /k netstat -an',SW_SHOW); //成功;开始菜单 运行 输入 cmd /? 查看/c,/k帮助。 Ctrl+C 结束运行。原创 2011-02-21 12:59:00 · 8401 阅读 · 0 评论 -
Delphi中的SendKeys函数 - sndKey32.Pas 下载
<br />http://www.wesoho.com/soft/down/sndkey32.rar<br />用过Visual Basic等编程语言的朋友们一定对其SendKeys函数非常熟悉。利用该函数可以把一个字符串发送到目标窗口(比如记事本)或控件(比如一个Edit控件)中,就好像是在目标窗口或控件中输入这个字符串一样。但是,在Delphi中却没有为我们提供这样的函数。其实,Borland的工程师们早就提供了一个方便的方法:在Delphi5.0企业版的安装盘的/info/Extras/SendKey转载 2011-03-14 13:09:00 · 1332 阅读 · 0 评论 -
自定义FindControl函数,跨进程使用。
library Project2;uses SysUtils, Windows, Dialogs, Forms, TLHelp32, StdCtrls, Controls, Classes, Unit1 in 'Unit1.pas';var hFrm:TForm; h:HWND; ControlAtom: TAtom; ControlAtomString: string; RM_GetOb原创 2011-03-14 11:13:00 · 765 阅读 · 0 评论 -
关于FindControl的问题
我的动手能力很弱。。。http://topic.csdn.net/u/20101008/16/fbf7d1aa-ad19-489c-abae-6090da38bc50.html转载 2011-03-14 09:59:00 · 1175 阅读 · 0 评论 -
SendKeys函数 设置焦点是关键
procedureTForm1.ButtonClick(Sender:TObject);varH:HWND;i:Integer;beginH:=FindWindowEx(WebBrowser.Handle,0,'ShellDocObjectView',nil);H:=FindWindowEx(H,0,'InternetExplorer_Server',nil);IHTMLWindow2(IHTMLDocument2(WebBrowser.Document).ParentWindow).focus;//Web原创 2011-02-14 10:17:00 · 1423 阅读 · 0 评论 -
GetModuleHandle 函数
这个句柄是可以用来指向PE结构的,它是所要获取的模块,在你当前进程空间中的地址来的.例如 hMod=GetModuleHandle("c://test.dll");如果hMod为0x60000的话,那么说明test.dll已经被加载到你当前进程的0x60000的地址空间里去了..所以说,这个句柄的内容其实就是该模块在你的进程空间中的地址....转载 2011-02-28 14:00:00 · 571 阅读 · 0 评论 -
Chr函数将数字转换为ASCII码
procedure TForm1.ButtonClick(Sender: TObject); var C:Char;begin C:=Chr(59); //ASCII码对应表; #10#13; #号+数字就=ASCII码; //Chr函数将数字转换为ASCII码; ShowMessage(C);end;原创 2011-03-28 13:07:00 · 1579 阅读 · 0 评论 -
VarArrayCreate([0, 1, 0, 3], varDouble);
<br />#2楼 回复于:2010-03-05 09:52:33<br />补充,创建的数组是一个二维数组,上下界分别为0..1,0..3 <br /><br />#3楼 回复于:2010-03-05 09:54:07<br />谢谢那 VarArrayCreate([0,0,0,0], varDouble);是什么意思? <br /><br />#4楼 回复于:2010-03-05 10:04:17<br />也是创建一个二位变体数组,上下界分别为:0..0,0..0 <br /><br />#5楼转载 2011-05-18 08:25:00 · 1492 阅读 · 0 评论 -
SetWindowLong函数 GetWindowLong函数
<br />这两个函数的具体应用如下: SetWindowLong函数 GetWindowLong函数<br /> <br />Delphi 窗口化游戏 <br />var<br />Thwnd:HWND;//声明变量 句柄变量<br />devmode1:DEVMODE;//屏幕分辨率变量<br />style,exstyle:longint;//窗口属性变量<br />begin<br />//得到游戏句柄<br />Thwnd:=findwindow('CLIENT',nil);<br />//设置分转载 2011-03-29 11:57:00 · 1036 阅读 · 0 评论 -
delphi清除ie缓存的方法
清除 IE 的 cache uses WinInet; procedure DeleteIECache; var lpEntryInfo: PInternetCacheEntryInfo; hCacheDir: LongWord; dwEntrySize: LongWord; begin dwEntrySi转载 2011-04-08 09:19:00 · 1626 阅读 · 0 评论 -
inherited 用法
inherited就是调用祖先类的函数,如果不带参数就是默认调用同名函数如果带参数则表明子类中的函数个数可能比祖先类要多取其中的几个参数传过去例如祖先类有个函数 Create(AName:string);子类有个函数 Create(AName:string;AComponent:TObject);override;那么子类的Create函数内就可以这样调用祖先类:procedure TAClass.Create(AName:string;AComponent:TObject);b转载 2011-04-08 19:05:00 · 1344 阅读 · 0 评论 -
菜鸟入门之浅谈函数重载和多态的区别
函数重载是和多态不一样的,函数重载的例子表达式如下:function Foo(i:Integer):string;overload;function Foo(s:string):string;overload;通过传不同的参数,选择执行不同函数执行。而多态是通过把子类对象赋给父类对象(大逆不道?!:)),让父类对象具有子类对象的方法,例子表达式如下:TParent=class(TObject)procedure Draw;virtual;end;TChild=class(TParent)procedure转载 2011-04-08 18:55:00 · 456 阅读 · 0 评论 -
解决DELPHI的程序占内存的代码
unit SCFastMemory;interfaceuses SysUtils, Windows;implementationvar InProc: Boolean; TimerID: Integer;procedure SaveMemory;begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin //整理内存 SetProcessWorkingSetSize(G转载 2011-04-07 15:22:00 · 709 阅读 · 0 评论