自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (26)
  • 收藏
  • 关注

原创 关于WaitForSingleObject

//这种情况一般用于2进程间有依附关系,类似于Form的ShowModal//但它的作用不仅仅在进程等待,我们常常用它来做线程同步 //该函数的功能为一直在等待Notepad执行,直到Notepad关闭为止function WinExecAndWait32(APath: PChar; ACmdShow: Integer; ATimeout: Longword): Integer;

2009-04-29 16:54:00 1879 2

原创 Delphi中如何进行BASE64解码

      用Delphi获取其它系统的数据时,由于一些敏感信息不能以明文的形式进行存储,所以在获取到数据后,数据一般都是密文!如何解密主要按照服务器端的加密顺序逆序进行解密!    一般情况下,服务器端对敏感信息都要先进行加密(使用某种加密算法如:BlowFish,AES等),而后对其进行Base64编码!如果要想解密,第一个步骤就是要在Delphi端我们就要先对其进行Base64解

2009-04-29 13:27:00 8642

原创 【容器+结构体】注意事项二

用无类型指针释放结构体,要特别注意! unit Unit2;interfaceuses Classes,SysUtils,Dialogs;type PStudent = ^TStudent; TStudent = packed record Name: String;//这里以String为例,众所周知,String为一个指针,不用Get

2009-04-28 22:07:00 1075

原创 【容器+结构体】注意事项一

//这里的List是一种容器,是一种泛指,可以是List、StringList、ThreadList、ObjectList等!//现以List为例做一个例子!unit StudentExample;interfaceuses Classes,SysUtils,Dialogs;type //定义结构体及其指针,定义指针目的在于把指针放到List容器中

2009-04-28 20:49:00 1440

原创 TStrings与Memo.Lines赋值的问题

//想实现在函数中生成Memo1的内容,而后赋给Memo.Lines//方法1:var s: TStrings;begin s := TStringList.Create; AddMemoData(s); Memo1.Lines := s; //进行对象复制,而不是简单的指针赋值{procedure TCustomMemo.SetLines(Valu

2009-04-28 16:53:00 3064

原创 了解运行时类型信息(RTTI)

 //注:此篇来自于bdmh的总结翻阅近期的帖子,发现类似如下的问题被提及多次:如何根据名称找到控件 如何根据名称找到对应的属性 如何根据名称执行某个方法或事件 那我们能不能做到呢,当然可以,那就让我们了解一下RTTI吧.运行时类型信(以下简称RTTI)是在运行时保存和检索对象和数据类型的手段.通过RTTI我们可以了解正在使用的对象或组件的信息,并对它们进行一些处理

2009-04-27 14:27:00 686

原创 如何获取外网IP

此内容摘自zuobaoquan的技术共享贴~http://topic.csdn.net/u/20090426/17/895a522b-3ca9-4b7b-baac-2f1b6f5c561a.html //原理为向whatismyip发送一次GET请求,whatismyip网站返回IP内容!//也可以自己做一个aspx页面,其内用Request.UserHostAddress来获取远端连

2009-04-27 13:36:00 3757

原创 Delphi安装问题

问题1:在Windows server 2003下安装好Delphi7后,在启动Delphi时总出现dclsite70.bpl出错,提示dclsite70不能加载,当忽略该错误后,打开IDE环境,在菜单项Project->Option点不开,提示dclsite70出错! 问题2:用Delphi开发了一个Windows 服务,放在Windows Server 2003下,总是启动失败

2009-04-27 13:08:00 1197

原创 [Windows Hook] 屏蔽键盘按键

以前一直以为全局钩子必须在DLL中创建,查了一下MSDN才发现,有4种钩子是在当前线程的上下文中创建即有全局钩子效果的!其中包括鼠标低级钩子与键盘低级钩子!为调这个,死了3次机......//该例程为在系统级屏蔽一些系统键、如WIN、TAB、CAP、POWER、SLEEP、HOME等!//屏蔽组合键下面例程不适用!(比如CTRL+ESC需要在钩子函数中用(p.vkCode = VK_ESC

2009-04-26 08:55:00 2641

原创 行列转置

Create table Class([Student] nvarchar(2),[Course] nvarchar(2),[Score] int)Insert Classselect N张三,N语文,78 union allselect N张三,N数学,87 union allselect N张三,N英语,82 union allselect N张三

2009-04-26 08:37:00 986

原创 如何使用户打不开任务管理器

前二天做程序修改某文件总是失败,查了半天才发现是因为另一个进程以读取的形式进行排它性使用这个文件!如果把任务管理器也以读写的形式打开,是不是另一个进程(用户操作)也就打不开了?  var Str:TStream;begin Str:=TFileStream.Create(c:/windows/system32/taskmgr.exe,fmOpenWrite);e

2009-04-26 00:17:00 550 1

原创 合并行数据

 有些人认为在数据库端实现这样的功能毫无意义,在程序中一个循环就搞定了,如果写在程序中会造成应用服务器的性能损失,可以把逻辑分布在多个应用服务器上,而数据库服务器只能有一个,不要给数据库服务器太大的压力! 在这里我只能说各有各的用途,看实际情况而定,有些功能是需要写在数据库端做集中处理的! if not object_id(Tab) is null drop table

2009-04-26 00:02:00 635

原创 字符串分割

 在正则满天下的今天,直接做字符串截取来实现字符串分割似乎有点土,所以先用正则来实现一下字符串分割。uses PerlRegEx;var reg:TPerlRegEx ; List:TStrings;begin List:=TStringList.Create; reg:=TPerlRegEx.Create(nil); try reg.

2009-04-25 23:21:00 2258

原创 线程【一】基础知识

线程调度宏观并行,微观串行(默认为单核)! 系统中同时存在很多线程,有系统线程,也有自己进程和其它进程的线程,都是由系统统一调度,当某个线程获得CPU时间片后才会真正执行。程序在创建线程后,如果没有执行Sleep、Wait等函数主动放弃时间片(多长时间内不参与时间片竞争),则该线程会继续执行,所以对于单核系统,可以说线程创建后不是立即开始执行的,对于多核系统,则有可能同一进程的多个线程在不

2009-04-25 21:53:00 616

原创 线程的常见问题

 主窗体 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,LongWaitTrd;type TForm1 = class(TForm) btnSetTask

2009-04-25 20:51:00 508

原创 线程【二】线程同步

我一般都用CreateEvent来实现线程同步!内容明天写!

2009-04-25 20:47:00 440 1

原创 线程【五】VCL下的线程类

在这里把网友常常搞不清楚的属性作用列出来:一、FreeOnTerminate用于表明线程执行完毕后是自动释放还是保留,默认为False二、Terminate该过程只是简单地设置线程类的Terminated标志,并不是真正的释放,这一点要格外注意!三、Synchronize该函数是同步方法,如果线程中有操作UI的语句时,需要把UI操作写成过程(无参数过程),放到该方法中!//

2009-04-25 20:05:00 493

原创 线程【四】线程内定时器

 在消息队列部分,我们已经知道消息泵是以线程为单位进行分离的!换句话说,有N个程序,都产生了相关事件,在系统消息队列中会根据线程来区分,当线程的消息泵从系统消息队列抽取消息时,会挑属于自己线程的消息。当我们创建一个工程时,IDE环境已经为我们生成了主线程的代码以及消息泵,而当我们自己创建一个Worker线程时,默认是没有消息泵的,如果想要在线程内接收消息,需要添加消息泵!消息泵的结

2009-04-25 20:02:00 1962

原创 注册系统热键

 这里介绍一下使用API函数创建系统热键!主要实现单个热键与复合热键的注册! unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm)

2009-04-25 19:38:00 676

原创 获取系统输入闲置时间

delphi编写指定时间不动鼠标将系统锁定/以及在不动的情况下隐藏鼠标 3秒种不动鼠标键盘看看效果。GetLastInputInfo:获取闲置时间;ShowCursor:设置鼠标状态; unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

2009-04-25 19:30:00 1184

原创 线程【六】线程安全退出

问题1:一般来说,要让你的线程能够尽快终止,必须在Execute方法中在较短的时间内不断地检查Terminated标志,以便能及时地退出。这是设计线程代码的一个很重要的原则!在这种情况下使用上述思路一般不会出什么问题!type TThread1 = class(TThread) private procedure Test(); protected p

2009-04-25 10:16:00 831 2

原创 字节数组与结构体的转换

  还是一个原则,在此不再详述!type PData=^TData; TData = packed record a: Integer; b: Word; end;var bs: array[0..5] of Byte; data: PData;begin FillChar(bs, Length(bs), 0); bs[

2009-04-25 10:02:00 2308 1

原创 字节数组与String类型的转换

还是本着上篇文章的原则,只不过在Delphi中string有点特殊!先了解一下Delphi中的string 1.string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节,变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度、引用计数等信息。

2009-04-25 09:47:00 14636

原创 字节数组与基础数据类型的转换

首先强调一点:任何数据在内存中都是线性存储的,归根结底都是由一个字节数组表示的!如:Integer占4个存储单元,32bit,在内存中他就是由一个长度为4的字节数组来表示!只不过在读取该类型时,系统帮我们根据不同的数据类型对数据进行捆绑读取(如果上学时学过汇编就可以想出,如果自己取的话需要把高地址的内容乘以某值后再加上低址的值)。值得注意的是:对于Delphi中的多维动态数组,不要用类

2009-04-25 09:21:00 1419

原创 Windows 消息【二】窗口函数

 前一篇文章讲到非队列消息会直接把消息Dispatch到窗口函数上,窗口函数长什么样?//就是一个大case分支//要想拦截消息,override窗口函数是一个办法!procedure TCustomForm.WndProc(var Message: TMessage);var FocusHandle: HWND; SaveIndex: Integer; Menu

2009-04-25 08:56:00 708

原创 编写dll时的内存分配策略

前一篇文章介绍了为何要共用内存管理器,有人要问可不可以在编写dll时更通用一些,可以兼顾其它编译器(如果是其它编译器的话,Delphi写的dll不能与其它语言共用内存管理器),采用一定的策略来避免在dll内创建RTL自动管理的数据类型做参数或返回值,这样其它非Delphi的开发语言也可以用了!完全可以!一般的策略如下:1.在主调函数中申请一块空间2.把这个空间的地址传送给dll

2009-04-25 08:01:00 1597 1

原创 Windows消息【一】 消息队列

消息队列看了MSDN后,以下是我个人的理解!消息能够被分为「队列化消息」和「非队列化消息」。队列化消息是指当程序发生某事件时,由Windows主动捕获并把消息放入系统消息队列中,而程序在运行时会初始化一个消息泵,该消息泵用于抽取系统消息队列中的与之相关的消息,并把之分发到相应窗口函数上!非队列化消息不走消息泵,而是直接分发到相应的窗口函数上!  队列化消息基本上是使用者

2009-04-25 07:40:00 734

原创 函数调用协议

函数调用协议指定了函数参数的传递方式以及栈管理方式。如果你这里不指定调用协议,编译器会用默认的调用协议。 结果可能和DLL 函数原先指定协议的不同,函数被调用时会直接导致程序崩溃。   Windows API 函数 GetProcAddress 被广泛用于取得函数指针地址。 我接触过的调用方式有 _cdecl , _stdcall,register _cdecl 是C语言默

2009-04-24 22:57:00 1288

原创 DLL的晚绑定与早绑定

调用DLL中的函数可分为早绑定与晚绑定!早绑定是指在编译期就已经确定函数地址!晚绑定是指在运行期动态加载dll,并根据查表的方式获取dll内exports函数的地址,由于早绑定比较简单,在此不再讲述,主要说晚绑定! //晚绑定,也就是动态调用外部函数主要用以下三个命令:  //LoadLibrary:获取 DLL  //GetProcAddress:获取函数  //FreeLibrar

2009-04-24 22:48:00 1567

原创 DLL何时需共享内存管理器

    Delphi创建DLL时,IDE自动生成的文档中写得很清楚,当在DLL中以动态数组或String做为参数或返回值时(即RTL自动维护的数据类型),请在每个工程文件的第一个单元加上ShareMem。这样就可以使宿主程序与DLL共享内存管理器了!这样的话,在发布程序时需要把borlndmm.DLL一同发布!问题1: 为何要加到工程文件的第一个单元?      对于DLL和主

2009-04-24 22:32:00 2299 1

原创 DLL调试

在调试DLL时,只要注意以下几点,一般均可以对DLL进行调试!现假设有宿主程序MyDllTest.exe与MyDLL.dll程序,要想调试MyDLL.dll,应注意以下几点: 1)MyDllTest.exe 所在目录中不能有 MyDll.dll2)MyDllTest .exe必须采用静态调用的方法调用 MyDll.dll 的导出函数3)进入 MyDll 工程,执行菜单“Run”

2009-04-24 22:26:00 827 1

APACHE 压力测试工具

APACHE 压力测试工具

2015-10-08

Magento No Flash Upload插件

Magento No Flash Upload插件,替换原有的Flash上传

2013-11-27

Magento一步式插件

Magento OneCheckout插件

2012-07-20

清理office的官方工具

当在使用office时,发现office是只读的,且提示文档所选区域已被锁定。这时需要清理office

2011-07-12

Minify Javascript or CSS

combine javascript or css 1.上传至网站根目录 2.运行http://xxx.xxx.com/mini/builder

2011-05-15

Example For thread(Delphi)

Example For thread(Delphi)

2011-02-17

QQ2010在Windows7下的运行库

QQ2010在Windows7下的运行库,不安装会提示错误

2011-01-07

用于解析HTML DOM的PHP组件

用于解析HTML DOM的PHP组件,解析起来非常方便

2010-12-21

winzip14.5注册机

有些linux主机不识别rar,或者用rar压缩的东西在linux上解压会出错。所以建议用winzip进行压缩。这是winzip14.5英文版的注册机

2010-11-19

IIS6与TOMCAT5.5整合工具

手工配置IIS6与TOMCAT5.5,太麻烦了,很容易出错,用这个工具就简易多了

2010-10-29

Delphi MD5

调用时用 MD5Print(MD5String(""))

2010-10-21

checkedmagento

用于检测主机是否符合安装magento的条件

2010-09-26

Magento 后台管理插件示例

Magento 后台管理插件示例! 注:USDP为命令空间

2010-07-16

BlowFish For php(Delphi版)

该算法与php中的BlowFish是一样的,如有需要的朋友请下载! 如果您是使用其它语言,可以将其写成DLL或Webservice

2010-01-13

跨进程访问VCL.rar

跨进程访问VCL,内有DEMO,请参阅...............

2010-01-11

一个用线程监控文件夹的小工具

一个用线程监控文件夹的小工具,内有DEMO

2010-01-11

dom4j.jar下载

导致Caused by: java.lang.NoClassDefFoundError: org/dom4j/DocumentException的原因是未加入dom4j包

2009-11-20

commons-collections.jar

提示Caused by: java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap时需要引用该包

2009-11-20

commons-pool-1.1.jar

在提示Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool信息时,请加入commons-pool-1.1.jar包

2009-11-20

sqljdbc.jar

连接SQL SERVER的jar包!!!!!!

2009-11-20

SmartPlugin(用于封闭DLL模态窗体,MDI窗体等等诸多功能)

详见自带DEMO: X:\Program Files\AthraSoft\SmartPlugin\v2.0.06\Samples 另:如果要破解的话,把下面的注册表信息生成reg文件,导入注册表中! REGEDIT4 [HKEY_LOCAL_MACHINE\Software\AthraSoft\Components\SmartPlugin] "Author"="Paulo Fran鏰" "Company"="AthraSoft Components" "Edition"="Professional" "Product Name"="SmartPlugin Engine for Borland Delphi" "Version"="2.0" [HKEY_LOCAL_MACHINE\Software\AthraSoft\Components\SmartPlugin\Licensing\2.0] "Count"="Site License (Platinum)" "DaysGranted"="0" "SerialKey"="5D534040-2A281418-554F383C-221F0C0B-414C4125-261EFF02-3B33252D-1C0408FD" "UserCode"="089" "UserName"="Brookline Technologies, Inc."

2008-12-12

监控文件夹内的文件的变化(Dir Watcher).

上一个资源发错了,不能修改,故重新上传了一个来修正一下! 监控文件夹内的文件的变化(Dir Watcher). 含一个Demo来介绍其功能

2008-12-12

ActiveX的溢出检测工具

ActiveX的溢出检测工具,用来检测ActiveX的接口函数是否存在溢出漏洞

2008-12-10

监控文件夹内的文件变化

用轮询线程对指定文件夹下的文件进行监控!

2008-12-10

BlowFish加密算法For Delphi7

BlowFish加密算法For Delphi7

2008-12-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除