pb调用api函数.doc_第1页
pb调用api函数.doc_第2页
pb调用api函数.doc_第3页
pb调用api函数.doc_第4页
pb调用api函数.doc_第5页
已阅读5页,还剩144页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PB 如何把结构作为参数传递?2011-09-09 16:31:00|分类:PowerBuilder|举报|字号订阅目的:在自定义函数/事件中,参数为结构.传入后能进行下一步处理过程:1.定义结构体,全局结构或对象结构都可2.为结构体的成员变量赋值 stru_flmx lstru_flmx /申明结构变量lstru_flmx.vs_hykh = ag_hykhlstru_flmx.vs_lsdh = gvar.gs_mdidlstru_flmx.vdt_dtime = datetime(today(),now()lstru_flmx.vd_flje = ld_yfljelstru_flmx.vd_dyjf = ld_ykjflstru_flmx.vs_lry = gvar.gs_username3. 在自定义函数/事件中,参数为结构时,参数类型应为: PowerObject4.在自定义函数/事件如何引用传入的结构如果结构是全局结构,则在自定义函数/事件中引用message对象的PowerObjectParm属性如果是对象结构,则以参照以下:stru_flmx lstru_flmx /申明一个结构变量lstru_flmx = ag_stru /将参数ag_stru(结构)直接赋给lstru_flmxll_row = dw_3.insertrow(0)dw_3.setitem(ll_row,hykh,lstru_flmx.vs_hykh) /即达到从传入的结构参数取得值dw_3.setitem(ll_row,lsdh,lstru_flmx.vs_lsdh)dw_3.setitem(ll_row,dtime,lstru_flmx.vdt_dtime)dw_3.setitem(ll_row,flje,lstru_flmx.vd_flje)dw_3.setitem(ll_row,dyjf,lstru_flmx.vd_dyjf)dw_3.setitem(ll_row,lry,lstru_flmx.vs_lry)5.小结 在结构被赋值后引用时应判断下传入的结构是否有效 不用结构,用用户对象UserObject其实也很方便!(转)pb+api实际应用(一)2010-09-13 23:45:22|分类:PB学习资料|标签:pbapi实例|举报|字号订阅1、利用Api函数计算Windows从启动后所运行的总时间Function long GetTickCount() Library kernel32.dll /获取windows从启动开始的总微秒数窗口w_example的open事件:timer(0.05)/触发timer事件窗口的timer事件:long hour , minute ,secondhour = GetTickCount() 1000 60 60/获取小时数st_1.text = String(hour) + 小时minute = (GetTickCount() - hour * 60 * 60 * 1000) 1000 60/获取分钟数st_2.text = Str(minute) + 分钟second = (GetTickCount() - long(st_1.text) * 60 * 60 * 1000 - long(st_2.text) * 60 * 1000) 1000/获取总秒数st_3.text = String(second) + 秒钟2、GetSystemMetrics函数Function long GetSystemMetrics (long nIndex ) Lib “user32.dll”其中nIndex的不同取值可以使该函数实现不同的功能。例如返回Win桌面中各种显示单元的宽度和高度、是否安装鼠标、是否调换了鼠标左右键的定义等。当nIndex = 67(SM_CLEANBOOT)时,该函数的返回值表示Windows9x的当前运行模式。在以下的示例中我们可以看到GetSystemMetrics函数的用法和作用。 首先在窗口w_example中定义实例变量:Public Constant long SM_CLEANBOOT = 67 定义外部函数引用声明: Function long GetSystemMetrics (long nIndex ) Lib “user32.dll”在窗口w_example中添加static text控件st_1和commandbutton控件 Cb_1,设置如下代码: cb_1.clicked: choose case GetSystemMetrics(SM_CLEANBOOT) Case 0 st_1.text=“系统运行于正常模式” Case 1 st_1.text=“系统运行于安全模式” Case 2 st_1.text=“系统运行于网络环境下的安全模式” end choose3、获取磁盘分区大小(支持大的分区)type large_integer from structureunsignedlong lowpartunsignedlong highpartend type/定义能够保存64位整形的结构定义外部函数引用声明Function long GetDiskFreeSpaceExA(ref string lpRootPathName, ref large_integer lpFreeBytesAvailableToCaller,ref large_integer lpTotalNumberOfBytes, ref large_integer lpTotalNumberOfFreeBytes) Library kernel32.dllapi函数解析:lpRootPathName String,不包括卷名的磁盘根路径名lpFreeBytesAvailableToCaller LARGE_INTEGER,指定一个变量,用于容纳调用者可用的字节数量lpTotalNumberOfBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上的总字节数lpTotalNumberOfFreeBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上可用的字节数实现代码解析:public function double of_get_drive_totalspace (string as_drive);/*函数作用:获取指定的驱动器的空间大小 参数:as_drive string 驱动器名 返回值:real */Double ld_capacityany ia_passif right(as_drive,1): thenas_drive=as_drive+:end if/判断传递的驱动器参数的最后一个字符是否为:LARGE_INTEGER lngFreeCaller,lngTotal,lngTotalFree/定义结构的三个变量GetDiskFreeSpaceExA(as_drive, lngFreeCaller, lngTotal, lngTotalFree)/调用api函数获取对应的分区信息IF lngTotal.Highpart 0 THEN ld_capacity = ( lngTotal.Highpart * 1.0 * 4294967295 ) +lngTotal.LowPartELSE ld_capacity = lngTotal.LowPartEND IF/进行对应的结构变量转化为double类型并返回return ld_capacity4、用API函数控制光驱的开关使用API函数CDdoor 来控制光驱门的开和关程序十分简单,由于 CDdoor 函数自身包含了对异常错误的处理机制,因此这个程序的通用性很高,你可以把这段代码移植到你的程序中,实现某些多媒体播放器所常用的开关光驱的功能。以下是源代码:/-/ 利用API函数控制光驱的开和关/-/程序说明:/ 本例使用API函数 CDdoor 来控制光驱门的开和关/程序十分简单,由于 CDdoor 函数自身包含了对异常/错误的处理机制,因此这个程序的通用性很高,你可/以把这段代码移植到你的程序中,实现某些多媒体播/放器所常用的开关光驱的功能。/-说明:CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数定义外部函数引用声明:Declare Function long CDdoor( string lpstrCommand , string lpstrReturnString, long uReturnLength , long hwndCallback ) Libraray winmm.dll Alias for mciSendStringA 定义实例变量:boolean CDOpen /CDOpen用来标示光驱开与关的状态w_example的cb_1的clicked事件:/如果关闭则打开,并且按钮做相应变化If CDOpen = False Then CDdoor(set CDAudio door open, 0, 0, 0) CDOpen = True Cb_1.text = 点击关闭光驱Else/否则关闭 CDdoor(set CDAudio door closed, 0, 0, 0) CDOpen = False Cb_1.text = 点击打开光驱End Ifw_example的open事件: CDOpen = False CDdoor(set CDAudio door closed, 0, 0, 0)相关api函数解析:CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数,我们只须先加入如下的声明后就能引用这个API函数:Function long CDdoor( string lpstrCommand , /String,这是控制命令参数string lpstrReturnString , /String,这是返回值long uReturnLength, /Long,返回值长度参数long hwndCallback ) Librara y winmm.dll Alias for mciSendStringA引用的语法是CDdoor(set CDAudio door closed, 0, 0, 0)/用以关闭光驱门CDdoor(set CDAudio door open, 0, 0, 0)/用以打开光驱门程序解析:程序中使用了一个布尔型变量来标示当前光驱门开与关的状态。如果配合检测光驱是否存在的函数一起使用,此程序的通用性会更高。而关于检测驱动器信息的函数请参看 GetDriveType,GetLogicalDrives这两个api函数的用法。5、使用文件的默认的打开方式 许多应用程序都需要通过默认的打开方式来打开一些文档。在某些情况下,你的应用程序可能需要显示像HTML或者RTF这样的文件。但是我们如何知道哪个应用程序与这些文件建立了关联关系呢?幸好,Windows API提供给我们使文档显示在其默认的程序里的方法。我们可以通过Windows shell.方法使用ShellExecute API函数来加载文档。这个函数将自动的来判断文件的默认打开方式,并用默认的打开方式来开启文档。以下就是ShellExecute函数的声明:Function long ShellExecuteA (long hWnd As Long, string lpOperation , string lpFile , string lpParameters, string lpDirectory , long nShowCmd ) Library shell32.dllConstant long SW_SHOWNORMAL = 1Constant long SW_HIDE = 0我们将结合下面的例子来解释该API函数的主要参数的意义。string ls_tempsetnull(ls_temp)ShellExecute(handle(this), Open, c:mypage.html, 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 = 769Constant long WM_CUT = 768Constant long WM_PASTE =770然后,声明对SendMessage API的调用:Function long SendMessage (long hWnd, long wMsg , long wParam , long lParam ) Library user32.dllHWnd自变量能够接受消息发送的目的控件的句柄,而wMsg自变量会接受一个表明要被发送的是哪个对象的常数。WParam和lParam自变量被用来把其他信息同消息一起传递,但是不对WM_CUT、WM_COPY或者WM_PASTE使用。下面是从菜单点击事件调用SendMessage API的代码:m_Copy.Clicked:SendMessage(Me.ActiveControl.hwnd, WM_COPY, 0, 0)m_Cut.ClickedSendMessage(Me.ActiveControl.hwnd, WM_CUT, 0, 0)m_Paste.ClickedSendMessage(Me.ActiveControl.hwnd, WM_PASTE, 0, 0)这个技巧能够用于任何实现handle方法,并能够响应WM_CUT、WM_COPY和WM_PASTE消息的控件。还应该实现错误处理,以处理不带handle方法的控件。7、隐藏/显示开始菜单Function long FindWindow (string lpClassName, string lpWindowName ) Library user32.dll Alias for FindWindowA注释:寻找窗口列表中第一个符合指定条件的顶级窗口注释:lpClassName指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,注释:表示接收任何类注释:lpWindowName指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;注释:或设为零,表示接收任何窗口标题Function long FindWindowEx (long hWnd1 ,long hWnd2, string lpsz1 , string lpsz2 ) Library user32.dll Alias for FindWindowExA注释:在窗口列表中寻找与指定条件相符的第一个子窗口注释:hWnd1在其中查找子的父窗口注释:hWnd2从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索Function long ShowWindow(long hwnd , long nCmdShow ) Library user32.dll注释:控制窗口的可见性注释:hwnd窗口句柄,要向这个窗口应用由nCmdShow指定的命令注释:nCmdShow为窗口指定可视性方面的一个命令实现代码:cb_1.clicked:long Handle ,FindClassstring ls_tempsetnull(ls_temp)FindClass = FindWindow(Shell_TrayWnd, )Handle = FindWindowEx(FindClass, 0, Button, ls_temp)ShowWindow(Handle, 0)/隐藏开始菜单cb_2.clicked:long Handle , FindClassFindClass = FindWindow(Shell_TrayWnd, )Handle = FindWindowEx(FindClass, 0, Button, ls_temp)ShowWindow(Handle, 1)/显示开始菜单8、起用和禁止ctrl-alt-delFunction long SystemParametersInfo (long uAction , long uParam, Ref any lpvParam, long fuWinIni ) Library user32.dll Alias for SystemParametersInfoA注释:允许获取和设置数量众多的windows系统参数注释:uAction指定要设置的参数Constant long SPI_SCREENSAVERRUNNING = 97实现代码:起用ctrl-alt-del:integer ret As Integerboolean pOldret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0)禁止ctrl-alt-del:integer retboolean pOldret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, pOld, 0)9、隐藏和显示系统托盘/注释:隐藏系统托盘long FindClass, Handlestring ls_tempsetnull(ls_temp)FindClass = FindWindow(Shell_TrayWnd, )Handle = FindWindowEx(FindClass, 0, TrayNotifyWnd, ls_temp)ShowWindow(Handle, 0)/显示系统托盘/注释:隐藏系统托盘long FindClass, Handlestring ls_tempsetnull(ls_temp)FindClass = FindWindow(Shell_TrayWnd, )Handle = FindWindowEx(FindClass, 0, TrayNotifyWnd, ls_temp)ShowWindow(Handle, 1)10、显示/隐藏任务栏long FindClass, FindClass2 , Parent, Handlestring ls_tempsetnull(ls_temp)FindClass = FindWindow(Shell_TrayWnd, )FindClass2 = FindWindowEx(FindClass, 0, ReBarWindow32, ls_temp)Parent = FindWindowEx(FindClass2, 0, MSTaskSwWClass, ls_temp)Handle = FindWindowEx(Parent, 0, SysTabControl32, vls_temp)ShowWindow(Handle, 0)/显示任务栏long FindClass, FindClass2 , Parent, Handlestring ls_tempsetnull(ls_temp)FindClass = FindWindow(Shell_TrayWnd, )FindClass2 = FindWindowEx(FindClass, 0, ReBarWindow32, ls_temp)Parent = FindWindowEx(FindClass2, 0, MSTaskSwWClass, ls_temp)Handle = FindWindowEx(Parent, 0, SysTabControl32, vls_temp)ShowWindow(Handle, 1)/隐藏任务栏11、怎样确定系统是否安装了声卡? /API函数声明: Function long waveOutGetNumDevs () Library winmm.dll 代码如下: integer i i = waveOutGetNumDevs() If i 0 Then messagebox(声卡检测,你的系统可以播放声音!) Else messagebox(声卡检测,你的系统不能播放声音!) End If12、powerbuilder中如何使用未安装的字体?Function long AddFontResource(string lpFileName) Library gdi32.dll Alias for AddFontResourceAFunction long RemoveFontResource (string lpFileName ) Library gdi32.dll Alias for RemoveFontResourceA/增加字体:long lResultlResult = AddFontResource(c:myAppmyFont.ttf)/ 删除字体:long lResultlResult = RemoveFontResource(c:myAppmyFont.ttf)13、半透明窗体(win2000特有API)Function long SetLayeredWindowAttributes (long hwnd , long crKey , long bAlpha , long dwFlags ) Library user32.dll注释:具体可以使用的常量及其用法Constant long LWA_ALPHA=2 /注释:表示把窗体设置成半透明样式Constant long LWA_COLORKEY=1 / 注释:表示不显示窗体中的透明色实现代码:Function long GetWindowLong (long hwnd , long nIndex ) Library user32.dll Alias for GetWindowLongAFunction long SetWindowLong (long hwnd, long nIndex , long dwNewLong ) Library user32.dll Alias for SetWindowLongAFunction long SetLayeredWindowAttributes (long hwnd , long crKey , long bAlpha , long dwFlags ) Library user32.dllConstant long WS_EX_LAYERED = 32768Constant long GWL_EXSTYLE =-20Constant long LWA_ALPHA =2Constant long LWA_COLORKEY =1窗口w_example的open事件:long rtnrtn = GetWindowLong(handle(this), GWL_EXSTYLE) /注释:取的窗口原先的样式rtn = rtn + WS_EX_LAYERED /注释:使窗体添加上新的样式WS_EX_LAYEREDSetWindowLong(handle(thios), GWL_EXSTYLE, rtn )/ 注释:把新的样式赋给窗体SetLayeredWindowAttributes(handle(this), 0, 192, LWA_ALPHA)/注释:把窗体设置成半透明样式,第二个参数表示透明程度/注释:取值范围0-255,为0时就是一个全透明的窗体了14、使窗体右上角的X按钮失效外部函数声明Function long GetSystemMenu(long hwnd, long bRevert) Library user32.dll/函数功能/取得指定窗口的系统菜单的句柄。在powerbuilder,“系统菜单”的正式名称为“控制菜单”,即单击窗口左上角的控制框时出现的菜单/返回值/Long,如执行成功,返回系统菜单的句柄;零意味着出错。如bRevert设为TRUE,也会返回零(简单的恢复原始的系统菜单)/备注/在powerbuilder里使用:系统菜单会向窗口发送一条WM_SYSCOMMAND消息,而不是WM_COMMAND消息/参数表/hwnd - Long,窗口的句柄/bRevert - Long,如设为TRUE,表示接收原始的系统菜单Function long RemoveMenu(long hMenu, long nPosition, long wFlags) Library user32.dll/函数功能/删除指定的菜单条目。如删除的条目属于一个弹出式菜单,那么这个函数不会同时删除弹出式菜单。首先应该用GetSubMenu函数取得弹出式菜单的句柄,再在以后将其删除/返回值/Long,非零表示成功,零表示失败。会设置GetLastError/备注/强烈建议大家使用powerbuilder菜单的visible属性从菜单中删除条目,而不要用这个函数,否则会造成指定菜单中其他菜单条目的visible属性对错误的菜单条目产生影响/参数表/hMenu - Long,菜单的句柄/nPosition - Long,欲改变的菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零)/wFlags - Long,常数MF_BYCOMMAND或MF_BYPOSITION,取决于nPosition参数实现代码:w_example窗口的open事件:long R,mymenuMyMenu = GetSystemMenu(handle(this), 0)RemoveMenu(MyMenu, 96, R)/程序中用到了两个API函数GetSystemMenu、RemoveMenu,其中GetSystemMenu函数用来得到系统菜单的句柄,RemoveMenu用来删除指定的菜单条目,我们先来看看这个函数的声明和参数:Function long GetSystemMenu(long hwnd, long bRevert) Library user32.dllFunction long RemoveMenu(long hMenu, long nPosition, long wFlags) Library user32.dll其中各GetSystemMenu参数的意义如下表:参数 意义hwnd Long 系统菜单所在窗口的句柄bRevert Long 如设为TRUE,表示恢复原始的系统菜单返回值 Long 如执行成功,返回系统菜单的句柄;零意味着出错。如bRevert设为TRUE,也会返回零(简单的恢复原始的系统菜单)而RemoveMenu参数的意义如下表:参数 意义hMenu Long 菜单的句柄nPosition Long 欲改变的菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零)wFlags Long 常数MF_BYCOMMAND0或MF_BYPOSITION1024,取决于nPosition参数返回值 Long,非零表示成功,零表示失败然后就可以在程序中使用这两个函数了,我们在窗体的Form_Load()过程中加入如下代码:MyMenu = GetSystemMenu(handle(this),0)/得到系统菜单的句柄,handle(this)表示当前窗体的句柄RemoveMenu(MyMenu, 96, MF_BYCOMMAND)/移去“关闭”菜单项,96“关闭”菜单项的命令ID15、如何获得屏幕保护程序的密码/如果屏幕保护程序设置了密码,密码将被加密,然后写到注册表的“HKEY_CURRENT_USERControl PanelDesktopScreenSave_Data”位置。屏保密码的最大长度为128位。加密方式是将密码与一特定字符串异或后得到密文,经过参考有关资料,笔者利用VB成功地破解了屏保的密码。外部函数声明:Function long RegOpenKeyEx(long hKey, string lpSubKey, long ulOptions, long samDesired, long phkResult) Library advapi32.dll Alias for RegOpenKeyExAFunction long RegCloseKey(long hKey) Library advapi32.dllFunction long RegQueryValueEx(long hKey,string lpValueName, long lpReserved,long lpType,any lpData,long lpcbData) Library advapi32.dll Alias for RegQueryValueExAFunction long RegSetValueEx(long hKey, string lpValueNames, long Reserved,long dwType, any lpData, long cbData) Library advapi32.dll Aliasfor RegSetValueExA /以上api可以使用powerbuilder提供的注册表函数替代实例变量声明:/注释:加密和解密所用的字符串Constant string Key = 48EE761D6769A11B7A8C47F85495975F78D9DA6C59D76B35C57785182A0E52FF00E31B718D3463EB91C3240FB7C2F8E3B6544C3554E7C94928A385110B2C68FBEE7DF66CE39C2DE472C3BB851A123C32E36B4F4DF4A924C8FA78AD23A1E46D9A04CE2BC5B6C5EF935CA8852B413772FA574541A1204F80B3D52302643F6CF10FConstant long HKEY_CURRENT_USER = 2147483649Constant long REG_SZ = 1Constant long KEY_READ = &H20019窗口自定义函数:/注释:自定义函数,找到屏保密码Function string GetScreenSaverPwd()string EncryptedPassword ,DecryptedPassword,strRetVal,strreturnlong lngResult,lngHandle,lngcbData/注释:从注册表中读取已经加密的屏保密码RegOpenKeyEx(HKEY_CURRENT_USER, Control Paneldesktop, 0, KEY_READ, lngHandle)RegQueryValueEx(lngHandle, ScreenSave_Data, 0, lngType, ByVal strRetVal, lngcbData )strRetVal = Space(lngcbData)lngResult = RegQueryValueEx(lngHandle, ScreenSave_Data, 0, lngType, ByVal strRetVal, lngcbData)RegCloseKey (lngHandle)EncryptedPassword = strRetVal/注释:解密,得到密码If Len(EncryptedPassword) 1 ThenEncryptedPassword = Left(EncryptedPassword, Len(EncryptedPassword) - 1)/注释:每2位与Key进行异或运算,得到密码For i = 1 To Len(EncryptedPassword) Step 2 DecryptedPassword = wf_or(DecryptedPassword,wf_Xor(Mid(EncryptedPassword, i, 2),Mid(Key, i, 2)/这个是随便写的,可能有问题的:)Nextstr_return = DecryptedPasswordElsestr_return = End IfIf str_return = Then str_return = 未设置屏保密码。return str_return16、设置本地机器的时间外部函数引用声明:Function long SetSystemTime(stc_systemtime lpSystemTime) Library kernel32.dll结构声明:type stc_systemtime from structureinteger wyearinteger wmonthinteger wdayofweekinteger wdayinteger whourinteger wminuteinteger wsecondinteger wmillisecondsend type实现代码:public function boolean of_setsystemtime (datetime adt_datetime);stc_systemtime lstc_systemtimedate ld_datetime lt_timeld_date=date(adt_datetime)lt_time=time(adt_datetime)lstc_systemtime.wyear=year(ld_date)/设置结构变量的年lstc_systemtime.wmonth=month(ld_date)/设置结构变量的月lstc_systemtime.wday=day(ld_date)/)/设置结构变量的天lstc_systemtime.wdayofweek=daynumber(ld_date)/设置结构变量的星期数lstc_systemtime.whour=hour(lt_time)/设置结构变量的小时lstc_systemtime.wminute=minute(lt_time)/设置结构的秒数lstc_systemtime.wsecond=minute(lt_time)/设置结构的分钟数lstc_systemtime.wmilliseconds=0/设置结构的微秒数return setsystemtime(lstc_systemtime)0/返回是否设置成功end function17、调用API函数设计ABOUT窗口Windows操作系统的许多软件中都包含一个windows 风格的about 窗口,它向用户反映了当前系统的一些基本信息,其中显示有关windows 及其应用软件的版本、版权和系统的工作状态等信息。以下通过调用API 函数设计应用系统的ABOUT 窗口。外部函数引用声明:Function long GetWindowWord (long hwnd, long nIndex ) Library user32.dllFunction long ShellAbout (long hwnd, string szApp , string szOtherStuff, long hIcon) Library shell32.dll Alias for ShellAboutAFunction long ExtractIcon (long hinst, string lpszExeFileName, long nIconIndex ) Library shell32.dll Alias for ExtractIconAFunction long GetDiskFreeSpace (string lpRootPathName, long lpSectorsPerCluster, long lpBytesPerSector , long lpNumberOfFreeClusters , long lpTotalNumberOfClusters) Library kernel32.dll Alias for Ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论