摘要:
The Win32 Rundll and Rundll32 Interface Related TopicsMicrosoft Knowledge Base Article Q164787 Applies to: Windows95, Windows 98, Windows NT4 SummaryWin32 contains two command-line utility programs named Rundll.exe and Rundll32.exe that allow you to invoke a function exported from a DLL, either 16-b 阅读全文
摘要:
//VC++6外衣1OEPCODEFIVE:THEAD=($55,$8B,$EC,$6A,$FF,$68,$00,$00,$00,$00,$68,$00,$00,$00,$00,$64,$A1,$00,$00,$00,$00,$50,$64,$89,$25,$00,$00,$00,$00,$83,$EC,$68,$53,$56,$57,$58,$58,$58,$83,$C4,$68,$58,$67,$64,$A3,$00,$00,$58,$58,$58,$58,$8B,$E8,$E9,$07,$B9,$FE,$FF,$00,$00,$00,$00,$00,$00);//VC++6外衣2OEPC 阅读全文
摘要:
1 unit unit2; 2 3 interface 4 5 // 冒泡排序 6 procedure BubbleSort(var abc: array of Integer); 7 8 // 摇动排序 9 procedure ShakerSort(var abc: array of Integer); 10 11 // 梳子排序 12 procedure CombSort(var abc: array of Integer); 13 14 // 选择排序 15 procedure SelectionSort(var abc: array of Integer)... 阅读全文
摘要:
一、string转为ansistring1、直接赋值 (有警告)2、ansistring()类型强制转换。(无警告)二、ansistring 转为string1、直接赋值 (有警告)2、string()类型强制转换。(无警告)三、string 转为Tbytes1、bytes:= bytesof(str) 已转为ansi编码2、bytes:= widebytesof(str) UNICODE 编码四、ansistring 转为Tbytes1、bytes:= bytesof(str) ansi编码2、bytes:= widebytesof(string(str)) UNICODE 编码五、Tbyt 阅读全文
摘要:
longgetVideoLength(char*fileName){MCI_OPEN_PARMSmciOpenParms;MCI_STATUS_PARMSmciStatusParms;DWORDFlags;DWORDDeviceID;mciOpenParms.wDeviceID=NULL;mciOpenParms.lpstrElementName=fileName;Flags=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpenParms);if(!Flags){Flags=NULL;DeviceID 阅读全文
摘要:
很早以前写了一个刷卡程序,功能是定时监控读卡器,当发现有IC卡放到读卡器上后,自动识别出卡号,然后带着这个卡号搜索一个英文用户名和卡号的对照表,最后把英文用户名直接自动输入到当前光标所在的位置。本来程序一直用得好好的,可是最近遇到了一个新问题——因为用户名现在居然可以用中文了!所以这下麻烦大了……原先实现英文的自动输入,用的是keybd_event函数,直接模拟键盘事件。但是要输入中文,貌似没有输入法还是不行,难道还要我先用keybd_event调出输入法,然后输入拼音?这个思路想想就很恐怖,所以赶紧就上网搜解决方案去了。可是搜了一圈下来,只有寥寥几篇提到解决方案,虽然网上搜索结果众多,但是. 阅读全文
摘要:
最近接触到这个函数,因此了解了一下,总结一下列在这。我了解它的出发点是如何通过它向活动窗口输入字符,这是很多程序都有的功能(我猜Visual Assist X就用了这个功能)。根据MSDN,此函数模拟按键操作,将一些消息插入键盘或鼠标的输入流中,Windows对它进行处理,生成相应的WM_KEYDOWN或WM_KEYUP事件,这些事件与普通键盘输入一起进入应用程序的消息循环,它们不仅可以转换为WM_CHAR消息,还可以转换为其它(诸如加速键)等消息。使用它来发送字符消息,并没有看起来那么简单。这有两个需要考虑的问题:1. 输入法的转换。例如需要向活动窗口发送一些英文字符,我们可能想象这样来实现 阅读全文
摘要:
最近用delphi xe做了个东西,因为以前一直使用Delphi 7做开发,delphi 7 到delphi XE有了很大的变化,最大的变化就是对Unicode的支持,所以刚开始使用DELPHI XE时还有些不太习惯,尤其在字符串处理的时候。DELPHI XE 增加了UnicodeString 类型,这在Delphi 7中是没有的,默认的String字符串为UnicodeString,而String在Delphi 7中是AnsiString类型,在新版的DELPHI中,字符串的存储格式也发生了变化:在DELPHI7中,字符串的存储格式是这样子的:【引用计数位(-8byte)】【字符串长度(-4 阅读全文
摘要:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, uPSComponent, StdCtrls, uPSCompiler, uPSUtils, uPSRuntime;typeTTestFunction = function (Param1: Double; Data: string): LongInt of object;TForm1 = class(TForm)st: TPSScript;Button1: TButton;Butt 阅读全文
摘要:
摘自RemObjects Wiki本文提供RemObjects Pascal Script的整体概要并演示如何创建一些简单的脚本.Pascal Script包括两个不同部分:编译器 (uPSCompiler.pas)运行时 (uPSRuntime.pas)两部分彼此独立.可以分开使用,或通过TPSScript控件使用他们,这个控件定义在uPSComponent.pas单元,对这两个部分进行简易封装.要使用控件版本的Pascal Script,首先要将控件放在窗体或data module上,并设置script属性,调用Compile和Execute方法.编译的错误,警告,提示可在Compiler 阅读全文
摘要:
翻譯這篇文章源於我的一個通用工資計算平台的想法,在工資的計算中,不可避免的需要使用到自定義公式,然而對於自定義公式的實現,我自己想了一些,也在網上搜索了很多,解決辦法大致有以下幾種:1.自己寫代碼去解析公式。這種方法的缺點是,解析的代碼很難實現,如果公式的功能比較完整,如增加條件判斷或自定義函數。不亞於實現了一個簡單的語言編譯囂或解釋囂。所以,只能實現一些諸如加減乘除之類的簡單公式。2.打包成SQL傳給數據庫去執行。這顯然不是一種好辦法。而且需要與特定的數據庫和表結構進行適應。3.我想到在foxpro中有宏替換功能&,那不如就借用它的這個功能,即利用foxpro寫一個dll,在這個dl 阅读全文
摘要:
关于向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,感觉上就发 阅读全文
摘要:
最近发现手机的时间不是很准了,便到网上下了一个同步时间的小程序,简单了看了一下它的原理,是通过NTP协议来实现校时的,就顺便学习了一下NTP协议,用C#写了个简单的实现。NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP工作原理NTP的基本工作原理如下图所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10 阅读全文
摘要:
已经进入Internet网络时代了,许多新出的软件都拥有网络功能。其实,在这些软件背后所依靠的技术基础就是一系列的Inernet网络协议标准,亦即TCP/IP系列协议。 下面本人简要介绍一下在Delphi环境下,直接采用winsock套接字编程,应用SNTP协议开发出具有网络时间校准功能的应用,以此来说明如何在编程实践中实现应用层网络协议,相信感兴趣的读者能从中举一反三。 一、程序原理: 1、 SNTP协议的运作机制 SNTP(简单网络时间协议)是在UDP协议基础上发展出来的应用协议,目前广泛应用于整个INTERNET上计算机时钟的同步,依据同步源的性能及网络路径的差异,提供1~50m... 阅读全文
摘要:
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 阅读全文
摘要:
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控件是一个可用于输入、编辑、格式化、打印和保 阅读全文
摘要:
{*******************************************************}{}{GDI+用PNG图片做半透明异型窗口}{}{版权所有(C)2008QQ:3150379}{}{*******************************************************}unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,GDIPAPI,GDIPOBJ,Menus,StdCtrls;typeTFor 阅读全文
摘要:
Graphics 单元新增了 TWICImage 类, 该类的功能源于新增的 Wincodec.pas 单元.WIC 支持的图像有 BMP、PNG、ICO、JPEG、GIF、TIFF、HDP(HDP 是微软随 Vista 推出的新的图像格式).TWICImage 的大多功能都非常容易使用, 它最强大的功能是 ImagingFactory: IWICImagingFactory 属性, 这是个类工厂的接口.通过 TWICImage.ImagingFactory 获取类工厂后, 再调用 CreateBitmapFlipRotator 建立旋转变换接口(IWICBitmapFlipRotator). 阅读全文
摘要:
同事演示了一个.NET的的PNG异形窗口.挺漂亮.于是也想用Delphi显摆一个.关于Delphi用PNG做异形窗口的资料有不少.都是用GDIPlus或者TPNGImage组件加载PNG图像做的.但是我很懒,不想引用的GDIPlus,也不想去找PNGImage下载.好在从Delphi2009开始Delphi中就收购了PNGImage,并集成到后继的版本中.Delphi2010又包装了微软的IWICImagingFactory接口,这样处理PNG的工作就交给操作系统去做了.函数很简单一共就几行,关键就是UpdateLayeredWindow.发现CodeGear真让我上火.他们收工了PNGIma 阅读全文
摘要:
参考: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 阅读全文
摘要:
引 言:在日常中,我们一定使用过WINZIP、WINRAR这样的出名的压缩软件,就是我们开发软件过程中不免要遇到数据加密、数据压缩的问题!本文中就这一技术问题展开探讨,同时感谢各位网友的技巧,在我每次面对问题要解决的时候,是你们辛苦地摸索出来的技巧总是让我豁然开朗,问题迎刃而解。本篇文章主要是运用DELPH的强大的流处理方面的技巧来实现的数据加密压缩,并用于实际的软件程序开发中,将我个人的心得、开发经验写出来与大家分享。1、系统功能1)、数据压缩使用DELPHI提供的两个流类(TCompressionStream和TDecompressionStream)来完成数据的压缩和解压缩。2)、数据加 阅读全文
摘要:
快捷方式减少了系统的重复文件,是快速启动程序或打开文件或文件夹的方法,快捷方式对经常使用的程序、文件和文件夹非常有用。在Windows系统中,充斥着大量的快捷方式,那么如何操作这些快捷方式就是一个很头疼的问题,在Windows的编程中,无疑会经常碰到操作快捷方式文件的问题,例如为程序创建快捷方式,修改程序的快捷方式等等。为了操作快捷方式,本人封装了两个函数,而且给出了一个详细的例子。1.快捷方式文件的基本信息 快捷方式包含的信息有:目标文件名、程序运行时的参数、快捷键、运行窗口的状态、描述、工作目录(起始位置)、图标文件名和图标索引等等。我们在操作快捷方式时,就要考虑到这些信息。2.数据结.. 阅读全文
摘要:
Borland出品的Delphi,有着闪电般的编译速度,但是在界面控件使用较多、工程项目较大的时候,编译一个工程仍需要一段时间,打开庞大的Delphi IDE,也需要时间。其实,在一个工程开发结束,调试完成之后的Release编译,完全可以用命令行来执行,因为Delphi的编译器参数不像C++编译器那样复杂。笔者把Delphi联机手册中关于命令行编译(command-line compiler)的几篇主题作了翻译,希望对Delphi开发人员有帮助。目录1. Command-line compiler 命令行编译器2. Command-line compiler options 命令行编译器.. 阅读全文
摘要:
问题描述;获得flv视频的缩略图和视频时间长度谷歌了半天发现可以使用Ffmpeg获得视频的一些信息,先介绍一下FFMEPG这里简单说一下:FFmpeg是用于录制、转换和流化音频和视频的完整解决方案,一套领先的音/视频编解码类库。官方正式版ffmpeg不支持rmvb和rm格式. 不过有很多解决方法FFmpeg的官方网址是http://ffmpeg.mplayerhq.hu/。中文Wiki是http://www.ffmpeg.com.cn/,资料很多。㈠安装FFMEPG操作系统:centos6找了那么多安装FFMEPG的文章,基本上都是没有注释,需要安装那么多软件包,也不说明一下是干什么用的,纠结 阅读全文
摘要:
使用IDropTarget接口同时支持文本和文件拖放关于Windows的外壳扩展编程,拖放是比较简单的一种,在网上可以找到不少介绍这个技巧的文章。大部分是介绍使用MFC的COleDropTarget实现的, 我觉得一般使用COleDropTarget已经很好了,但是我习惯在一些程序模块中,完全的不使用MFC,比如纯SDK编程,还有用在ATL的时候,MFC是相当累 赘的。所以COleDropTarget在这个意义上讲不够完美。IDropTarget是系统留给支持拖放的客户程序的一个纯虚接口,事先没有对接口的任何函数进行实现,而是让用户通过实现接口函数来接管拖放的 结果。IDropTarget接口 阅读全文
摘要:
一、需求无论何时,当你在Explorer窗口中创建、删除或重命名一个文件夹/文件,或者插入拔除移动存储器时,Windows总是能非常快速地更新它所有的视图。有时候我们的程序中也需要这样的功能,以便当用户在Shell中作出创建、删除、重命名或其他动作时,我们的应用程序也能快速地随之更新。二、原理Windows内部有两个未公开的函数(注:在最新的MSDN中,已经公开了这两个函数),分别叫做SHChangeNotifyReGISter和SHChangeNotifyDeregister,可以实现以上的功能。这两个函数位于Shell32.dll中,是用序号方式导出的。这就是为什么我们用VC自带的Depe 阅读全文
摘要:
函数名称: CreateRemoteDll() 返加类型:BOOL 接受参数: DLL路径,注入进程ID 其完整代码如下: BOOL CreateRemoteDll(const char *DllFullPath, const DWORD dwRemoteProcessId)...{ HANDLE hToken; ...函数名称: CreateRemoteDll()返加类型:BOOL接受参数:DLL路径,注入进程ID其完整代码如下:BOOLCreateRemoteDll(constchar*DllFullPath,constDWORDdwRemoteProcessId){HANDLEhToke 阅读全文
摘要:
MSDN 和一些网站上的manifest 有问题 , 自己修改了一下加上Microsoft.VC80.DebugCRT 和 Microsoft.VC80.DebugMFC 就可以了。如果是release版需要自己改一下。 阅读全文
摘要:
Find out how you can include the manifest into a Delphi project to allow your application to share the same look and feel of Windows XP.More of this Feature•Download Demo ProjectJoin the Discussion"Post your questions, concerns, views and comments to this article..." Discuss!Related Resour 阅读全文
摘要:
XML example, from the OmniXML XPath demo: Harry Potter Learning XML Z OmniXML v lepso prihodnost 2006 Kwe sona standwa sam Try something like this:uses XMLDoc, XMLDom, XMLIntf; // From a post in Embarcadero's Delphi XML forum. function selectNode(xnRoot: IXmlNode;cons... 阅读全文
摘要:
DescriptionThis example illustrates the basic operations on an XML document.Codeprocedure CreateDocument;const CFilename = 'file.xml';var LDocument: IXMLDocument; LNodeElement, NodeCData, NodeText: IXMLNode;begin LDocument := TXMLDocument.Create(nil); LDocument.Active := True; { Define docum 阅读全文
摘要:
Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏. Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏.没有MS开发环境中的ShowInTaskBar属性.解决办法:1.重载窗口 CreateParams 方法以实现,ShowInTaskBar效果 procedure CreateParams(var Params: TCreateParams);override; procedure Tform1.CreateParams(var Params:TCreateParams); begin inherited CreatePar 阅读全文
摘要:
刚才看到了这篇东西《使窗口不在任务栏上显示(利用ITaskbarList接口)》,作者用ITaskList接口实现了隐藏窗口在任务栏按钮的功能,想起我好多年以前做的程序也有这样的功能,但是绝不是用这些接口之类的做的,只是一个API函数就搞定了(好像是SetWindowLong()中传个什么参数吧,真的想不起来了),可惜程序实在是找不到了,当然ITaskbarList的功能要稍许比以前的那个API强一些。觉得挺好玩,就用Delphi重新实现了一遍,把代码贴出来,以便今后做什么程序的时候还可以用。uses ..., ActiveX;type ITaskbarList = interface(IUn 阅读全文
摘要:
Option Explicit'拨号/断网Private Declare Function InternetDial Lib "wininet.dll" (ByVal hwndParent As Long, ByVal lpszConnectoid As String, ByVal dwFlags As Long, lpdwConnection As Long, ByVal dwReserved As Long) As LongPrivate Declare Function InternetHangUp Lib "wininet.dll" (B 阅读全文
摘要:
以前晒设备 APP,网页什么的都是平面截图,或者使用 PS 捣腾半天做出真实的使用场面。但现在我们可以通过Placeit by Breezi这个网站将自己的网站截图搬到 iPhone,iPad,iPad mini,Lumia,Galaxy,MBP 这些设备屏幕上,并配上第二人视角,效果酷炫,绝对的装逼。(via Lucius)也可以选择不上传截图,而是直接输入需要网站网址,它还可以识别到该网站移动设备上的真实效果,PS 什么的弱爆了,苦逼美工们,颤抖吧!用我的博客做测试效果如下: 阅读全文
摘要:
巴西插画家 Felipe Luchi 为 Go Outside 杂志创作了这一套精美的插画 (目前我只找到 3 张)。这些插画表达了画家自己所定义的现代数字化生活。就图片背后的深度而言,Massen 不发表任何评论。只觉得这图片创意很棒。特别是 iPhone 大房子。啧啧。遗憾是尺寸不够大,没法儿做壁纸。 阅读全文
摘要:
大家都知道,网线是我们上网最基本的硬件设施之一,也是最不起眼的设备。我们习惯于购买现成的即已经制作好的网线,很少关心网线到底是怎么做的,只知道网线必定由8根芯线构成,购买时看准8根芯线即可。难道实现数据传输一定要8根芯线?非也,其实4根芯线也能帮你完成数据的传输。优点1.制作简单、速度快。2.只用4根芯线,制作时不容易混淆,从而避免可能压制出错导致水晶头损坏。3.由于制作简单,可用于临时制作测试网络的跳线,对网管的帮助极大。缺点1.有时会出现传输不稳定的现象。2.不适用于大型网络。应用范围与8芯网线相比,4芯网线虽然看起来并没有突出的优势,但是在特定场合下却显得非常有用。比如我们在制作测试用的 阅读全文
摘要:
{$IF CompilerVersion >= 21.0}{$WEAKLINKRTTI ON}{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}{$IFEND} 阅读全文
摘要:
在一个局域网中,许多系统都要求每台计算机能够保持时间的一致性,WIN2000系统提供了与主域服务器时间同步功能,即工作站只要登录到主域服务器,工作站系统的时间自动与主域服务器时间一致,但接下来的问题是我们如何使主域服务器的时间同步世界标准时间。如要获得世界标准时间,比较精确的做法是使用GPS卫星时钟获得毫秒级精度的标准时间,但这是要money的哦。如果我们在时间精度上只需要秒级的,又能够连接到Internet,则我们可以利用Internet上的标准时间服务器获得标准时间。事实上在Internet上有三个不同的时间服务,每一个都由Request for Comment(RFC)定义为Intern 阅读全文