pb+api实际应用 联系客服

发布时间 : 星期一 文章pb+api实际应用更新完毕开始阅读

Constant long SW_SHOWNORMAL = 1 Constant long SW_HIDE = 0

我们将结合下面的例子来解释该API函数的主要参数的意义。 string ls_temp setnull(ls_temp)

ShellExecute(handle(this), \\ls_temp, ls_temp, SW_SHOWNORMAL)

“handle(this)”:表示那个你将要作为父窗体的窗体句柄。

“Operatio”:该参数付值为“Open”,表示使用“打开”方法来操作该文档。 “File”:该参数表示要操作哪个文件,必须用该文件的完全路径表示。 “Parameters”:该参数表示打开文件时的命令行参数。 “Directory”:该参数用于指定该应用程序的默认目录。

“ShowCmd”:该参数将被设置为“SW_SHOWNORMAL”以打开文档。

6、使用SendMessage来实现剪切、复制和粘贴

调用SendMessage API就能够向任何带有handle属性的窗口或者控件发送Windows消息。很多控件内置有对特定消息的响应机制。使用这一机制,你在自己的powerbuilder应用程序里很容易就能够实现剪切、复制和粘贴的功能。 要使用这一技巧,你就需要声明用于剪切、复制和粘贴的常数: Constant long WM_COPY = 769 Constant long WM_CUT = 768 Constant long WM_PASTE =770

然后,声明对SendMessage API的调用:

Function long SendMessage (long hWnd, long wMsg , long wParam , long lParam ) Library \

HWnd自变量能够接受消息发送的目的控件的句柄,而wMsg自变量会接受一个表明要被发送的是哪个对象的常数。WParam和lParam自变量被用来把其他信息同消息一起传递,但是不对WM_CUT、WM_COPY或者WM_PASTE使用。 下面是从菜单点击事件调用SendMessage API的代码: m_Copy.Clicked:

SendMessage(Me.ActiveControl.hwnd, WM_COPY, 0, 0) m_Cut.Clicked

SendMessage(Me.ActiveControl.hwnd, WM_CUT, 0, 0)

m_Paste.Clicked

SendMessage(Me.ActiveControl.hwnd, WM_PASTE, 0, 0)

这个技巧能够用于任何实现handle方法,并能够响应WM_CUT、WM_COPY和

WM_PASTE消息的控件。还应该实现错误处理,以处理不带handle方法的控件。

7、隐藏/显示开始菜单

Function long FindWindow (string lpClassName, string lpWindowName ) Library \

注释:寻找窗口列表中第一个符合指定条件的顶级窗口

注释:lpClassName指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,注释:表示接收任何类

注释:lpWindowName指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;注释:或设为零,表示接收任何窗口标题

Function long FindWindowEx (long hWnd1 ,long hWnd2, string lpsz1 , string lpsz2 ) Library \注释:在窗口列表中寻找与指定条件相符的第一个子窗口 注释:hWnd1在其中查找子的父窗口

注释:hWnd2从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索 Function long ShowWindow(long hwnd , long nCmdShow ) Library \注释:控制窗口的可见性

注释:hwnd窗口句柄,要向这个窗口应用由nCmdShow指定的命令 注释:nCmdShow为窗口指定可视性方面的一个命令 实现代码:cb_1.clicked: long Handle ,FindClass string ls_temp setnull(ls_temp)

FindClass = FindWindow(\

Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 0)//隐藏开始菜单 cb_2.clicked:

long Handle , FindClass

FindClass = FindWindow(\

Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 1)//显示开始菜单

8、起用和禁止ctrl-alt-del

Function long SystemParametersInfo (long uAction , long uParam, Ref any lpvParam, long fuWinIni ) Library \\

注释:允许获取和设置数量众多的windows系统参数 注释:uAction指定要设置的参数

Constant long SPI_SCREENSAVERRUNNING = 97 实现代码:起用ctrl-alt-del: integer ret As Integer boolean pOld

ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0) 禁止ctrl-alt-del: integer ret boolean pOld

ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, pOld, 0)

9、隐藏和显示系统托盘 //注释:隐藏系统托盘

long FindClass, Handle string ls_temp setnull(ls_temp)

FindClass = FindWindow(\

Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 0) //显示系统托盘

//注释:隐藏系统托盘 long FindClass, Handle string ls_temp setnull(ls_temp)

FindClass = FindWindow(\

Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 1)

10、显示/隐藏任务栏

long FindClass, FindClass2 , Parent, Handle string ls_temp setnull(ls_temp)

FindClass = FindWindow(\

FindClass2 = FindWindowEx(FindClass, 0, \Parent = FindWindowEx(FindClass2, 0, \Handle = FindWindowEx(Parent, 0, \ShowWindow(Handle, 0)//显示任务栏

long FindClass, FindClass2 , Parent, Handle string ls_temp setnull(ls_temp)

FindClass = FindWindow(\

FindClass2 = FindWindowEx(FindClass, 0, \Parent = FindWindowEx(FindClass2, 0, \Handle = FindWindowEx(Parent, 0, \