呼叫API函式設計ABOUT視窗 (轉)
呼叫API函式設計ABOUT視窗 (轉)[@more@]設計ABOUT視窗
作者:蔡可訓 98 系 統 的 許 多 軟 件 中 都 包 含 一 個windows 風 格 的about 窗 口, 它 向 用 戶 反 映 了 當 前 系 統 的 一 些 基 本 信 息, 其 中 顯 示 有 關windows 及 其 應 用 軟 件 的 版 本、 版 權 和 系 統 的 工 作 狀 態 等 信 息。 筆 者 用6.0 通 過 調 用API 函 數 設 計 應 用 系 統 的ABOUT 窗 口。 效 果 如 圖1。( 略)
1 . 建 立 含 有 如 下 控 件 的 窗 體:
控 件 NAME CAPTION
窗 體 FORM1 用.0 設 計ABOUT 窗 口
命 令 按 鈕 COMMAND1 關 於 銷 售 管 理 系 統
2 . 程 序 清 單:
---- Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer
---- Private Declare Function About 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 lpPathName 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:fpw26foxprow.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)
Case sysinfo.dwProcessorType
Case 386
s = "型別: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, 6.0 FOR WINDOWS 環 境 下 運 行 通 過. 用 戶 可 以 將 其 加 入 應 用 系 統 的ABOUT 菜 單 項, 通 過 菜 單 項 調 用 它, 效 果 更 好。
作者:蔡可訓 98 系 統 的 許 多 軟 件 中 都 包 含 一 個windows 風 格 的about 窗 口, 它 向 用 戶 反 映 了 當 前 系 統 的 一 些 基 本 信 息, 其 中 顯 示 有 關windows 及 其 應 用 軟 件 的 版 本、 版 權 和 系 統 的 工 作 狀 態 等 信 息。 筆 者 用6.0 通 過 調 用API 函 數 設 計 應 用 系 統 的ABOUT 窗 口。 效 果 如 圖1。( 略)
1 . 建 立 含 有 如 下 控 件 的 窗 體:
控 件 NAME CAPTION
窗 體 FORM1 用.0 設 計ABOUT 窗 口
命 令 按 鈕 COMMAND1 關 於 銷 售 管 理 系 統
2 . 程 序 清 單:
---- Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer
---- Private Declare Function About 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 lpPathName 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:fpw26foxprow.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)
Case sysinfo.dwProcessorType
Case 386
s = "型別: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, 6.0 FOR WINDOWS 環 境 下 運 行 通 過. 用 戶 可 以 將 其 加 入 應 用 系 統 的ABOUT 菜 單 項, 通 過 菜 單 項 調 用 它, 效 果 更 好。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990755/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 調 用API 函 數 設 計ABOUT 窗 口 (轉)API
- VB呼叫API函式使視窗保持在最上層 (轉)API函式
- Windows API視窗程式設計 - 空白視窗WindowsAPI程式設計
- 視窗函式函式
- iframe裡面的頁面呼叫父視窗,左右視窗js函式的方法JS函式
- PostgreSQL:視窗函式SQL函式
- SQL 視窗函式SQL函式
- Mysql視窗函式MySql函式
- Hive視窗函式Hive函式
- Oracle分析函式與視窗函式Oracle函式
- hive視窗函式使用Hive函式
- 【函式】oracle視窗函式over()的理解函式Oracle
- 利用Win32 API 函式 ShowWindowAsync / ShowWindow 改變視窗大小Win32API函式
- hive視窗分析函式使用詳解系列二之分組排序視窗函式Hive函式排序
- 與SQL視窗函式相同SQL函式
- PostgreSQL>視窗函式的用法SQL函式
- MySQL視窗函式彙總MySql函式
- hive05_視窗函式Hive函式
- Windows API視窗程式設計 - 自定義按鈕WindowsAPI程式設計
- mysql視窗函式中的滑動視窗MySql函式
- 淺談API函式呼叫的方法API函式
- 視窗函式 (轉) rows between unbounded preceding and current row函式
- SQL視窗分析函式使用詳解系列三之偏移量類視窗函式SQL函式
- Windows API視窗程式設計 - 完善自定義按鈕WindowsAPI程式設計
- MySQL 8.0 視窗函式-筆記MySql函式筆記
- Hive視窗函式保姆級教程Hive函式
- Hive 視窗函式(Windowing Functions)Hive函式Function
- 用函式控制彈出視窗函式
- MySQL視窗函式用法總結MySql函式
- 嵌入式軟體架構設計-函式呼叫架構函式
- 呼叫API函式得到磁碟上剩餘空間的值 (轉)API函式
- Windows API視窗程式設計 - 系統標準按鈕WindowsAPI程式設計
- PostgreSQL 視窗函式 ( Window Functions ) 如何使用?SQL函式Function
- 通俗易懂:視窗函式 | 全是案例函式
- 詳解SQL操作的視窗函式SQL函式
- 視窗屬性的獲取函式函式
- 在VB中使用API關閉視窗 (轉)API
- 【Linux網路程式設計】Socket Api函式Linux程式設計API函式