首页 / 软件开发 / Delphi / Delphi中的SendKeys函数
Delphi中的SendKeys函数2010-11-23用过Visual Basic等的朋友们一定对其SendKeys函数非常熟悉。利用该函数可以把一个字符串发送到目标窗口(比如记事本)或控件(比如一个Edit控件)中,就好像是在目标窗口或控件中输入这个字符串一样。但是,在Delphi中却没有为我们提供这样的函数。其实,Borland的工程师们早就提供了一个方便的方法:在Delphi5.0企业版的安装盘的infoExtrasSendKeys文件夹中,有一个sndKey32.Pas文件,只需把该文件复制到Delphi的安装目录下Lib文件夹中,在工程中引用该文件后即可使用SendKeys函数.其中两个主要的函数为:SendKeys(KeyString:Pchar;Wait:Boolean):Boolean;AppActivate(WindowName:Pchar):Boolean;用法为:SendKeys函数向当前拥有焦点的窗口或控件发送字符串,KeySering为字符串的内容。Wait指示是否等待接收字符串的窗口或控件处理完毕后返回。一般设为False即可。例如:SendKeys("abcdefg",false);值得一提的是,SendKeys函数支持发送特殊字符和组合字符,例如方向键、Alt、Ctrl组合键。使用时,只需用规定的前缀指明即可。+为Shift,^为Ctrl,%为Alt。例如:"+monday " 意为发送Shift+m和onday"+(monday)"意为发送Shift+monday对于不可见字符(比如方向键、F1~F11、回车等),可用{}将其括起来。例如:"%{F4}"即发送Alt+F4的组合送给应用程序。更详尽的说明请参照SndKey32.pas文件中的注释。AppActivate函数的作用是将某个窗口设置为当前窗口。只需将该窗口的标题传过去即可。若成功将某个窗口激活,则返回值为True.例子:点击发送后,上面的Edit控件的内容会被发送到下面的Edit控件里面去。程序很简单,只要两个Edit控件和一个Button控件。