调 用API 函 数 设 计ABOUT 窗 口

原创 2001年06月04日 21:16:00

 

调 用API 函 数 设 计ABOUT 窗 口

作者:蔡 可 训

windows98 系 统 的 许 多 软 件 中 都 包 含 一 个windows 风 格 的about 窗 口, 它 向 用 户 反 映 了 当 前 系 统 的 一 些 基 本 信 息, 其 中 显 示 有 关windows 及 其 应 用 软 件 的 版 本、 版 权 和 系 统 的 工 作 状 态 等 信 息。 笔 者 用VB 6.0 通 过 调 用API 函 数 设 计 应 用 系 统 的ABOUT 窗 口。 效 果 如 图1。( 略)

1 . 建 立 含 有 如 下 控 件 的 窗 体:

      控 件     NAME      CAPTION 
      窗 体     FORM1     用VB6.0 设 计ABOUT 窗 口
      命 令 按 钮   COMMAND1 关 于 销 售 管 理 系 统

2 . 程 序 清 单:

---- Private Declare Function GetWindowWord Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer

---- Private Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long

---- Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hinst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

---- Private Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO) Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Private Const GWL_WNDPROC = (-4)
Private Const GWL_HINSTANCE = (-6)
Private Type SYSTEM_INFO
        dwOemID As Long
        dwPageSize As Long
        lpMinimumApplicationAddress As Long
        lpMaximumApplicationAddress As Long
        dwActiveProcessorMask As Long
        dwNumberOrfProcessors As Long
        dwProcessorType As Long
        dwAllocationGranularity As Long
        dwReserved As Long
End Type
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Private Sub Command1_Click()
Dim hinst As Long
Dim icons As Long
Dim abouts As Long
Dim dispx As String
Dim dispy As String
Dim cps As String
Dim space1 As String
Dim space2 As String
hinst = GetWindowWord(Me.hwnd, GWL_HINSTANCE)
icons = ExtractIcon(hinst, "d:/fpw26/foxprow.exe", 0)
Dim sysinfo As SYSTEM_INFO
Dim cls1 As Long
Dim cls2 As Long
Dim secs As Long
Dim bytes As Long
Dim buffs As String
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)
Call GetSystemInfo(sysinfo)
Select Case sysinfo.dwProcessorType
Case 386
     cpus = "处理器类型:386"
Case 486
     cpus = "处理器类型:486"
Case 586
     cpus = "处理器类型:586"
End Select
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)
End Sub
---- 以 上 程 序 在WINDOWS98,VISUAL BASIC 6.0 FOR WINDOWS 环 境 下 运 行 通 过. 用 户 可 以 将 其 加 入 应 用 系 统 的ABOUT 菜 单 项, 通 过 菜 单 项 调 用 它, 效 果 更 好。

 

Java中关于函数回调和反射机制的介绍

因为Java中有过滤器过滤器的机制是函数回调,索引在此介绍一下函数的回调。 Eg:class A{} A a=new A(); a.numBuild();//此方法用于生成两个数,比如此处生成了1和...
  • Joker_Fei
  • Joker_Fei
  • 2017年03月21日 23:18
  • 1164

拦截器 过滤器 函数回调

拦截器是基于java的反射机制的,而过滤器是基于函数回调  2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器  3、拦截器只能对action请求起作用,而过滤器则可以对几乎所...
  • liweiahut
  • liweiahut
  • 2015年07月28日 14:59
  • 1860

Android 计步传感器的实现

在Android4.4之后的版本中,Android在硬件中支持内置计步传感器。例如微信运动,支付宝运动等常用软件都是直接调用了Android中的Sensor传感器服务,从而获取到每日的步数。要完成计步...
  • qq402164452
  • qq402164452
  • 2017年05月27日 15:42
  • 1533

PostgreSQL字符串聚集的经典应用

PostgreSQL是功能非常强大的
  • rocklee
  • rocklee
  • 2014年05月20日 11:53
  • 715

利用三轴加速器的计步测算方法

1. 了解模型特征   目前大部分设备都提供了可以检测各个方向的加速检测器,以iOS设备为例,我们利用了其三轴加速计(x,y,z轴代表方向如图)的特性来分析。分别用以检测人步行中三个方向的加速度...
  • u010871244
  • u010871244
  • 2015年01月26日 15:49
  • 1895

Android 计步功能-简单实现

使用Android4.4 Kitkat 新增的STEP DETECTOR 以及 STEP COUNTER传感器。 官方介绍: TYPE_STEP_COUNTER:计...
  • csdnloginname
  • csdnloginname
  • 2016年07月22日 21:42
  • 12277

Android-传感器-计步

参考文章:http://www.jianshu.com/p/5d57f7fd84fa 本文源码:https://github.com/lifegh/StepOrientAndroid4.4以上的有些...
  • qq_32115439
  • qq_32115439
  • 2017年03月12日 16:18
  • 2633

利用Xposed框架修改微信运动计步

用xposed框架开发的修改微信运动数据的小模块
  • a472770699
  • a472770699
  • 2016年12月02日 23:35
  • 6180

JAVA的回调函数和反射机制(原理不说直接看代码),补充动静态代理

代码都是转载或抄录这个地址: http://blog.csdn.net/zhandoushi1982/article/details/8567709 http://blog.csdn.net/xiaa...
  • yehuang_0801
  • yehuang_0801
  • 2017年02月22日 17:05
  • 354

悬浮窗权限突破及兼容性处理

突破国内第三方ROM 悬浮窗权限。并解决部分三星、SONY手机无法处理触摸事件的问题等踩坑之路。...
  • BruceHurrican
  • BruceHurrican
  • 2017年03月20日 17:27
  • 900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:调 用API 函 数 设 计ABOUT 窗 口
举报原因:
原因补充:

(最多只允许输入30个字)