新员工入职培训体会:急!!!!!!!懂VB的进来!

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 01:29:40
在网上看到用VB做"一个小巧精致的CPU监视器"的教程~大家可以去搜搜
关键词"一个小巧精致的CPU监视器“
我按教程做了~~~~但其中一段代码里提示错误
----------------------------

Option Explicit

Private Const LP-HT-CAPTION = 2

Private Const WM - NCLBUTTONDOWN = &HA1

Private Declare Function ReleaseCapture Lib “user32" () As Long

Private Declare Function SendMessage Lib “user32" Alias“SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private CPU As New CPUusage

Private Avg As Long

Private Sum As Long

Private Index As Long
----------------------------
里面的 Private Const LP-HT-CAPTION = 2

Private Const WM - NCLBUTTONDOWN = &HA1 中的"-"提示

编译错误:缺少:As或+=

到底是怎么一回事~要怎么改?????
有时间的可以去试试做做那个程序~
到底是哪里错误啊?请帮忙~我会追加分数的!!!!
一楼的~我试过了~``代码可以通过,但运行后没有反应``

试试这段代码:
窗体的

Option Explicit
Private Const LP_HT_CAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private CPU As New CPUusage
Private Avg As Long
Private Sum As Long
Private Index As Long
Private Sub Form_Load()
Me.Caption = App.Title '初始化应用程序标题栏
CPU.InitCPUUsage
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '程序结束前关闭定时器和释放内存
Timer1.Enabled = False
Set CPU = Nothing
Cancel = 0
End Sub
Private Sub Frame1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '用左键可以拖动程序
Call Form_MouseDown(Button, Shift, X, Y)
End Sub
Private Sub pctPrg_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '右键单击退出程序
If Button = 2 Then
Unload Me
End
End If
Call Form_MouseDown(Button, Shift, X, Y)
End Sub
Private Sub Timer_Timer() '利用定时器周期性的读取资源状况
Dim tmp As Long
tmp = CPU.GetCPUUsage
Me.Caption = App.Title & FormatPercent(tmp / 100) '
'在标题栏用百分比数字形式反映占用率
Sum = Sum + tmp
Index = Index + 1
Avg = Int(Sum / Index)
pctPrg.Cls
pctPrg.Line (0, 0)-(tmp, 18), , BF
pctPrg.Line (Avg, 0)-(Avg, 18), &HFF
pctPrg.Line (Avg + 1, 0)-(Avg + 1, 18), &HFF
'用图式形式反映占用率
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '使程序可以被拖动
Dim rc As Long
rc = ReleaseCapture
rc = SendMessage(hwnd, WM_NCLBUTTONDOWN, LP_HT_CAPTION, ByVal 0&)
End Sub

那个类的
Option Explicit
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const REG_DWORD = 4
Private Const HKEY_DYN_DATA = &H80000006
Public Sub InitCPUUsage()
Dim Data As Long, Typ As Long, Size As Long
Dim hKey As Long, hRet As Long
hRet = RegOpenKey(HKEY_DYN_DATA, "PerfStats\StartStat", hKey)
hRet = RegQueryValueEx(hKey, "KERNEL\CPUUsage", 0, REG_DWORD, Data, 4)
hRet = RegCloseKey(hKey)
End Sub
Public Function GetCPUUsage() As Long
On Error GoTo eee '如果注册表错误的话转到eee
Dim Data As Long, Typ As Long, Size As Long
Dim hKey As Long
Dim hRet As Long
hRet = RegOpenKey(HKEY_DYN_DATA, "PerfStats\StatData", hKey) '打开主键
hRet = RegQueryValueEx(hKey, "KERNEL\CPUUsage", 0&, REG_DWORD, Data, 4) '读取参数
GetCPUUsage = Data
hRet = RegCloseKey(hKey)
Exit Function
eee:
虽然能通过编译了,可是我的机器仍然不能正确显示,可能是程序本身的问题,也许和操作系统有关.