pb+api实际应用 联系客服

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

Function uint GetDriveTypeA(string lpRootPathName) LIBRARY \自定义用户函数

public function string of_get_drive_type (string as_rootpathname);/*函数作用:获取指定的驱动器的类型 参数:as_drive string 驱动器名 返回值:string */ string ls_DriveType

as_RootPathName=Left(as_RootPathName,1)+\CHOOSE CASE GetDriveTypeA(as_RootPathName) CASE 2

ls_DriveType=\可移动磁盘 CASE 3

ls_DriveType=\软驱 CASE 4

ls_DriveType=\网络驱动盘符 CASE 5

ls_DriveType=\光驱 CASE 6

ls_DriveType=\随机存储设备 CASE ELSE

SetNull(ls_DriveType) END CHOOSE

RETURN ls_DriveType end function

public function string of_get_drive_cdrom ();/*函数作用:获取光驱的驱动器名

返回值:string */

integer li_i,li_start,li_end string ls_CDRoms=\li_start=Asc(\li_end=Asc(\

FOR li_i=li_start TO li_end

IF of_get_drive_Type(Char(li_i))=\ls_CDRoms=ls_CDRoms+Char(li_i)

//调用自定义函数of_get_drive_type()并判断函数返回值,如是CDROM则退出循环 NEXT

RETURN ls_CDRoms end function

22、实现系统托盘

WINDOWS状态栏也称系统托盘,在WINDOWS9X中已有系统时钟、音量控制、输入法等程序在WINDOWS 的状态栏中设有图标,一些应用程序在安装完后也将它们本身的图标放入了状态栏中,如超级解霸、WINAMP等。通过在应用程序中有效地控制状态栏中的图 标,不仅可以使应用程序具有专业水准,也方便了用户的操作。VB做为一种使用很广的高级语言,实现将图标放入状态栏的功能并不困难,只要有效地利用一个 API函数 Shell_NotifyIcon和NOTIFYICONDATA数据结构就能达到这一目的,有关这两者的定义和使用在程序中有详细的注释,在此就不再详 述了。

下面的这个程序运行后,将窗口图标加入到了WINDOWS状态栏中,用鼠标右击该图标会弹出一个菜单,可实现修改该图标、窗口复位、最小化、最大化及关闭程序等功能。 实现步骤: 结构定义

Type NOTIFYICONDATA from structure

long cbSize //注释:该数据结构的大小

long hwnd //注释:处理任务栏中图标的窗口句柄 long uID//注释:定义的任务栏中图标的标识

long uFlags //注释:任务栏图标功能控制,可以是以下值的组合(一般全包括)

//注释:NIF_MESSAGE 表示发送控制消息; //注释:NIF_ICON表示显示控制栏中的图标;

//注释:NIF_TIP表示任务栏中的图标有动态提示。

long uCallbackMessage//注释:任务栏图标通过它与用户程序交换消息,处理该消息的窗口由hWnd决定

long hIcon //注释:任务栏中的图标的控制句柄 string szTip//注释:图标的提示信息 End Type

外部函数引用声明:

Function long Shell_NotifyIcon (long dwMessage,NOTIFYICONDATA lpData ) Library \实例变量定义:

Constant long WM_SYSCOMMAND = 274 Constant long SC_RESTORE = 61728

integer LastState //注释:保留原窗口状态 //注释:---------- dwMessage可以是以下NIM_ADD、NIM_DELETE、NIM_MODIFY 标识符之一

Constant long NIM_ADD =0 //注释:在任务栏中增加一个图标 Constant long NIM_DELETE =2 //注释:删除任务栏中的一个图标 Constant long NIM_MODIFY = 1//注释:修改任务栏中个图标信息

Constant long NIF_MESSAGE = 1// 注释:NOTIFYICONDATA结构中uFlags的控制信息

Constant long NIF_ICON = 2 Constant long NIF_TIP =4

Constant long WM_MOUSEMOVE = 512//注释:当鼠标指针移至图标上 Constant long WM_LBUTTONUP = 514 Constant long WM_RBUTTONUP =517 NOTIFYICONDATA myData

w_example窗口的open事件:

If this. WindowState = Minimized! Then LastState = Normal! Else

LastState = this.WindowState End If

myData.cbSize = 256

mydata.hwnd =handle(this) mydata.uID = 0

mydata.uFlags = NIF_ICON + NIF_MESSAGE + NIF_TIP mydata.uCallbackMessage = WM_MOUSEMOVE

mydata.hIcon = this.Icon//注释:默认为窗口图标 mydate.szTip = \提示\

Shell_NotifyIcon(NIM_ADD, myData) 窗口w_example的mousemove事件: choose case long (X)

Case WM_RBUTTONUP //注释:鼠标在图标上右击时弹出菜单 m_popup im_pop

im_pop=create m_popup im_pop.popmemu(x,y) destroy im_pop

Case WM_LBUTTONUP //注释:鼠标在图标上左击时窗口若最小化则恢复窗口位置

If this.WindowState = Minimized Then this.WindowState = LastState this.SetFocus End If end choose

窗口w_example的close事件:

Shell_NotifyIcon(NIM_DELETE, myData)// 注释:窗口卸载时,将状态栏中的图标一同卸载

23、获取文件的相关时间信息 实现步骤 定义结构

type stc_find_data from structure unsignedlong att stc_filetime c_time stc_filetime a_time stc_filetime w_time unsignedlong h_size unsignedlong l_size

unsignedlong dwreserved0 unsignedlong dwreserved1 character cfilename[260]

character calternatefilename[16] end type

type stc_filetime from structure long htime long ltime end type

定义外部函数声明

Function ulong GetFileAttributesA(string lpFileName) LIBRARY \

FUNCTION ulong FindClose(ulong hFindFile) LIBRARY \FUNCTION ulong FindFirstFile(ref string lpFileName,ref stc_find_data lpFindFileData) LIBRARY \