Delphi做的Win7放大镜,实现和Win7放大镜一样的实时全屏放大
用Magnification API做的仿Win7放大镜,仅全屏模式,大部分具备Win7自带的全屏放大镜功能,但是具有以下不同:
1、Magnification API按微软介绍区分32位和64位,不能混用。Win7请自行根据32位和64位重新编译32位和64位程序,也就是32位程序在64位Win7系统上运行大概率黑屏,没法用,必须编译成64位程序才正常。ZoomIn程序是32位,能在64位Win7系统上运行,不知道它怎么弄的,但是Win10系统就没有这个问题,32位程序能在64位系统上用。
2、Magnification窗口置顶功能没有Win7自带的强悍,也比ZoomIn软件效果稍差,刚开始弹出时动态缩放会有闪烁,这个ZoomIn没有,不知道怎么弄的,然后正常放大会和ZoomIn一样正常,很少闪烁。
15_SD card.rar
AVR的SPI协议读写SD卡扇区代码
AdvMemo支持中文.rar
D7的中文支持问题其实是WideString和Ansistring问题,相对处理简单些,也就是判断双字节的问题;XE2就复杂了,XE2里的string本身就是双字节,英文和中文都一样长,但是XE2处理字符宽度是基于TextWidth('A'),只有一个中文字的一半宽,涉及到的地方非常多,通篇处理起来困难,XE2修改不太好,运行时经常死机或报错,哪位高手再处理下。
采用线程方式拷贝文件(夹)Delphi使用自带的进度条显示进度
采用线程方式通过进度条显示拷贝文件或者文件夹。由于进度条控件可能为第三方控件,该控件显示进度可以由TCopyThreadEx重新申明进度条为何种进度条(也就是非Delphi自带的默认进度条),申明方法具体参阅基类TThreadEx和TBaseThreadEx那些protected函数申明,只要在TCopyThreadEx重新申明关联新的进度条控件即可。编译环境:Delphi7,本例全部使用Delphi7默认控件。
Delphi 做的虚拟光驱修正
源代码链接如下:
http://download.csdn.net/detail/cyradg2008/6904407
发现映射多个光驱或多个磁盘会出现错误,是由于对FileDiskMount函数中的DeviceNumber参数的误解,以为0代表磁盘,1代表光驱,实际上应该理解为磁盘序列号,因此MountCD函数和FileDiskMount重载函数都要加入DeviceNumber参数,DeviceNumber从0开始递增,否则无法添加新的虚拟磁盘或光驱(最多只能为1个虚拟磁盘和1个虚拟光驱),据说DeviceNumber最大为10,。
Delphi 做的虚拟光驱,附带除驱动外全部源代码
Delphi 使用FileDisk.Sys做的虚拟光驱,虚拟磁盘驱动,支持IMG,ISO文件。D7环境编译,32位系统环境使用,采用驱动内置,需要时会释放到系统的Temp目录下,所以源代码中不提供FileDisk.Sys文件。
编译成的VirtualDisk.Exe内置驱动,需要时会自动注册启动,但是程序退出时没有做卸载工作。驱动的注册、运行、停止运行、卸载、虚拟磁盘加载、卸载全在代码中。
问问题花了20分,所以象征性收2分。
从内存中调用DLL函数的源代码,鄙视MemLibLoader不开源
找了个7z的Delphi源码,发现MemLibLoader未开源,其实就是从内存中调用DLL函数,从网上找了些代码拼了一个,以下函数申明方式全部从MemLibLoader照抄
function _LoadLibraryA(FileName:PAnsiChar):DWORD;
function _LoadLibraryW(FileName:PWideChar):DWORD;
function _LoadLibraryFromResourceA(Instance:DWORD;Name,ResType:PAnsiChar):DWORD;
function _LoadLibraryFromResourceW(Instance:DWORD;Name,ResType:PWideChar):DWORD;
function _LoadLibraryFromResourceIDA(Instance:DWORD;ResID:Integer;ResType:PAnsiChar):DWORD;
function _LoadLibraryFromResourceIDW(Instance:DWORD;ResID:Integer;ResType:PWideChar):DWORD;
function _GetProcAddress(hMoudle:DWORD;lpProcName:PAnsiChar):Pointer; stdcall;
function _GetProcAddressA(hMoudle:DWORD;lpProcName:PAnsiChar):Pointer; stdcall;
function _GetProcAddressW(hMoudle:DWORD;lpProcName:PAnsiChar):Pointer; stdcall;
function _LoadLibraryMem(lpMemory:Pointer):DWORD;
procedure _FreeLibrary(hMoudle:DWORD);
不过_LoadMemRunExe函数目前无法体会原作者的意图,未加上去。D7下嵌入7z源代码有效,其他环境为测试。
QRCode 二维码解码源代码
根据VC6的源代码翻译成Delphi7代码,并附带一个测试程序。C++代码很久没弄了,很多地方和Delphi的方式不一样,翻译花了一段时间。该代码只能解码原始的清晰照片,摄像头拍摄的照片估计要做图像处理,否则无法解码,因此解码还涉及图像处理,估计蛮复杂。
增加ARP拦截的passthru驱动代码以及Delphi7如何使用该驱动
passthru来源于FireWallDemo,具有TCP,UDP,ICMP拦截功能,但是不具有ARP拦截。
首先,拦截规则是在UTIL_AddOneRule函数里加入,参数是Rules,所以Rules结构要重新定义如下:
struct Rules {
u_long id; //Rule的号码
u_char protocol; //协议类型
union {
struct {
u_long s_ip; //原IP
u_long s_mask; //掩码
u_short s_port; //原端口
u_long d_ip; //目的IP
u_long d_mask; //掩码
u_short d_port; //目的端口
};
struct {
u_long arp_spa; //IP地址 ;ULONG
u_char arp_sha[6]; //硬件地址
};
};
u_char direct; //方向
u_char action; //是否拦截
char sMemo[100]; //备注
};
以便使Rules结构既适合原来定义,又适合ARP参数传递,类似这样的定义还有
struct Fw_Rule_Node {
u_long id; //Rule的号码
u_char protocol; //协议类型
union {
struct {
u_long s_ip; //原IP
u_long s_mask; //掩码
u_short s_port; //原端口
u_long d_ip; //目的IP
u_long d_mask; //掩码
u_short d_port; //目的端口
};
struct {
u_long arp_spa; //IP地址 ;ULONG
u_char arp_sha[6]; //硬件地址
};
};
u_char direct; //方向
u_char action; //是否拦截
char sMemo[100];//备注
struct Fw_Rule_Node *next; //指向下个节点的指针
};
重新定义后,就可以在UTIL_AddOneRule函数加入ARP规则匹配,规则匹配是由UTIL_MatchRule和UTIL_MatchArpRule来检查,如果符合规则就通过,否则丢弃。本包包含passthru增加ARP拦截功能编译后的passthru驱动包,以及VC的passthru驱动源代码,需要用XPDDK或2003DDK编译,VC我不知道怎么编译,反正VC无法编译。本包还附带Delphi7使用passthru拦截ARP的一个简单例子,详见Button1的Click事件代码,IP和MAC地址根据情况需重新填写。另外,ARP和Rules结构对应Delphi7来说都是紧缩结构(Packed record),Delphi XE
居然不认,这里强调一下,Rules结构的尺寸是127,凡是不是这个尺寸的,passthru驱动不认账,无法调用,这个Rules结构到了Delphi XE 里尺寸居然是227,弄了半天,不知道何故,毅然删除Delphi XE,重新启用Delphi7,万恶
的Delphi XE!!!,害得我调试了半天。
Delphi 引用passthru实现防火墙
passthru 来自VC的FireWallDemo翻译,能实现拦截,但是目前不能实现日志监控。WinXP,Win7通过。
Delphi 应用 passthru 实现防火墙
Delphi 的passthru来自VC的FireWallDemo翻译,FireWallDemo本坛有下载,全部使用DeviceIOControl函数,该Delphi代码能进行拦截,XP,Win7环境通过,详见Button1的Click事件。驱动如何安装详见FireWallDemo说明。目前该代码无法实现FireWallDemo的日志功能。遗憾的是,我想拦截的ARP功能不在FireWallDemo里,哪位知道如何使用,请点拨一下。没分了,请施舍1分。
TMS Scripter Studio Pro..6.0.2.0.
TMS Scripter Studio Pro 6.0.2.0 专业版,附带Demos。
WinPCap包Delphi代码
WinPcap_3_0 alpha 3版本对应的Delphi代码,附带一个sniff工程,运行需安装WinPCap包
CheatEngine561 Delphi源代码
CheatEngine561 Delphi源代码