
Delphi
Yoie
这个作者很懒,什么都没留下…
展开
-
DateTimePicker控件无法同时修改日期和时间的问题
Delphi中的DateTimePicker控件通过对Format属性的设定可以同时显示日期与时间:但是在编译后程序运行中却不能同时修改日期与时间,这个是由于控件中的Kind属性导致的。通过直接查看VCL的源码可以发现TDateTimeKind = (dtkDate, dtkTime);只定义了Date和Time,因此控件只能针对一种数据进行修改。如何才能同时修改,下面给出解决方案:添加DateTimePicker的OnChange方法procedure TWGSForm.dtp原创 2020-08-14 11:47:09 · 932 阅读 · 0 评论 -
TidHttp上传文件,PHP接收文件
delphi版本 10.2引用单元uses IdHTTP, IdMultipartFormData,IdGlobalProtocolsdelphi端上传代码function UploadFile(FilePath,Url:String):string;var Http:TidHttp; Resp:TStringStream; MutPartForm : TI...原创 2020-04-15 10:44:07 · 873 阅读 · 0 评论 -
Delphi 各种汇编位移
function ror(const Value: DWORD; ShiftValue: Byte): DWORD; overload;beginResult := (Value shl (8 * SizeOf(Value) – ShiftValue)) or(Value Shr ShiftValue);end;function ror(const Value: WORD; Shif...原创 2019-10-22 17:01:23 · 394 阅读 · 0 评论 -
Delphi 62进制转10进制
unit H62;interfaceuses SysUtils;function IntToH62(N: UInt64): string; //整数转到 62 进制字符串function H62ToInt(S: string): UInt64; //62 进制字符串转到整数implementationfunction _C2B(C: Char): Byte; inline;原创 2016-01-28 11:11:05 · 557 阅读 · 0 评论 -
Delphi xe10对json的解析应用
Json语句{"code":100,"state":"true","data":["hero","npc","pet"]}引用单元System.JSON类型说明//申明变量Root:TJSONObject;//赋值Root:= TJSONObject.ParseJSONValue(Trim(JsonStr)) as TJSONObject;获取Json对象数原创 2016-08-15 21:30:00 · 17000 阅读 · 2 评论 -
Delphi 执行控制台(console)程序获取返回结果
function GetRunConsoleResult(FileName:String;Visibility:Integer;var mOutputs:string):Integer;var sa:TSecurityAttributes; hReadPipe,hWritePipe:THandle; ret:BOOL; strBuff:array[0..255] of char;原创 2015-12-28 13:38:05 · 5930 阅读 · 3 评论 -
针对魔兽争霸3“萝莉”病毒的扫描工具开发
近期爆发的通过war3地图传播的一个蠕虫病毒“萝莉”,看了下分析报告,写了个扫描工具工具的实现流程如下:1、遍历指定目录寻找.w3x的地图文件2、解包地图文件,提取出war3map.j地图脚本文件3、分析脚本内是否存在病毒改写的脚本语句4、不做修正操作,直接报毒,因为就算修复也与原来的地图文件校验不同,所以还是用户自行去下载原版地图吧工具界面:工具下载:ht原创 2016-11-29 09:24:46 · 5967 阅读 · 1 评论 -
Indy10的使用例子
记录下,使用方法unit UMain;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdCustomTCPServer, IdTCPServer, IdBaseComponent, IdComponent,原创 2017-05-09 20:22:07 · 6394 阅读 · 1 评论 -
WIN10下Message无法接收的问题
在win10下有些消息无法被正常的接收,比如:WM_COPYDATA 数据传递WM_DROPFILES 文件拖拽这是因为系统为了安全屏蔽了,如果要打开这些消息需要用一个API开始ChangeWindowMessageFilterhttps://msdn.microsoft.com/en-us/library/ms632675ChangeWindowMessageFi原创 2017-09-11 09:30:11 · 4508 阅读 · 0 评论 -
Delphi10.2在linux下编译遇到的问题笔记
最近搞项目遇到的记录下留个档1、Linux下没有Ansistring变量类型,只能全局使用 string ,需要自己处理好 Ansi转Unicode的问题2、Linux 64位下的LongWord是8个字节的,坑挺大原因未知,不过官方文档中提过DescriptionPlatform-dependent unsigned integer type.LongWord represents a subs...原创 2018-07-02 12:52:59 · 1010 阅读 · 0 评论 -
Webbrowser控件屏蔽各种弹出
1、屏蔽弹出脚本错误控件Silent配置为true2、屏蔽alert弹出procedure TMainForm.wb1NewWindow2(ASender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);begin Cancel:=True;end;3、屏蔽页面关闭/刷新/跳转事件的弹出提示在执行动作前...原创 2018-08-30 14:07:31 · 2396 阅读 · 0 评论 -
Delphi 简体-繁体 转换函数
简体转繁体function GB2Big(GB: string): string;varLen: Integer;beginLen := Length(GB);SetLength(Result, Len);LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PChar(GB), Len, PChar(Result),原创 2015-08-13 14:01:21 · 2745 阅读 · 0 评论 -
添加自己的消息处理到目标窗体内
有时候注入到一个窗体进程内,原创 2014-10-28 21:14:30 · 630 阅读 · 0 评论 -
字符串转日期 遇到Is not a valid date and time的解决
varS:String;sDate:TDateTime;begin S:='2014-11-7 21:00:00'; ShortDateFormat := 'yyyy-MM-dd'; DateSeparator := '-'; sDate:=StrToDateTime(S);end;这样就可以解决了原创 2014-11-07 21:14:25 · 8326 阅读 · 1 评论 -
Delphi中WebBrowser控件打开Flash网站报“Invalid floating point operation”
大概的情况是,在使用一些浮点操作时,微软默认设计会抛出一系列的异常。这些异常按理说不应该阻止程序运行。但不知道为什么,Delphi默认是截获后又把异常抛了出来,被系统截获就会影响程序运行了。官方给的解决方法是,加一句 Set8087CW(Longword($133f));来关闭这个机制. 你可以加在form的OnCreate事件里。原创 2013-03-18 19:57:28 · 1309 阅读 · 0 评论 -
Delphi下程序内存泄露报告
引用单元:SystemDebugHook 与 ReportMemoryLeaksOnShutdown 都是 System 下的变量.DebugHook: 程序中母体中运行时, 此值是 1; 独立运行时, 它是 0.在程序的任何地方加上一句 ReportMemoryLeaksOnShutdown := True; 这样程序在关闭时可检测是否有内存泄原创 2013-03-18 19:39:50 · 1059 阅读 · 0 评论 -
使用INT3进行HOOK处理
原理:设置异常捕获,然后将需要HOOK的代码直接修改成INT3即可用的一个关键的API:SetUnhandledExceptionFilter//异常处理函数function MyInt3(CONST P:EXCEPTION_POINTERS):Integer;cdecl;var add:Pointer;begin OutputDebugString(PChar(inttohe原创 2013-03-21 17:25:59 · 2107 阅读 · 0 评论 -
Delphi 提高进程自身权限
有时候OpenProcess打开进程权限会不够,所以就要提升下自身进程的权限直接贴代码:// 参数:权限名称 ,返回: 成功返回TRUEFunction AdjustProcessPrivilege(Token_Name: Pchar): Boolean;var Token: Cardinal; TokenPri: TOKEN_PRIVILEGES; Pro原创 2013-04-04 14:29:08 · 2264 阅读 · 2 评论 -
Delphi 取汉字首字母
需求:获取中文字符串每个字的拼音首字母实现如下:function GetPy(const HZ: string): string;var HZ_bm1, HZ_bm2, I: Integer; int_char, tem_char, retu_char: string; uni_char: widestring; int_hex: Integer;begin uni_cha原创 2013-04-29 23:15:49 · 1011 阅读 · 0 评论 -
Delphi 共享内存的应用
//建立共享内存 参数1:共享内存名 参数2:块大小 返回 句柄Function CreateShareMem(pName:Pchar;Size:Cardinal):Cardinal;begin Result:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,Size,pName);end;//释放共享内存 参数:句柄Proced原创 2013-09-30 14:30:34 · 2496 阅读 · 0 评论 -
Delphi 使用管道进程间通讯
发起进程:创建管道,发送数据,接受反馈数据Const PipeName = '\\.\pipe\Test'; PipeSize = 1000; PipeTimeOut = 3000;procedure PipeServer();var Se:TSecurityAttributes; SPipeHandle:THandle; Buffer:Pchar;原创 2013-09-30 14:45:33 · 3117 阅读 · 0 评论 -
Delphi 执行Cmd下的命令
uses ShellAPI;var Command :String = 'dir c:';begin ShellExecute(Handle,nil,'cmd.exe',pchar(command),nil,SW_SHOW);end.原创 2013-10-06 13:47:20 · 5153 阅读 · 0 评论 -
delphi LDR断链 隐藏DLL
unit UHideModule;interfaceuses windows;type UNICODE_STRING = packed record Len:Cardinal; Max:Cardinal; Buffer:PWideChar end; PLIST_ENTRY = ^LIST_ENTRY; LIST_ENTRY = Packed re原创 2013-10-16 16:59:11 · 2651 阅读 · 0 评论 -
delphi用内存流方式获取页面验证码图片
procedure TForm1.Button2Click(Sender: TObject);varms:TMemoryStream;jpg:TJpegImage;vp:string;beginms:=TMemoryStream.Create;jpg:=TJpegimage.Create;vp:='http://ptlogin2.qq.com/getimage?aid=150001原创 2014-03-19 22:11:01 · 1525 阅读 · 0 评论 -
Delphi 自定义窗体类名
实现方法: 重载窗体CreateParams类在窗体公开类里申明:procedure CreateParams(var Parames:TCreateParams);override;procedure CreateParams(var Parames: TCreateParams);begin inherited CreateParams(Para原创 2013-03-18 19:43:52 · 2740 阅读 · 0 评论