DELPHI VS PASCAL
文章平均质量分 51
Microblue
吾生也有涯,而知也无涯!
新浪微博:http://t.sina.com.cn/1863986252
展开
-
Delph i判断IP地址是否正确
function IsValidIP(strIP: string): Boolean;var i, PartCount {用多少段,以点号分开}: Integer; Part: string;begin PartCount := 0; while strIP begin i := Pos('.', strIP); if i = 0 the原创 2012-04-11 18:18:55 · 1878 阅读 · 0 评论 -
Delphi 获得计算机名
{获得计算机版本}v := windows.GetVersion; if v >= $80000000 then strNT := 'Not' else strNT := 'Yes';{获得计算机名}function GetComputerName: string;var buffer: array[0..MAX_COMPUTERNAME_LENGTH +原创 2012-08-02 14:28:09 · 2466 阅读 · 0 评论 -
Delphi 文件夹操作
uses ShellApi//建立文件夹procedure TfrmMain.cxButton1Click(Sender: TObject);begin CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+ 'Microblue'),nil);end;//删除文件夹,放到回收站procedure TfrmMain.cxBut原创 2012-08-04 22:56:24 · 1199 阅读 · 0 评论 -
delphi 服务操作
unit Service; interface uses Windows,Messages,SysUtils,Winsvc,Dialogs; function StartServices(Const SvrName:String):Boolean; function StopServices(Const SvrName:String):Boolean;原创 2012-08-07 21:44:41 · 2568 阅读 · 0 评论 -
windows 7 系统进程服务详解(一)
windows 7已经发布有段时间了,相信很多网友都已经换上了传说中非常完美的win7系统.win7不仅继承而且还超越了vista的美观界面,性能优化方面也下足了功力.还拥有强大的win xp兼容性,这使得很多XP用户都愿意将系统升级为windows 7,它在资源利用方面优化也是可圈可点,不像VISTA,让人感觉“缓慢”和“急躁”。本文就来给大家详解下win7的进程和服务,大家可以根据自己的需转载 2012-08-08 00:38:32 · 2598 阅读 · 0 评论 -
windows 7 系统进程服务详解(二)
目标路径:\Windows\system32\svchost.exe -k LocalService Function Discovery Resource Publication 发布该计算机以及连接到该计算机的资源,以便能够在网络上发现这些资源。如果该服务被停止,将不再发布网络资源,网络上的其他计算机将无法发现这些资源。PnP-X和SSDP相关,如果无相关设备就关了吧。转载 2012-08-08 00:39:25 · 3072 阅读 · 0 评论 -
Delphi 编写系统服务
打开Delphi 7,新建,选择Other->Service Application 修改属性中Name和DisplayName,Name是Service的名称,决定着进程的标识,DisplayName是显示在操作系统里的服务面板里的服务的名称。例如我们将Name修改为NoticeService。 新建一个类,例如名字叫做TNoticeThread,继承自TThread,并重写p原创 2012-07-27 17:09:02 · 1876 阅读 · 1 评论 -
delphi 监控系统文件操作
你是否想为你的Windows加上一双眼睛,察看使用者在机器上所做的各种操作(例如建立、删除文件;改变文件或目录名字)呢? 这里介绍一种利用Windows未公开函数实现这个功能的方法。 在Windows下有一个未公开函数SHChangeNotifyRegister可以把你的窗口添加到系统的系统消息监视链中,该函数在Delphi中的定义如下: Function原创 2012-08-01 15:18:23 · 5398 阅读 · 4 评论 -
Delphi Windows API判断文件共享锁定状态
一、概述 锁是操作系统为实现数据共享而提供的一种安全机制,它使得不同的应用程序,不同的计算机之间可以安全有效地共享和交换数据。要保证安全有效地操作共享数据,必须在相应的操作前判断锁的类型,然后才能确定数据是否可读或可写,从而为开发出健壮的程序提供切实依据。 同样,在Windows中,文件可以共享模式打开,它也涉及到锁的操作问题。根据Windows中文件共享时加锁范围的大小,锁可分为全局原创 2012-08-18 15:58:30 · 2170 阅读 · 0 评论 -
delphi 获取北京时间
方法一:uses ComObj, DateUtils;function GetInternetTime: string;var XmlHttp: OleVariant; datetxt: string; DateLst: TStringList; mon: string; timeGMT, GetNetTime: TDateTime; s: string;原创 2012-08-20 17:25:38 · 7021 阅读 · 4 评论 -
Delphi 服务程序注册与卸载
uses winsvc;function InstallService(ServiceName, DisplayName, FileName: string): boolean;varSCManager,Service: THandle;Args: pchar;beginResult := False;SCManager := OpenSCManager(nil, ni转载 2012-07-16 16:57:13 · 3946 阅读 · 1 评论 -
delphi 注册表操作(读取、添加、删除、修改)完全手册
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。 一、创建和释放TRegistry对象 1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create; 2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegis转载 2012-07-16 16:14:29 · 33257 阅读 · 0 评论 -
delphi 进程间通信的两种方法
WIN下面进程间通信的最常用办法就是消息了.下面记录两种消息通信的方式: --------------------------------------------------------------------------------------------一.第一种办法,利用注册Windows全局的消息.并覆盖wndProc过程来监听消息处理.1. 发送消息方:原创 2012-04-30 22:12:53 · 9835 阅读 · 1 评论 -
Delphi 两个应用程序(进程)之间的通信
两个应用程序之间的通信实际上是两个进程之间的通信。由于本人知识有限,决定应用消息来实现。需要用到的知识:1.RegisterWindowMessage() //参数类型:pchar;返回值:LongInt;2.FindWindow(lpClassName, {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;原创 2012-04-30 22:14:21 · 4928 阅读 · 0 评论 -
delphi 关闭进程方法
Uses Windows, SysUtils, Tlhelp32 ; Function KillTask(ExeFileName: String): Integer ;//关闭进程 Function EnableDebugPrivilege:Boolean ; //提升权限Function FindProcessId(ExeFileN原创 2012-05-03 16:58:07 · 3125 阅读 · 0 评论 -
delphi raise 语句: 抛出异常
//例1:begin raise Exception.Create('抛出异常');end;//例2:begin raise Exception.CreateFmt('%s %d', ['错误代码:', 999]);end;//例3:var exc: Exception;begin exc := Exception.Create('发现异常');原创 2012-05-30 17:01:31 · 18215 阅读 · 0 评论 -
delphi SetThreadAffinityMask 函数
The SetThreadAffinityMask function sets a processor affinity mask for the specified thread.DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask);Par原创 2012-06-06 14:57:49 · 2504 阅读 · 0 评论 -
Delphi 函数传递参数的不同方式
在Delphi过程、函数中传递参数几个修饰符为Const、Var、Out。另一种不加修饰符的为默认按值传递参数。一、默认方式以值方式传递参数procedure TForm1.ProcNormal(Value: string);beginOrigNum:=Value+' Me';lblReturn.Caption:=OrigNum;//OrigNum为'Hello Me'原创 2012-05-22 09:48:52 · 1014 阅读 · 0 评论 -
Delphi 进程之间传递cmd参数
uses ShellAPI;{Unit1.pas}通过这个单元的Button,调用另一个实例;procedure TForm1.Button1Click(Sender: TObject);beginShellExecute(Handle, 'open', 'project2.exe', '2 Hello World', nil, SW_SHOW原创 2012-05-22 11:26:43 · 1683 阅读 · 0 评论 -
Delphi 取外网IP
近日偶要做个程序,需要获得外网IP,偶去网上找相关资料,发现都不尽如人意,有的只能获得本地网卡的IP,有的通过httpget控件获取IP,还有甚者做个asp再调用偶是个懒人,而且上面提到的方法,不是获取不了就是速度太慢或者是太麻烦,无意中发现有个系统提供的API,利用它能够获取适配器信息,其中就包括外网IP,下面把代码给大家,重点处我做了注释。注意: 程序必须运行在直接拨号联网原创 2012-06-29 14:27:45 · 4547 阅读 · 0 评论 -
Delphi 获取局域网内的机器名
unit main;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ImgList,ExtCtrls, ComCtrls;typeTNetResourceArray = ^TnetResource;TForm1 = class(原创 2012-06-29 15:54:37 · 3144 阅读 · 0 评论 -
delphi TWebBrowser 用法
WebBrowser1.GoHome; //到浏览器默认主页WebBrowser1.Refresh; //刷新WebBrowser1.GoBack; //后退WebBrowser1.GoForward; //前进WebBrowser1.Navigate('...'); //打开指定页面WebBrowser1.Navigate('about:blank'); //打开空页面//打开空页原创 2012-08-20 17:14:42 · 8605 阅读 · 0 评论 -
Delphi RegisterHotKey 设置系统热键
首先先贴一张热键表Symbolicconstant nameValue(hexadecimal)Keyboard (or mouse) equivalentVK_LBUTTON01Left mouse buttonVK_RBUTTON02Right mouse buttonVK_CANCEL03Cont原创 2012-08-22 15:33:26 · 6886 阅读 · 0 评论 -
delphi 获取临时文件夹路径
//声明:GetTempPath( nBufferLength: DWORD; {缓冲区大小} lpBuffer: PChar {缓冲区}): DWORD; {返回实际长度}//举例:var arr: array[0..MAX_PATH] of Char; num: DWORD;begin num :=原创 2012-09-20 16:44:17 · 5514 阅读 · 1 评论 -
Delphi 预编译指令
《Delphi下深入Windows核心编程》(附录A Delphi编译指令说明)Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有时也需要对编译器进行必要的设置。***************************************************************转载 2012-10-20 09:21:56 · 1592 阅读 · 0 评论 -
Delphi 根据经纬度计算地球上两点之间的距离
EARTH_RADIUS = 6378137.0; //单位Mfunction getRad(d: Double): Double;begin Result := d * PI / 180.0;end;function GetFlatternDistance(lat1, lng1, lat2, lng2: Double): Double;var f,原创 2012-10-31 10:43:33 · 3074 阅读 · 2 评论 -
Delphi 串口通信技术资料
一、总目录如下所示: 资料1.Delphi安装源文件(总共2个文件,大小:502MB) 资料2.Delphi串口通信源码(总共242个源码,大小:151MB) 资料3.Delphi串口通信技术文章(总共54篇文章,大小:4.76MB) 资料4.Delphi串口通信技术书籍(总共10本书籍,大小:142MB) 资料5.Delphi串口通信视频教程(总共1个文件,大小:4转载 2012-11-02 15:51:55 · 8952 阅读 · 32 评论 -
delphi wordapplication控件
一、Delphi程序启动Word采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为:首先使用GetActiveOleObject('Word.Application')判断当前内存中是否存在Word程序,如果存在,则直接连接,如果没有Word程序,则使用CreateOleObject('Word.Application')启动Word二、D转载 2012-11-03 11:41:34 · 3949 阅读 · 0 评论 -
delphi wordapplication控件
一、Delphi程序启动Word采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为:首先使用GetActiveOleObject('Word.Application')判断当前内存中是否存在Word程序,如果存在,则直接连接,如果没有Word程序,则使用CreateOleObject('Word.Application')启动Word二、D转载 2012-11-03 11:41:59 · 6553 阅读 · 1 评论 -
Delphi keydown与keyup、keypress的区别
Shift 是一个集合变量。type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);也就是说TShiftstate类型有ssShift, ssAlt, ssCtrl, ssLeft(鼠标左键), ssRight(鼠标右键), ssMiddle(鼠标中键), ssDoubl转载 2012-11-04 16:29:49 · 4209 阅读 · 0 评论 -
Delphi Excel 操作大全
(一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( 'Excel.Application' );1) 显示当前窗口:ExcelApp.Visible := True;2) 更改 Excel 标题栏:ExcelApp.Caption := '应用程序调转载 2012-11-06 18:55:45 · 5704 阅读 · 0 评论 -
Delphi IDHTTP用法详解
一、IDHTTP的基本用法IDHttp和WebBrowser一样,都可以实现抓取远端网页的功能,但是http方式更快、更节约资源,缺点是需要手动维护cook,连接等IDHttp的创建,需要引入IDHttpprocedure InitHttp();begin http := TIdHTTP.Create(nil); http.ReadTimeout :转载 2012-11-19 13:09:28 · 26401 阅读 · 0 评论 -
delphi 获取某个页面所有的链接
USER MSHTMLprocedure TfrmWebEmail.btn5Click(Sender: TObject);var Doc: IHTMLDocument2; Len: Integer; item: OleVariant; all: IHTMLElementCollection; I: Integer;begin Doc := ebdwbWeb.Doc原创 2012-09-17 14:51:04 · 2409 阅读 · 0 评论 -
Delphi 模拟网站验证码
function TfrmLabelPages.PwdImg(img: Timage): string;var I,j,k: Integer; vPoint: TPoint; vLeft: Integer; arrStr:array [1..36]of string ; strResult: string;begin strResult := ''; a原创 2012-09-08 10:10:20 · 2426 阅读 · 0 评论 -
delphi 浏览器操作
//获取默认internet浏览器function GetDefaultShellHTTP: string;var Reg: TRegistry; strWord: string;begin strWord := ''; Reg := TRegistry.Create; Reg.RootKey := HKEY_CLASSES_ROOT; if Reg.KeyExist原创 2012-09-02 02:30:48 · 2987 阅读 · 0 评论 -
Delphi 移除U盘的两种方法
1.CreateFile,DeviceIoControl,CloseHandle2.SetupDiGetClassDevs,SetupDiEnumDeviceInfo,CM_Get_DevNode_Status,CM_Request_Device_Eject我用了2种U盘试验: 一种是普通的U盘,一种是手机模拟的U盘方法1对两种U盘均无效,方法2对普通U盘有效,但对手机U盘无效原创 2012-08-23 00:54:57 · 2332 阅读 · 0 评论 -
Delphi WebBrowser右键的方法
uses MSHtml;//在控件标签additional中找到TApplicationEvents控件,拖到窗体上.在TApplicationEvents的OnMessage事件中加入以下代码://替换右键菜单procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);var原创 2012-09-03 14:39:27 · 3139 阅读 · 0 评论 -
Delphi EmbeddedWB 遍历Frames并执行子frame的js脚本
var wDoc:IHTMLDocument2; wc:IHTMLWindow2; Dispatch:IDispatch;begin //遍历emWb:TEmbeddedWB的Frames if emWb <> nil then begin wDoc := ((emWb.Document as IHTMLDocument2));原创 2012-09-04 15:23:27 · 3329 阅读 · 0 评论 -
Delphi destroy, free, freeAndNil, release 函数的区别
1、form.free直接释放资源后,调用OnDestroy事件,但是没有将form指针改为nil 2、form.release 等待资源不再使用后释放资源,同样不修改form指针为nil,所以在destroy中最好使用 release进行资源释放操作。 3、局部变量释放资源时,可以考虑用freeandnil()释放资源,这样效率会高些,能原创 2012-09-04 14:54:11 · 1593 阅读 · 0 评论 -
delphi 发送Windwos消息控制按钮
procedure TfrmMain.btnSendClick(Sender: TObject);var hCalc, h1: Cardinal;begin WinExec('calc', SW_SHOWNORMAL);//运行计算器 hCalc := FindWindow('SciCalc', nil); //查找计算器主窗口句柄,通过Spy++可查看到类名等原创 2012-09-04 15:49:11 · 2277 阅读 · 0 评论