摘要: 关于向Windows窗口发送Alt组合键的问题,这个真是经典问题啊,在网上找了一下,问的人N多,方法差不多,但就是没有很好解决问题。之前找到一个能正确发送的code:(Alt+A)PostMessage(hWnd,WM_SYSKEYDOWN,VK_MENU,0);PostMessage(hWnd,WM_SYSKEYDOWN,0x41,0);Sleep(50);PostMessage(hWnd,WM_SYSKEYUP,0x41,0);PostMessage(hWnd,WM_SYSKEYUP,VK_MENU,0);有人解释说,按下组合键的时候系统是发两条消息的但是看到Win32 SDK,感觉上就发 阅读全文
posted @ 2013-09-02 17:18 Max Woods 阅读(894) 评论(1) 推荐(0) 编辑
摘要: 最近发现手机的时间不是很准了,便到网上下了一个同步时间的小程序,简单了看了一下它的原理,是通过NTP协议来实现校时的,就顺便学习了一下NTP协议,用C#写了个简单的实现。NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP工作原理NTP的基本工作原理如下图所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10 阅读全文
posted @ 2013-09-02 16:17 Max Woods 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 已经进入Internet网络时代了,许多新出的软件都拥有网络功能。其实,在这些软件背后所依靠的技术基础就是一系列的Inernet网络协议标准,亦即TCP/IP系列协议。 下面本人简要介绍一下在Delphi环境下,直接采用winsock套接字编程,应用SNTP协议开发出具有网络时间校准功能的应用,以此来说明如何在编程实践中实现应用层网络协议,相信感兴趣的读者能从中举一反三。 一、程序原理: 1、 SNTP协议的运作机制 SNTP(简单网络时间协议)是在UDP协议基础上发展出来的应用协议,目前广泛应用于整个INTERNET上计算机时钟的同步,依据同步源的性能及网络路径的差异,提供1~50m... 阅读全文
posted @ 2013-09-02 16:15 Max Woods 阅读(603) 评论(0) 推荐(0) 编辑
摘要: Delphi新版本虽然集成了PngImage但是分割复制什么的却非常难用.稍微封装了一下.可以把一张PNG横向分割成N张.透明通道什么的都可以保持不变.typeTPngArray = array of TPngImage;procedure CopyPng(const Src: TPngImage; dest: TPngImage;const sOffset: Integer);vari, j, s: Integer;p1, p2: PByteArray;pa1, pa2: PByteArray;beginfor i := 0 to Src.Height - 1 dobeginp1 := Sr 阅读全文
posted @ 2013-09-02 09:45 Max Woods 阅读(860) 评论(0) 推荐(0) 编辑
摘要: RichEdit控件 SDK 参考手册摘要: 本文对Rich Edit控件底层消息机制进行了讲解,以期读者对Windows平台下的Rich Edit控件有一个更深入的认识,同时对于使用Win32 SDK进行开发的人员具有一定参考价值。因为文章的初衷是引领VB程序员通过Win32 API调用来扩展VB下的Rich Edit控件的功能,所以对于每个消息的详细说明和注意事项未作过多说明,感兴趣的朋友可以参考Visual Studio下的MSDN Library。关键字:Rich Edit Control、RTF、SDK、MSDN。一、引言Rich Edit控件是一个可用于输入、编辑、格式化、打印和保 阅读全文
posted @ 2013-09-02 09:36 Max Woods 阅读(957) 评论(0) 推荐(0) 编辑
摘要: {*******************************************************}{}{GDI+用PNG图片做半透明异型窗口}{}{版权所有(C)2008QQ:3150379}{}{*******************************************************}unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,GDIPAPI,GDIPOBJ,Menus,StdCtrls;typeTFor 阅读全文
posted @ 2013-09-02 09:31 Max Woods 阅读(465) 评论(1) 推荐(0) 编辑
摘要: Graphics 单元新增了 TWICImage 类, 该类的功能源于新增的 Wincodec.pas 单元.WIC 支持的图像有 BMP、PNG、ICO、JPEG、GIF、TIFF、HDP(HDP 是微软随 Vista 推出的新的图像格式).TWICImage 的大多功能都非常容易使用, 它最强大的功能是 ImagingFactory: IWICImagingFactory 属性, 这是个类工厂的接口.通过 TWICImage.ImagingFactory 获取类工厂后, 再调用 CreateBitmapFlipRotator 建立旋转变换接口(IWICBitmapFlipRotator). 阅读全文
posted @ 2013-09-02 09:23 Max Woods 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 同事演示了一个.NET的的PNG异形窗口.挺漂亮.于是也想用Delphi显摆一个.关于Delphi用PNG做异形窗口的资料有不少.都是用GDIPlus或者TPNGImage组件加载PNG图像做的.但是我很懒,不想引用的GDIPlus,也不想去找PNGImage下载.好在从Delphi2009开始Delphi中就收购了PNGImage,并集成到后继的版本中.Delphi2010又包装了微软的IWICImagingFactory接口,这样处理PNG的工作就交给操作系统去做了.函数很简单一共就几行,关键就是UpdateLayeredWindow.发现CodeGear真让我上火.他们收工了PNGIma 阅读全文
posted @ 2013-09-02 09:17 Max Woods 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 参考:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2190768Windows2000后,为了支持类似MAC界面的Alpha通道混合效果,提供了GDI+,提供了很多的界面功能函数,可以实现很好的界面效果。例如可以使用UpdateLayeredWindow来实现窗体的颜色透明。但是一旦Form被定义为利用LayeredWindow,窗口的绘图不再响应沿用多年的WM_Paint消息。UpdateLayeredWindow(hwnd:HWND;//窗口句柄hdcDst:HDC;//目标DCptDst:pPoint;//目标的TopLeftSize 阅读全文
posted @ 2013-09-02 09:15 Max Woods 阅读(950) 评论(0) 推荐(0) 编辑