国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

powerbuilder中API應用10則

2024-07-21 02:10:03
字體:
來源:轉載
供稿:網友
 
1. 如何使pb窗口總在最上層

通過setwindowpos函數吧窗口的顯示層次修改為hwnd_topmost,就可以使指定窗口永遠不會被其它窗口覆蓋,該函數聲明為:

function long setwindowpos(long hwnd, long ord, long x, long y, long

dx, long dy, long uflag) library “user32.dll”

參數1為要頂層顯示的窗口句柄,參數2指定顯示的層次,參數7為附加選項,其余

參數指定窗口位置和大小,均可忽略。在窗口的open或activate事件中加入如下

函數調用:

setwindowpos(handle(this),-1,0,0,0,0,3)

參數2取-1表示在最頂層顯示窗口,取1表示在最底層顯示;最后一個參數若取1,

表示窗口大小保持不變,取2表示保持位置不變,因此,取3(=1+2)表示大小和

位置均保持不變,取0表示將窗口的大小和位置改變為指定值。

 

2. 在pb中如何獲得光盤盤符

通過getdrivetype函數可以獲取驅動器(如:軟驅、硬盤、光驅、網絡映像驅動

器等)的信息,該函數聲明為:

function unit getdrivetypea(string drive) library “kernel32.dll”

參數為一個盤符(如“c:”),返回值:1表示未知,2表示軟驅,3表示本地硬盤

,4表示網絡驅動器,5表示光驅。因此如下代碼可以獲得光盤的盤符:

for i=asc(‘d’) to asc(‘z’)

//列舉所有可能的cdrom的驅動器

if getdrivetypea(char(i)+”:”) = 5 then

//若找到cdrom

messagebox(“cdrom”,char(i)+”:”)

//顯示光盤盤符

exit //退出循環

end if

next

 

3. 在pb中如何獲取目錄信息

(1) 獲取當前目錄。通過getcurrentdirectory函數可以獲取當前目錄,該函數

聲明為:

function ulong getcurrentdirectory(ulong buflen,ref string dir)

library “kernel32.dll”

參數2為接受當前目錄的字符緩沖區,前面必須加ref表示地址引用;參數1用來指

定字符緩沖區的長度。調用過程為:

string curdir

curdir=space(256)

//為字符緩沖區開辟內存空間

getcurrentdirectory(256,curdir)

messagebox(“當前路徑”,curdir)

(2) 獲取windows及系統目錄。要用到getwindowsdirectory和getsystemdirec

tory兩個函數,須作如下聲明:

function uint getwindowsdirectorya(ref string dir,uint buflen)

library kernel32.dll”

function uint getsystemdirectorya(ref string dir,uint buflen)

library "kernel32.dll”

 

4. 在pb中如何注銷當前用戶、關閉計算機、重啟計算機

通過exitwindowsex函數可實現這三個功能,首先作如下聲明:

function long exitwindowsex(long uflag, long nouse) library "user32.dll”

參數2保留不用,可取0;參數1取0可以注銷當前用戶,取1可以關閉計算機,取2

可以重啟計算機,其值再加4表示強制結束“未響應”的進程。

 

5. 控制由run運行的程序(簡稱run程序)

在pb程序設計中,可以用run()來運行一些程序。但run程序無法與pb主程序協調

工作,若用戶多次調用,就會啟動run程序的多個實例,主程序退出時,run程序

依然運行。可以用如下函數使它們協調工作:

function ulong findwindowa(ulong classname, string windowname)

library "user32.dll”

function long setparent(long childwin, long parentwin) library "user32.dll”

(1) 使run程序只運行一個實例

handle = findwindowsa(nul,wtitle)

//查找run程序是否已經運行,wtitle為run程序的窗口標題

if handle > 0 then return

//若已經在運行就返回

run(“c:/luhan.chm”)

//否則運行run程序

(2) pb主程序退出時,run程序也關閉

handle = findwindowa(nul,wtitle)

setparent(handle,handle(w_main))

//使run程序窗口成為pb主程序的子窗口

 

6. 映像網絡驅動器

若要在程序中把遠程主機的資源映像到本地驅動器,可以用如下函數:

function long wnetaddconnectiona(string path, string pwd, string drv)

library “mpr.dll”

如下代碼可以把遠程主機alexander上的共享文件夾my documents映像到本地的j

盤:

wnetaddconnectiona(“// alexander/ my documents”,””,”j:”) //參數2

為訪問口令

它的作用相當于在dos提示符下執行:net use j: // alexander/ my documents

 

7. 顯示或隱藏windows的任務欄

要顯示或隱藏任務欄,首先要得到它的窗口句柄。任務欄是一個特殊的窗口,它

的窗口類為:shell_traywnd,沒有標題,故只能用findwindowex函數來取得它的

句柄:

function long findwindowex(long ph, long ch, ref string cn, ref

string wn) library “user32.dll”

function long showwindow(long hwnd, long ncmdshow) library “user32.dll”

用showwindow來顯示或隱藏窗口,其第二個參數為0表示隱藏,為5表示顯示:

handle = findwindowex(0,0,” shell_traywnd”,wn) //wn為空串

showwindow(handle,0) //隱藏任務欄

 

8. 如何將長文件名轉換為短文件名

通過getshortpathname函數可以把上文件名轉換為8.3格式,其聲明為:

function long getshortpathnamea(string lf, ref string sf, long

buflen)

library “kernel32.dll”

參數1為長文件名,參數2為保存短文件名的緩沖區,參數3為緩沖區長度。例如:

 

getshortpathnamea(“c:/my document/powerbuilder編程實踐.doc”,sf,256)

/

//sf = spcace(256)

 

9. 如何在pb中實現延時

延時函數很有用,pb雖然沒有提供,但可以通過wind32的sleep函數來擴展:

function long sleep(long ms) library “kernel32.dll”

調用:sleep(1000) //延時1秒

 

10. 如何在pb中播放音樂

pb沒有提供任何多媒體函數,要播放音樂只能通過win32 api的playsound來實現



function long playsound(string filename, int mod, int flags) library

“ winmm.dll”

參數1為wav文件名,參數2必須取0,參數3取1表示后臺播放,取8表示循環播放,
因此取9(=1+8)表示在后臺循環播放。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台南县| 元氏县| 札达县| 景宁| 新安县| 靖江市| 庆云县| 汕头市| 吉安市| 凌云县| 札达县| 星子县| 手游| 满洲里市| 郁南县| 汕头市| 邯郸市| 常州市| 通道| 茌平县| 承德县| 汤原县| 莆田市| 军事| 呼玛县| 皮山县| 鹤庆县| 阜平县| 南汇区| 望奎县| 赣州市| 瓦房店市| 曲阳县| 德江县| 夏邑县| 临沧市| 青浦区| 盱眙县| 盱眙县| 额济纳旗| 分宜县|