调用API函数设计ABOUT窗口

2016-02-19 18:28 14 1 收藏

下面请跟着图老师小编一起来了解下调用API函数设计ABOUT窗口,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

Windows98系统的许多软件中都包含一个windows风格的about窗口,它向用户反映了当前系统的一些基本信息,其中显示有关windows及其应用软件的版本、版权和系统的工作状态等信息。笔者用VB6.0通过调用API函数设计应用系统的ABOUT窗口。
  
  1.建立含有如下控件的窗体:
  
  控件NAMECAPTION
  窗体FORM1用VB6.0设计ABOUT窗口命令按钮COMMAND1关于销售管理系统
  
  2.程序清单:
  
  PrivateDeclareFunctionGetWindowWordLib"user32"
  (ByValhwndAsLong,ByValnIndexAsLong)AsInteger
  
  PrivateDeclareFunctionShellAboutLib
  "shell32.dll"Alias"ShellAboutA"(ByValhwndAsLong,
  ByValszAppAsString,ByValszOtherStuffAsString,
  ByValhIconAsLong)AsLong
  
  PrivateDeclareFunctionExtractIconLib
  "shell32.dll"Alias"ExtractIconA"(ByValhinstAsLong,
  ByVallpszExeFileNameAsString,ByValnIconIndexAs
  Long)AsLongPrivateDeclareFunctionGetDiskFreeSpace
  Lib"kernel32"Alias"GetDiskFreeSpaceA"(ByVal
  lpRootPathNameAsString,lpSectorsPerClusterAsLong,
  lpBytesPerSectorAsLong,lpNumberOfFreeClustersAs
  Long,lpTotalNumberOfClustersAsLong)AsLongPrivate
  DeclareFunctionGetDriveTypeLib"kernel32"Alias
  "GetDriveTypeA"(ByValnDriveAsString)AsLong
  
  PrivateDeclareSubGetSystemInfoLib"kernel32"
  (lpSystemInfoAsSYSTEM_INFO)PrivateDeclareFunction
  GetSystemMetricsLib"user32"(ByValnIndexAsLong)As
  Long
  
  PrivateConstGWL_EXSTYLE=(-20)
  PrivateConstGWL_STYLE=(-16)
  PrivateConstGWL_WNDPROC=(-4)
  PrivateConstGWL_HINSTANCE=(-6)
  PrivateTypeSYSTEM_INFO
  dwOemIDAsLong
  dwPageSizeAsLong
  lpMinimumApplicationAddressAsLong
  lpMaximumApplicationAddressAsLong
  dwActiveProcessorMaskAsLong
  dwNumberOrfProcessorsAsLong
  dwProcessorTypeAsLong
  dwAllocationGranularityAsLong
  dwReservedAsLong
  EndType
  PrivateConstSM_CXSCREEN=0
  PrivateConstSM_CYSCREEN=1
  
  PrivateSubCommand1_Click()
  DimhinstAsLong
  DimiconsAsLong
  DimaboutsAsLong
  DimdispxAsString
  DimdispyAsString
  DimcpsAsString
  Dimspace1AsString
  Dimspace2AsString
  hinst=GetWindowWord(Me.hwnd,GWL_HINSTANCE)
  icons=ExtractIcon(hinst,"d:fpw26foxprow.exe",0)
  DimsysinfoAsSYSTEM_INFO
  Dimcls1AsLong
  Dimcls2AsLong
  DimsecsAsLong
  DimbytesAsLong
  DimbuffsAsString
  buff="C:"
  x=GetDriveType(buffs)
  x=GetDiskFreeSpace(buffs,secs,bytes,cls1,cls2)
  cls1=cls1*secs*bytes
  cls2=cls2*secs*bytes
  space1="C驱动器总共容量:" Format$(cls2/1024,"#,#") "千字节"
  space2="C驱动器可用容量:
  " Format$(cls1/1024,"#,#") "千字节"
  x=GetSystemMetrics(SM_CXSCREEN)
  dispx="显示器分辨率:" Str$(x)
  x=GetSystemMetrics(SM_CYSCREEN)
  dispy=Str$(x)
  CallGetSystemInfo(sysinfo)
  SelectCasesysinfo.dwProcessorType
  Case386
  cpus="处理器类型:386"
  Case486
  cpus="处理器类型:486"
  Case586
  cpus="处理器类型:586"
  EndSelect
  abouts=ShellAbout(Me.hwnd,"演示程序",
  "销售管理系统V2.0版权所有[C]1998-1999蔡可训"
  &Chr$(13)&Chr$(10)&space1&Chr$(13)&Chr$(10)
  &space2&Chr$(13)&Chr$(10)&cpus "" dispx
  "*" dispy,icons)
  EndSub
  
  ----以上程序在WINDOWS98,VISUALBASIC6.0FORWINDOWS环境下运行通过.用户可以将其加入应用系统的ABOUT菜单项,通过菜单项调用它,效果更好->

来源:http://www.tulaoshi.com/n/20160219/1617765.html

延伸阅读
WNetAddConnection创建同一个网络资源的永久性连接WNetAddConnection2创建同一个网络资源的连接WNetAddConnection3创建同一个网络资源的连接WNetCancelConnection结束一个网络连接WNetCancelConnection2结束一个网络连接WNetCloseEnum结束一次枚举操作WNetConnectionDialog启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog启...
左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。 _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数...