摘要:
{******************************************************************}{ }{ Borland Delphi Runtime Library }{ Setup and Device Installer API interface unit }{ }{ Portions created by Microsoft are }{ Copy... 阅读全文
摘要:
{******************************************************************}{ }{ Project JEDI }{ OS independent Dynamic Loading Helpers }{ }{ The initial developer of the this code is }{ Robert Marquardt <... 阅读全文
摘要:
/** Defines GUIDs for device classes** Copyright (C) 2004 CodeWeavers (Aric Stewart)** This library is free software; you can redistribute it and/or* modify it under the terms of the GNU Lesser Genera... 阅读全文
摘要:
全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装。在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID。 GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如:6F9619FF-8B86-D011-B42D-... 阅读全文
摘要:
//检测GUID任何设备插入拔出unit DeviceDetect; interfaceuses Windows, SysUtils, Classes, Messages, Forms;type PDevBroadcastHdr = ^DEV_BROADCAST_HDR; DEV_BROADCAST_HDR = packed record dbch_size: DWORD; dbch_de... 阅读全文
摘要:
「清洁力」的发现 在艾尔兰的「揭开科学之谜」一文中介绍过一个很有趣的假想实验: 我们观察市区街道上的烟头、果皮等垃圾,把它们作为研究对象,用现代科学的方法研究其运动的规律。请严肃,这不是开玩笑,是严肃的科学试验。 我们发现,垃圾每天白天在街道上逐渐变多,到了第二天早上,就没了。这是一个很明显的周期性的规律,按照现代科学的方法,我可以用数学把这种规律描述得更科学一点,更精确一点。我可以选择市中心一百... 阅读全文
摘要:
手机万能充电器电路原理与维修由于各型号手机所附带的充电器插口不同,以造成各手机充电器之间不能通用。当用户手机充电器损坏或丢失后,无法修复或购不到同型号充电器,使手机无法使用。万能充电器厂家看到这样的商机,就开发生产出手机万能充电器,该充电器由于其体积小、携带方便,操作简单,价格便宜,适合机型多,深受用户的欢迎。下面以深圳亚力通实业有限公司生产的四海通S538型万能充电器为例,介绍其工作原理和维修方... 阅读全文
摘要:
1、限制程序功能函数EnableMenuItem 允许、禁止或变灰指定的菜单条目EnableWindow 允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰) 2、对话框函数CreateDialog 从资源模板建立一非模态对话窗CreateDialogParam 从资源模板建立一非模态对话窗 CreateDialogIndirect 从内存模板建立一非模态对话窗 CreateDialogInd... 阅读全文
摘要:
光电鼠标故障维修 光电鼠标使用光电传感器替代机械鼠标中的机械元件,因而维修方法具有独特性。光电鼠标故障的90%以上为断线、按键接触不良、光学系统脏污造成,少数劣质产品也常有虚焊和元件损坏的情况出现。 1.电缆芯片断线 电缆芯线断路主要表现为光标不动或时好时坏,用手推动连线,光标抖动。一般断线故障多发生在插头或电缆线引出端等频繁弯折处,此时护套完好无损,从外表上一... 阅读全文
摘要:
3Dmark03 3Dmark05 3Dmark06 intel GMA X4500 2299 1494 971 intel GMA X3100 1527 870 609 ATI Mobility Radeon HD2600 ATI Mobility Radeon HD3470 2693 1822 ATI Mobility Radeon HD... 阅读全文
摘要:
如何检测网关的MTU? 在本机打开dos窗口,执行: ping -f -l 1472 192.168.0.1 其中192.168.0.1是网关IP地址,1472是数据包的长度。请注意,上面的参数是-l(小写的L)。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现:Packet needs to be fragmented but DF set. 表示数据包需要拆开来发... 阅读全文
摘要:
1、获取windows版本信息 可以通过Windows API函数GetVersionEx来获得。 具体程序如下: Procedure Tform1.Button1Click(sender:TObject); Var OSVI:OSVERSIONINFO; begin OSVI.dwOSversion... 阅读全文
摘要:
在TMainMenu组件生成的菜单中添加一个File菜单,在这个菜单下面添加一个Exit选项。在本程序开始运行时就会把TMainMenu组件生成的菜单添加到窗体的系统菜单中,响应代码如下: procedure TForm1.FormCreate(Sender: TObject);var I: Integer;begin AppendMenu (GetSystemMenu (Handle, F... 阅读全文
摘要:
HOOK API是一个永恒的话题,如果没有HOOK,许多技术将很难实现,也许根本不能实现。这里所说的API,是广义上的API,它包括DOS下的中断,WINDOWS里的API、中断服务、IFS和NDIS过滤等。比如大家熟悉的即时翻译软件,就是靠HOOK TextOut()或ExtTextOut()这两个函数实现的,在操作系统用这两个函数输出文本之前,就把相应的英文替换成中文而达到即时翻译; IFS和... 阅读全文
摘要:
窗口透明 //窗口透明, 内控件不透明 procedure TForm1.FormCreate(Sender: TObject); begin TransparentColor:=True; TransparentColorValue:=25; Color:=Form1.TransparentColorValue; end; //窗口透明, 内控件也透明 procedu... 阅读全文
摘要:
DELPHI中记录的存储方式 在DELPHI中,我们用record关键字来表明一个记录,有时候,我们还会看到用packed record来声明的记录,这二者的区别就在于存储方式的不同;在windows中,内存的分配一次是4个字节的,而Packed按字节进行内存的申请和分配,这样速度要慢一些,因为需要额外的时间来进行指针的定位。因此如果不用Packed的话,Delphi将按一次4个字节的方式申请内... 阅读全文
摘要:
MSG结构 typedef struct tagMSG { HWND hwnd; //这个消息所在的窗口句柄 UINT message; //消息标识符,如WM_SIZE、WM_COMMAND、WM_QUIT等等 WPARAM wParam; //32位消息的特定附加信息 LPARAM lParam; /... 阅读全文
摘要:
(okwary) 小叹的学习园地 DLLs中的全局内存 Windows规定: DLLs并不拥有它打开的任何文件或它分配的任何全局内存块。这些对象由直接或间接调用DLLs的应用程序拥有。这样,当应用程序中止时,它拥有的打开的文件自动关闭,它拥有的全局内存块自动释放。这就意味着保存在DLLs全局变量中的文件和全局内存块变量在DLLs没有被通知的情况下就变为非法。这将给其它使用该DLLs的应... 阅读全文
摘要:
LRESULT LRESULT是一个数据类型, MSDN: 32-bit value returned from a window procedure or callback function 指的是从窗口程序或者回调函数返回的32位值 阅读全文
摘要:
来源:万一的 Delphi 博客 WinAPI: SetWindowsHookEx - 设置钩子 提示: 如果要设置系统级钩子, 钩子函数必须在 DLL 中. SetWindowsHookEx( idHook: Integer; {钩子类型} lpfn: TFNHookProc; {函数指针} hmod: HINST; {包含钩子函数的模块(EXE、DLL... 阅读全文
摘要:
//----------------------------------------------// Unit Name: FileExt.pas// Comment: 读写UTF8和UNICODE格式文件的一组函数//----------------------------------------------unit FileExt; interface uses SysUtils,Windo... 阅读全文
摘要:
(okwary) 小叹的学习园地 钩子(Hook) Hook解释: Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会受到系统的通知,这时程序就能在第一时间对该事件做出响应。 另一解释: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以... 阅读全文
摘要:
{-----MouseHook.pas-------------------------------------------} { MouseHook DLL Load & TMouseHook Class Unit 2004-09-08 Copyright ? Thomas Yao } unit MouseHook; interface uses Windows, Message... 阅读全文
摘要:
基于Delphi的融合DLL中的窗口 摘 要:提出了一种简单的方法将DLL中的窗口融合(嵌入)到其他应用程序或DLL的窗口中,使用本方法可以简便地实现具有强扩展性和升级能力的软件系统。 1 引言 在开发一个大型通用控制系统时曾遇到这么一个问题:该系统软件包由若干个可执行文件和动态链接库组成,因为扩展性和兼容性的要求,需要将系统划分为若干个可执行文件和动态链接库,并且在大部分DLL中... 阅读全文
摘要:
Window 消息大全使用详解 导读: Delphi是Borland公司的一种面向对象的可视化软件开发工具。 Delphi集中了Visual C++和Visual Basic两者的优点:容易上手、功能强大,特别是在界面设计、数据库编程、网络编程方面更有其独特的优势。 Delphi中的消息 消息是Windows发出的一个通知,它告诉应用程序某个事件发生了。在Delphi中,大多数情况下W... 阅读全文
摘要:
实战DELPHI:远程线程插入(DLL注入) 2008-01-20 22:38 远程注入DLL方法有很多种,也是很多木马病毒所使用的隐藏进程的方法,因为通过程序加载的DLL在进程管理器是没有显示的.这里介绍一种用 CreateRemoteThread 远程建立线程的方式注入DLL. 首先,我们要提升自己的权限,因为远程注入必不可免的要访问到目标进程的内存空间,如果没有足够的系统权限,... 阅读全文
摘要:
标 题:程序运行实例数量的控制——大全篇[原创]发信人:bellkwong经常会碰到有人问如何保证程序只运行一个实例,原来我也零碎的给过两三个方法,今天干脆来个大总结,希望对大家在做程序设计的时候有所帮助。 一个程序只运行一个实例(或限制实例数量)通常可以采用如下方法: 1)FindWindow 之 通过查找窗口标题来确定上一实例是否正在运行,不适合窗口标题动态变化的程序。 2)F... 阅读全文
摘要:
WinMain函数 WinMain函数的原型声明如下: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow ); 参数: WinMain函数接收4个参数,这些参数都是在系统调用WinMain函数时,传递给应用程序的。 hInstance: 表示该程序当前运... 阅读全文
摘要:
SEH in ASM 研究 一、SEH背景知识 SEH("Structured Exception Handling"),即结构化异常处理.是操作系统提供给程序设计者的强有力的处理程序错误或异常的武器.在VISUAL C++中你或许已经熟悉了_try{} _finally{} 和_try{} _except {} 结构,这些并不是编译程序本身所固有的,本质上只不过是对windows内在提供的结构... 阅读全文
摘要:
关于Delphi中参数的传递和函数值的返回前言:高手们应该早知道了,不屑于写出来而已。真正的高手一个比一个潜的深,只剩下偶这样的小菜写些菜文给更小的菜。高手看时还请捂好大牙,多多指点。不知各位小菜同胞对破解DELPHI程序有什么看法,反正我的感觉就一个字:怪。各位最先遇到的问题恐怕都是:我下了GetDlgItemInt、GetDlgItemText、GetWindowText....怎么什么也断... 阅读全文
摘要:
使用Delphi的BASM (okwary) 小叹的学习园地 由于Delphi是基于真正编译器的编程环境,因此可以把汇编语言代码嵌入Object Pascal的过程和函数中。这种能力主要得益于Delphi内建了汇编程序(BASM)。在学习BASM之前,首先应该清楚在Delphi程序中什么时候需要用汇编语言。虽然,能嵌入汇编语言代码是很让人兴奋的事情;但有时,使用BASM也会变成坏事。不过,如... 阅读全文
摘要:
unit CMOS; Interface const ClockSec = $00; { RTclock seconds } ClockMin = $02; { RTclock minutes } ... 阅读全文
摘要:
FormatDateTime说解 2008年03月03日 星期一 上午 11:54 描述 返回一个日期或时间格式的表达式。 语法 FormatDateTime(Date[,NamedFormat]) FormatDateTime函数语法有如下几部分: 部分 描述 Date 必需的。要被格式化的日期表达式。 NamedFormat 可选的。数字值,表示日期/时间所使用的格... 阅读全文
摘要:
代码设置(Code generation)Optimization:代码优化开关。Aligned record fields:字对齐数据。这个编译指令能够在变量和类型化常量的字节对齐和字对齐之间进行切换,其作用是全局的。Stack frames:Windows堆栈帧。其作用域是局部的,它使编译器为远端过程和函数生成特特的开头和结尾代码。这个指令用于Windows 3.0的实模式,对所有Del... 阅读全文
摘要:
小心使用@@identity @@identity的作用是返回最后插入的标识值,所以有很多朋友使用它来获取插入数据后的标识符。但有一点是需要注意的,@@identity返回的是最后的标识符,所以,要想正确的返回插入后的标识符,那么就必须保证,你想要的结果是最后的标识符,否则就会隐藏bug。仔细阅读@@identity的注释: 注释 在一条 INSERT、SELECT INTO 或大容量复制语句完... 阅读全文
摘要:
(1) _stdcall调用 _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。 WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题: #define WINAPI _stdcall 按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如 _function... 阅读全文
摘要:
unit main_pas; interfaceuseswindows ,SysUtils,psapi;typeTremoteparameter=record //声明远线程参数结构 rpopenprocess:dword; rpwaitforsingleobject:dword; rpfindfirstfile:dword; rpcopyfile:dword... 阅读全文
摘要:
需要一个用来注入的dll(inject.dll)及一个调用程序(caller.exe)流程: caller.exeprocedure TestHook;var pwnd,hChild, hwndInject :hwnd; msg:tmsg;begin //通过窗口标题用FindWindow找到要注入的程序的主窗口句柄pwnd pwnd := findwindow('Progman',... 阅读全文
摘要:
Lea是返回偏移地址,对于 Lea EAX,s1 这样很好解释,就是返回变量s1的偏移地址 Lea EAX,[EBX+10]就比较复杂了 [EBX+10]表示EBX+10后作为地址,此地址指向位置的值,取的是EBX+10地址内的内容。 那Lea究竟是把这个内容作为地址存入EAX,还是把这个内容的地址赋给EAX呢?如果是后者,那不是跟MOV EAX,EBX+10的效果一样了? 实际的效果应该是后者... 阅读全文
摘要:
Delphi关键字【内联汇编】 DELPHI内联汇编好象有得天独厚的优势,尤其是API的调用,处理好各成员参数后,可以直接CALL API名称。利用内联汇编我们可以为程序添加各种异常,添加反调试代码,添加花指令,还可以令某些难写的注册机简单化等.我把DELPHI内联汇编的一点点使用心得写出来,目的是想与大家交流,挖掘更多的这方面的领域。也希望大家能够指正一些错误。一、 数据... 阅读全文