PB 常用函数与封装函数列表(十一、系统与环境相关)
十一、系统与环境相关
11.1 Yield 函数
功能将控制权转移给其它图形对象,包括非PB对象。该函数检测消息队列,如果有消息,就把消
息取出。利用该函数可以在执行耗时较长的操作时把控制权转让给其它应用。
语法
Yield()
参数
无
返回值
Boolean
如果在消息队列中提取到了消息,那么函数返回TRUE,否则返回FALSE
使用说明
正常情况下,PowerBuilder应用程序在执行一段代码(比如函数或事件处理程序)的过程中不响应用户的操作。
对耗时短暂的代码段来说,这种处理方式没有什么不妥的地方
但是,如果某个代码段的执行耗时较长,应用程序又希望为用户提供更多的控制权,那么需要在这段代码中插入Yield()函数,让用户能够进行其它操作,特别在循环执行的代码中更应该如此。
应用程序执行Yield()函数后,如果发现消息队列中存在消息,它将允许对象处理这些消息,处理之后,继续Yield()函数后面代码的执行。
因此,代码中插入Yield()函数将降低应用程序的运行效率
11.2 Clipboard 函数
提取或替换Windows系统剪贴板的文本内容。
语法
Clipboard ( { string } )
参数
string–>string类型,可选项,指定要复制到系统剪贴板上的文本。
如果剪贴板上已有内容的话,该文本将取代剪贴板的当前内容
返回值
String
行成功时,如果剪贴板上包含文本数据,那么函数返回剪贴板的当前内容
如果剪贴板上包含非文本数据(比如位图)或不包含任何数据,那么函数返回空字符串""
如果string参数的值为NULL,返回NULL
用法无论是否指定string参数,将返回剪贴板的当前内容
当指定string参数时,剪贴板的原有内容被string参数的值取代;
省略string参数时,仅仅得到剪贴板的内容
11.3 CommandParm 函数
得到应用程序运行时指定的命令参数
语法
CommandParm()
参数
无
返回值
String
成功时返回应用程序运行时的命令行参数,函数执行错误或没有命令行参数时函数返回空字符串""
11.4 DoScript 函数
执行AppleScript程序段,该函数只在Macintosh平台上有效
语法
DoScript ( script, result )
参数
script–>string类型,指定要运行的程序段(script) result–>string类型,由AppleScript程序段返回的结果信息或出错信息
返回值
Integer
返回由AppleScript返回的结果代码。
如果任何参数的值为NULL,函数返回NULL
11.5 GetApplication 函数
得到当前应用对象的句柄,这样你可以查询或设置应用对象的属性(通常用于编写通用代码)
语法
GetApplication ( )
参数
无
返回值
Application
返回当前应用对象的句柄
11.6 GetEnvironment 函数
得到操作系统、处理器、屏幕显示等与系统相关的信息
语法
GetEnvironment ( environmentinfo )
参数
environmentinfo–>Environment对象名,用于保存系统环境信息
返回值
Integer
成功时返回1,发生错误时返回-1
如果参数environmentinfo的值为NULL,函数返回NULL
11.7 GetFocus 函数
确定当前焦点位于哪个控件上
语法
GetFocus ( )
参数
无
返回值
GraphicObject
成功时返回当前得到焦点控件的引用,发生错误时返回无效引用
11.8 Post 函数
将指定消息加入到某个窗口的消息队列中,这个窗口既可以是PowerBuilder应用的窗口,也可以是其它应用的窗口
语法
Post( handle, messageno, word, long )
参数
handle–>long类型,指定窗口的系统句柄,将向该窗口邮寄消息 messageno–>UnsignedInteger类型,指定要邮寄的消息号 word–>long类型,指定与消息一起邮寄的word类参数值。如果messageno参数指定的消息不使用该参数,那么将这个参数的值设置为0 long–>long类型或string,指定与消息一起邮寄的long型参数值或字符串
返回值
Boolean
如果任何参数的值为NULL,函数返回NULL
11.9 Restart 函数
停止所有程序段的执行、关闭所有窗口、提交事务、断开与数据库的连接,然后重新启动应用程序
语法
Restart()
参数
无
返回值
Integer
成功时返回1,发生错误时返回-1
11.10 Run 函数
运行指定的应用程序
语法
Run ( string {, windowstate } )
参数
string–>string类型,指定要运行的应用程序的名称,其中可以包括路径以及相应的参数,就像在命令行中键入的那样
windowstate–>WindowState枚举类型,可选项,指定程序运行时的窗口状态
Maximized! - 最大化窗口
Minimized! - 最小化窗口
Normal! - 缺省值,正常窗口
返回值
Integer
成功时返回1,发生错误时返回-1
如果任何参数的值为NULL,返回NULL
使用说明
用Run()函数,应用程序能够启动操作系统中的任何程序。
当在Run()参数中指定了要启动应用程序的参数时,参数的意义、格式、个数等由具体的应用程序确定。
如果在Run()函数的string参数中指定了文件名但没有给出扩展名时,PowerBuilder认为该文件的扩展名为.EXE。
要运行扩展名不是.EXE的应用程序(比如.BAT, .COM, 或.PIF),必须在Run()函数的参数中指定文件的扩展名
11.11 Send 函数
向窗口发送指定的消息并立即执行相应的事件处理程序
语法
Send( handle, messageno, word, long )
参数
handle:long类型,指定窗口的系统句柄,将向该窗口发送消息 messageno:UnsignedInteger类型,指定要发送的消息号 word:long类型,指定与消息一起发送的word类参数值。如果messageno参数指定的消息不使用该参数,那么将这个参数的值设置为0 long:long类型或string,指定与消息一起发送的long型参数值或字符串
返回值
Long
成功时返回Windows系统调用SendMessage()的返回值,发生错误时返回-1
如果任何参数的值为NULL,函数返回NULL
使用说明
Send()函数用于向窗口发送非PB预定义事件的消息,这个窗口可以是PB应用的窗口,也可以是其它应用的窗口
Send()函数直接触发指定窗口相应的事件,执行事件处理程序后返回到调用应用中,这一点与Post()函数不
同,Post()函数把发送的消息放置在指定窗口消息队列的尾部,然后返回到应用程序中,它并不等待相应事件事件处理程序的执行。
因此,我们说Post()函数采用的是异步方式,Send()函数采用的是同步方式。
Send()函数的参数handle指定接收消息的窗口句柄,对PowerBuilder窗口来说,使用Handle()函数可以得到该句柄。
对其它应用程序的窗口来说,可以调用系统API函数查找窗口并得到相应窗口的句柄。
实际上,Send()函数把它的各个参数直接传送给Windows的系统调用SendMessage()。
在各种C++开发工具的WINDOWS.H文件中可以查到各消息编号。
如果应用程序要发送PowerBuilder定义事件(包括预定义事件和用户定义事件),那么使用TriggerEvent()函数既简单有方便。
当应用程序在long参数位置指定一个字符串时,Send()函数复制一个该字符串的副本,然后将副本的地址传送给指定窗口
11.12 ShowHelp 函数
显示应用程序帮助,该帮助使用Microsoft Windows帮助系统进行操作
语法
ShowHelp ( helpfile, helpcommand {, typeid } )
参数
helpfile–>string类型,指定帮助文件的名称 helpcommand–>HelpCommand枚举类型,指定显示帮助的格式 typeid参数 Keyword! - 转移到由指定关键字确定的主题 Topic! - 显示指定主题的帮助 typeid:可选项,指定帮助主题
返回值
Integer
成功时返回1,发生错误时返回-1。
如果任何参数的值为NULL,函数返回NULL
11.13 SignalError 函数
触发应用对象的SystemError事件,通常用于代码调试
语法
SignalError ( { number }, { text } )
参数
number–>integer类型,可选项,其值将保存到Error对象的number属性中 text–>string类型,可选项,其值将保存到Error对象的text属性中
返回值
Integer
成功时返回1,发生错误时返回-1