控制由Run运行的程序(简称Run程序)
在PB程序设计中可以用Run()来运行一些程序但Run程序无法与PB主程序协调工作若用户多次调用就会启动Run程序的多个实例主程序退出时Run程序依然运行可以用如下函数使它们协调工作
Function Ulong FindWindowA(Ulong classname String windowname) Library userdll
Function Long SetParent(Long childwin Long parentwin) Library userdll
() 使Run程序只运行一个实例
handle = FindWindowsA(nulwtitle)
//查找Run程序是否已经运行wtitle为Run程序的窗口标题
If handle > Then Return
//若已经在运行就返回
Run(c:\luhanchm)
//否则运行Run程序
() PB主程序退出时Run程序也关闭
Handle = FindWindowA(nulwtitle)
SetParent(handleHandle(w_main))
//使Run程序窗口成为PB主程序的子窗口
映射网络驱动器
若要在程序中把远程主机的资源映射到本地驱动器可以用如下函数
Function Long WNetAddConnectionA(String path String pwd String drv) Library mprdll
如下代码可以把远程主机Alexander上的共享文件夹My Documents映射到本地的J 盘
WnetAddConnectionA(\\ Alexander\ My DocumentsJ:) //参数为访问口令
它的作用相当于在DOS提示符下执行Net Use J: \\ Alexander\ My Documents
显示或隐藏Windows的任务栏
要显示或隐藏任务栏首先要得到它的窗口句柄任务栏是一个特殊的窗口它的窗口类为Shell_TrayWnd没有标题故只能用FindWindowEx函数来取得它的句柄
Function Long FindWindowEx(Long ph Long ch ref String cn ref
String wn) Library userdll
Function Long ShowWindow(Long hWnd Long nCmdShow) Library userdll
用ShowWindow来显示或隐藏窗口其第二个参数为表示隐藏为表示显示
handle = FindWindowEx( Shell_TrayWndwn) //wn为空串
ShowWindow(handle) //隐藏任务栏
如何将长文件名转换为短文件名
通过GetShortPathName函数可以把上文件名转换为格式其声明为
Function Long GetShortPathNameA(String lf ref String sf Long
buflen)
Library kerneldll
参数为长文件名参数为保存短文件名的缓沖区参数为缓沖区长度例如
GetShortPathNameA(C:\My Document\Powerbuilder编程实践Docsf)
\
//sf = Spcace()
如何在PB中实现延时
延时函数很有用PB虽然没有提供但可以通过Wind的Sleep函数来扩展
Function Long Sleep(Long ms) Library kerneldll
调用Sleep() //延时秒
如何在PB中播放音乐
PB没有提供任何多媒体函数要播放音乐只能通过Win API的PlaySound来实现
Function Long PlaySound(String Filename Int Mod Int Flags) Library
winmmdll
参数为wav文件名参数必须取参数取表示后台播放取表示循环播放因此取(=+)表示在后台循环播放
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
[] []