VB串口通讯软件2
Private Sub AC_ch_Click() Factor_Seting.Visible = True tx_REQ = 3 End Sub
Private Sub compt_Click() Comptform.Visible = True End Sub
Private Sub Form_Load() Call Close_OpenPort(1) Call MakeToolbarFlat(Toolbar1) sys_set.Visible = True For i = 0 To 8 tx_b(i) = Array(&H68, &H3, &H3, &H68, &H20, &H93, &H83, &H85, &H0, &H30 + Second(Time) Mod 10, &H0, &H30 + Second(Time) Mod 10, &H0, &H41 + Second(Time) Mod 10, &H0, &H61 + Second(Time) Mod 10, 0, 0, 0, 0, 1, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 1, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 1, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 1, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 1, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3, 2, 1) Next
tx_REQ = 3: num_rxright = 0: num_sent = 0
End Sub
Private Sub Form_Unload(Cancel As Integer) Unload controlform Unload Comptform Unload Factor_Seting Unload Me End Sub
Private Sub MSComm1_OnComm() Dim temp As Variant
MSComm1.InputLen = 1
While MSComm1.InBufferCount <> 0
temp = MSComm1.Input
If rx_ptr < 150 Then
If rx_ptr = 3 Then rx_data.Caption = rx_data.Caption + vbCr
rx_b(rx_ptr) = temp(0): rx_data.Caption = rx_data.Caption + hexbyt(Int(temp(0))) + " "
rx_ptr = rx_ptr + 1
rx_CRC = rx_CRC Xor (temp(0) And &HFF)
If rx_CRC < 0 Then rx_CRC = 65536 + rx_CRC
For j = 0 To 7
If (rx_CRC And 1) = 1 Then
rx_CRC = Int(rx_CRC \ 2)
rx_CRC = rx_CRC Xor &HA001
If rx_CRC < 0 Then rx_CRC = 65536 + rx_CRC
Else
rx_CRC = Int(rx_CRC \ 2)
End If
Next
End If
Wend
End Sub
Private Sub op_Click() controlform.Visible = True End Sub
Private Sub RAM_VScroll1_Change() RAM_addr1th.Text = strhex(RAM_VScroll1.Value) End Sub
Private Sub SN_VScroll_Change() SN_Text.Text = Str(SN_VScroll.Value) '站号调整与显示 End Sub
Private Sub sys_set_Click() s_set.Visible = True End Sub
Private Sub T_05s00_Timer() mn_form.Caption = " X200测试 " + Format(Date, " yyyy-mm-dd ") + Format(Time, "hh:mm:ss ") '标题刷新
If rx_CRC = 0 Then
Call Process
num_rxright = (num_rxright + 1) Mod 10000 '显示接收正确次数
StatusBar1.Panels(2) = Str(num_rxright)
End If
Call Send(tx_REQ) '发送默认命令
If tx_REQ <> 3 Then tx_REQ = 3
num_sent = (num_sent + 1) Mod 10000
StatusBar1.Panels(1) = Str(num_sent) '显示召唤次数
rx_ptr = 0
End Sub
Sub Close_OpenPort(port As Byte) On Error Resume Next ' 改变错误处理的方式。 Err.Clear If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = port
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
If Err.Number <> 0 Then msg = "Error # " & Str(Err.Number) & " was generated by " _ & Err.Source & Chr(13) & Err.Description MsgBox msg, , "Error", Err.HelpFile, Err.HelpContext End If End Sub
Public Sub Process() If (T_pos < 410) Then disp_area.Caption = "" For i = 0 To 63 D_int(i) = b_i(rx_b(4 + i * 2), rx_b(3 + i * 2)) If D_int(i) >= 0 Then disp_area.Caption = disp_area.Caption + Format(D_int(i), " 00000 ") Else disp_area.Caption = disp_area.Caption + "-" + Format(-D_int(i), "00000 ") End If If (i Mod 8) = 7 Then disp_area.Caption = disp_area.Caption + vbCr + " " Next sindraw (0) End If
If T_pos = &H80 Then
'For i = 0 To 7
'Factor_Seting.AC_data(i).Caption = Format(b_i(rx_b(4 + i * 2), rx_b(3 + i * 2)) / 100, "0.00")
Factor_Seting.AC_data(1).Caption = Format(b_i(rx_b(8), rx_b(7)) / 100, "0.00")
Factor_Seting.AC_data(0).Caption = Format(b_i(rx_b(16), rx_b(15)) / 100, "0.00")
Factor_Seting.AC_data(3).Caption = Format(b_i(rx_b(24), rx_b(23)) / 100, "0.00")
Factor_Seting.AC_data(2).Caption = Format(b_i(rx_b(32), rx_b(31)) / 1000 * 38, "0.00")
Factor_Seting.AC_data(5).Caption = Format(b_i(rx_b(40), rx_b(39)) / 1000 * 38, "0.00")
Factor_Seting.AC_data(4).Caption = Format(b_i(rx_b(102), rx_b(101)) / 1000, "0.00")
Factor_Seting.AC_data(7).Caption = Format(b_i(rx_b(104), rx_b(103)) / 1000, "0.00")
'Factor_Seting.AC_data(7).Caption = Format(b_i(rx_b(6 + i * 2), rx_b(5 + i * 2)) / 100, "0.00")
'Next
End If
If T_pos = &H178 Then
For i = 0 To 7
If rx_b(3 + i) < 128 Then Factor_Seting.VScroll1(i).Value = -rx_b(3 + i) Else Factor_Seting.VScroll1(i).Value = 256 - rx_b(3 + i)
Next
End If
End Sub
Public Sub sindraw(ByVal ch As Integer) disp_pic.Cls xsc = (disp_pic.Width - 200) / 32: ysc = (disp_pic.Height - 200) / 1280: xax = disp_pic.Height / 2
disp_pic.Line (xsc, xax)-(disp_pic.Width - xsc, xax), RGB(128, 128, 128) disp_pic.Line (xsc, 100)-(xsc, disp_pic.Height - 100), RGB(128, 128, 128)
If T_pos < &H60 Then For i = 1 To 31 disp_pic.Line (i * xsc, D_int((i - 1) Mod 16) * ysc + xax)-((i + 1) * xsc, D_int(i Mod 16) * ysc + xax), RGB(250, ch * 50, 0) disp_pic.Line (i * xsc, D_int((i - 1) Mod 16 + 16) * ysc + xax)-((i + 1) * xsc, D_int(i Mod 16 + 16) * ysc + xax), RGB(250, ch * 50, 200)
disp_pic.Line (i * xsc, D_int((i - 1) Mod 16 + 32) * ysc + xax)-((i + 1) * xsc, D_int(i Mod 16 + 32) * ysc + xax), RGB(210, 150, 220)
disp_pic.Line (i * xsc, D_int((i - 1) Mod 16 + 48) * ysc + xax)-((i + 1) * xsc, D_int(i Mod 16 + 48) * ysc + xax), RGB(150, ch * 50, 100)
Next
Else For i = 1 To 31 disp_pic.Line (i * xsc, xax)-((i + 1) * xsc, xax), RGB(250, ch * 50, 0) disp_pic.Line (i * xsc, 16 * ysc + xax)-((i + 1) * xsc, 16 * ysc + xax), RGB(250, ch * 50, 200)
disp_pic.Line (i * xsc, 32 * ysc + xax)-((i + 1) * xsc, 32 * ysc + xax), RGB(210, 150, 220)
disp_pic.Line (i * xsc, 48 * ysc + xax)-((i + 1) * xsc, 48 * ysc + xax), RGB(150, ch * 50, 100)
Next
End If End Sub VERSION 5.00 Begin VB.Form s_set Caption = "sys_set" ClientHeight = 5025 ClientLeft = 60 ClientTop = 450 ClientWidth = 9360 LinkTopic = "Form1" ScaleHeight = 5025 ScaleWidth = 9360 StartUpPosition = 3 '窗口缺省 Begin VB.TextBox Text1 Alignment = 1 'Right Justify BeginProperty Font Name = "宋体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 405 Index = 3 Left = 7200 TabIndex = 25 Text = "1.0" Top = 2280 Width = 735 End Begin VB.VScrollBar VScroll1 Height = 375 Index = 3 Left = 7920 Max = 255 Min = 1 TabIndex = 24 Top = 2280 Value = 1 Width = 255 End Begin VB.CommandButton Command1 Caption = "确认" BeginProperty Font Name = "宋体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 735 Left = 7080 TabIndex = 21 Top = 3720 Width = 1095 End Begin VB.VScrollBar VScroll1 Height = 375 Index = 2 Left = 7920 Max = 255 Min = 1 TabIndex = 20 Top = 1680 Value = 10 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 375 Index = 1 Left = 7920 Max = 5 Min = 1 TabIndex = 19 Top = 1080 Value = 1 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 375 Index = 0 Left = 7920 Max = 99 Min = 1 TabIndex = 18 Top = 480 Value = 1 Width = 255 End Begin VB.TextBox Text1 Alignment = 1 'Right Justify BeginProperty Font Name = "宋体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 405 Index = 2 Left = 7200 TabIndex = 17 Text = "1.0" Top = 1680 Width = 735 End Begin VB.TextBox Text1 Alignment = 1 'Right Justify BeginProperty Font Name = "宋体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 405 Index = 1 Left = 7200 TabIndex = 16 Text = "1" Top = 1080 Width = 735 End Begin VB.TextBox Text1 Alignment = 1 'Right Justify BeginProperty Font Name = "宋体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 405 Index = 0 Left = 7200 TabIndex = 15 Text = "1" Top = 480 Width = 735 End Begin VB.ComboBox Combo1 Height = 300 Index = 5 ItemData = "sys_set.frx":0000 Left = 2760 List = "sys_set.frx":0016 TabIndex = 5 Text = "100ms" Top = 4080 Width = 1215 End Begin VB.ComboBox Combo1 Height = 300 Index = 4 ItemData = "sys_set.frx":0043 Left = 2760 List = "sys_set.frx":0059 TabIndex = 4 Text = "100ms" Top = 3240 Width = 1215 End Begin VB.ComboBox Combo1 Height = 300 Index = 3 ItemData = "sys_set.frx":0086 Left = 2760 List = "sys_set.frx":0090 TabIndex = 3 Text = "上升沿" Top = 2520 Width = 1215 End Begin VB.ComboBox Combo1 Height = 300 Index = 2 ItemData = "sys_set.frx":00A2 Left = 2760 List = "sys_set.frx":00B2 TabIndex = 2 Text = "保护模式" Top = 1800 Width = 1215 End Begin VB.ComboBox Combo1 Height = 300 Index = 1 ItemData = "sys_set.frx":00E1 Left = 2760 List = "sys_set.frx":00F1 TabIndex = 1 Text = "Ia" Top = 1080 Width = 1215 End Begin VB.ComboBox Combo1 Height = 300 Index = 0 ItemData = "sys_set.frx":0105 Left = 2760 List = "sys_set.frx":0112 TabIndex = 0 Text = "面板" Top = 480 Width = 1215 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "CT 变比" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 9 Left = 5400 TabIndex = 23 Top = 2400 Width = 1455 End Begin VB.Label Label2 Caption = "CT变比" Height = 15 Left = 5280 TabIndex = 22 Top = 2400 Width = 1215 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "星-三角启动切换时间" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 8 Left = 4440 TabIndex = 14 Top = 1800 Width = 2415 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "散热时间系数" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 7 Left = 5160 TabIndex = 13 Top = 1200 Width = 1695 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "通信站号" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 6 Left = 5160 TabIndex = 12 Top = 600 Width = 1695 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "启停出口方式" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 5 Left = 720 TabIndex = 11 Top = 4080 Width = 1695 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "跳闸出口方式" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 4 Left = 720 TabIndex = 10 Top = 3240 Width = 1695 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "接点检测方式" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 3 Left = 720 TabIndex = 9 Top = 2520 Width = 1695 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "控制模式" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 2 Left = 720 TabIndex = 8 Top = 1800 Width = 1695 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "模拟量输出" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 1 Left = 720 TabIndex = 7 Top = 1080 Width = 1695 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "操作权限" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 0 Left = 720 TabIndex = 6 Top = 510 Width = 1695 End End Attribute VB_Name = "s_set" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim hcd(32) As Byte Private Sub Command1_Click()
For i = 0 To 2
If Combo1(i * 2).ListIndex < 0 Then Combo1(i * 2).ListIndex = 0
If Combo1(i * 2 + 1).ListIndex < 0 Then Combo1(i * 2 + 1).ListIndex = 0
hcd(i) = (Combo1(i * 2).ListIndex + 1) * 16 + (Combo1(i * 2 + 1).ListIndex + 1)
hcd(i + 3) = VScroll1(i).Value
Next
hcd(7) = VScroll1(3).Value
hcd(10) = &H34: hcd(11) = &HDA
For i = 0 To 4
hcd(10) = hcd(10) Xor hcd(i * 2): hcd(11) = hcd(11) Xor hcd(i * 2 + 1)
Next
i = 14 * 8 + &H100
tx_b(16) = Array(&H8, &H10, i \ 256, i Mod 256, 0, &H8, &H10, Hour(Time), Minute(Time), Second(Time), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
hcd(12) = &HFF: hcd(13) = &HFF: hcd(14) = &H12: hcd(15) = &H34
For i = 7 To 7 + 32: tx_b(16)(i) = hcd(i - 7): Next
tx_REQ = 16
End Sub
Private Sub VScroll1_Change(Index As Integer) If Index = 2 Then Text1(2).Text = Format(VScroll1(2).Value / 10, "0.0") Else Text1(Index).Text = VScroll1(Index).Value End If
End Sub
第二段程序
VERSION 5.00 Begin VB.Form Comptform BorderStyle = 1 'Fixed Single Caption = "参数设置" ClientHeight = 3810 ClientLeft = 45 ClientTop = 330 ClientWidth = 3120 Icon = "Compt.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 3810 ScaleWidth = 3120 StartUpPosition = 3 '窗口缺省 Begin VB.CommandButton Command2 Caption = "下装" Height = 495 Left = 1080 Picture = "Compt.frx":038A Style = 1 'Graphical TabIndex = 9 Top = 3120 Width = 975 End Begin VB.TextBox Text3 Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00FFFFFF& DataField = "定值3比例" DataSource = "Data1" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00800000& Height = 315 Index = 2 Left = 1080 TabIndex = 8 Text = "1" Top = 2020 Width = 975 End Begin VB.TextBox Text3 Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00FFFFFF& DataField = "定值2比例" DataSource = "Data1" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00800000& Height = 315 Index = 1 Left = 1080 TabIndex = 7 Text = "100" Top = 1420 Width = 975 End Begin VB.TextBox Text3 Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00FFFFFF& DataField = "定值1比例" DataSource = "Data1" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00800000& Height = 315 Index = 0 Left = 1080 TabIndex = 6 Text = "200" Top = 820 Width = 975 End Begin VB.ComboBox Combo3 BeginProperty Font Name = "宋体" Size = 9 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00800000& Height = 300 ItemData = "Compt.frx":0714 Left = 1080 List = "Compt.frx":0745 TabIndex = 1 Text = "启动时间长保护" Top = 220 Width = 1935 End Begin VB.ComboBox Combo1 Appearance = 0 'Flat BackColor = &H00FFFFFF& DataField = "类型" DataSource = "Data1" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00800000& Height = 300 ItemData = "Compt.frx":0813 Left = 1080 List = "Compt.frx":0832 TabIndex = 0 Text = " 跳闸" Top = 2620 Width = 1575 End Begin VB.Label Label2 Caption = "保护参数" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 0 Left = 120 TabIndex = 5 Top = 260 Width = 855 End Begin VB.Label Label2 Caption = "定 值" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 1 Left = 120 TabIndex = 4 Top = 860 Width = 855 End Begin VB.Label Label2 Caption = "时 限" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 2 Left = 120 TabIndex = 3 Top = 1460 Width = 855 End Begin VB.Label Label2 Caption = "参数1" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 3 Left = 120 TabIndex = 2 Top = 2060 Width = 855 End End Attribute VB_Name = "Comptform" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim hcd(32) As Byte Private Sub Combo1_Click() If Combo1.Text = "调试0mA" Then Label2(1).Caption = "调试0mA" Label2(2).Caption = "调试4mA" Label2(3).Caption = "调试20mA" ElseIf Combo1.Text = "调试4mA" Then Label2(1).Caption = "调试0mA" Label2(2).Caption = "调试4mA" Label2(3).Caption = "调试20mA" ElseIf Combo1.Text = "调试20mA" Then Label2(1).Caption = "调试0mA" Label2(2).Caption = "调试4mA" Label2(3).Caption = "调试20mA" ElseIf Combo1.Text = "0_20mA" Then Label2(1).Caption = "调试0mA" Label2(2).Caption = "调试4mA" Label2(3).Caption = "调试20mA" ElseIf Combo1.Text = "4_20mA" Then Label2(1).Caption = "调试0mA" Label2(2).Caption = "调试4mA" Label2(3).Caption = "调试20mA" Else Label2(1).Caption = "定 值" Label2(2).Caption = "时 限" Label2(3).Caption = "参数1" End If End Sub Private Sub Command2_Click()
Dim h As Integer
If Combo3.Text = "启动时间长保护" Then
h = 1
ElseIf Combo3.Text = "定时限过负荷保护" Then
h = 2
ElseIf Combo3.Text = "反时限过负荷保护" Then
h = 3
ElseIf Combo3.Text = "堵转保护" Then
h = 4
ElseIf Combo3.Text = "电流不平衡保护" Then
h = 5
ElseIf Combo3.Text = "接地保护" Then
h = 6
ElseIf Combo3.Text = "过热保护" Then
h = "7"
ElseIf Combo3.Text = "欠电压保护" Then
h = 8
ElseIf Combo3.Text = "过电压保护" Then
h = 9
ElseIf Combo3.Text = "欠电流保护" Then
h = 10
ElseIf Combo3.Text = "断相保护" Then
h = 11
ElseIf Combo3.Text = "电压回路断相保护" Then
h = 12
ElseIf Combo3.Text = "欠压重启动功能" Then
h = 13
ElseIf Combo3.Text = "TE时间保护" Then
h = 14
ElseIf Combo3.Text = "变送值设定" Then
h = 15
End If
If Combo1.ListIndex < 0 Then Combo1.ListIndex = 1
hcd(6) = &HFF: hcd(7) = &HFF: hcd(8) = &H66: hcd(9) = &H66
hcd(12) = &HFF: hcd(13) = &HFF: hcd(14) = &H12: hcd(15) = &H34
If Combo1.ListIndex = 1 Then
hcd(8) = &HA5
hcd(9) = &H5A
ElseIf Combo1.ListIndex = 2 Then
hcd(8) = &H5A
hcd(9) = &HA5
ElseIf Combo1.ListIndex = 4 Then
hcd(6) = &H0
hcd(7) = &H1
ElseIf Combo1.ListIndex = 5 Then
hcd(6) = &H0
hcd(7) = &H2
ElseIf Combo1.ListIndex = 6 Then
hcd(6) = &H0
hcd(7) = &H3
ElseIf Combo1.ListIndex = 7 Then
hcd(6) = &H0
hcd(7) = &H55
ElseIf Combo1.ListIndex = 8 Then
hcd(6) = &H0
hcd(7) = &HAA
End If
For i = 0 To 2
temp = Val(Text3(i).Text)
hcd(i * 2) = temp \ 256
hcd(i * 2 + 1) = temp Mod 256 'para0-2
Next
hcd(10) = &H34
hcd(11) = &HDA
For i = 0 To 4
hcd(10) = hcd(10) Xor hcd(i * 2)
hcd(11) = hcd(11) Xor hcd(i * 2 + 1)
Next
If h = 15 Then
i = (Val(h) + 1) * 8 + &H100
Else
i = (Val(h) - 1) * 8 + &H100
End If
tx_b(16) = Array(&H8, &H10, i \ 256, i Mod 256, 0, &H8, &H10, Hour(Time), Minute(Time), Second(Time), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
For i = 7 To 7 + 32
tx_b(16)(i) = hcd(i - 7)
Next
tx_REQ = 16
End Sub
VERSION 5.00 Begin VB.Form controlform BorderStyle = 1 'Fixed Single Caption = "操作电机" ClientHeight = 1995 ClientLeft = 45 ClientTop = 330 ClientWidth = 5430 Icon = "controlform.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 1995 ScaleWidth = 5430 StartUpPosition = 3 '窗口缺省 Begin VB.CommandButton J_ctrl Caption = "校时" Height = 615 Index = 5 Left = 3960 Picture = "controlform.frx":08CA Style = 1 'Graphical TabIndex = 5 Top = 1200 Width = 975 End Begin VB.CommandButton J_ctrl Caption = "清除电度" Height = 615 Index = 4 Left = 2280 Picture = "controlform.frx":0C54 Style = 1 'Graphical TabIndex = 4 Top = 1200 Width = 975 End Begin VB.CommandButton J_ctrl Caption = "复归" Height = 615 Index = 3 Left = 480 Picture = "controlform.frx":1A96 Style = 1 'Graphical TabIndex = 3 Top = 1200 Width = 975 End Begin VB.CommandButton J_ctrl Caption = "停车" Height = 615 Index = 2 Left = 3960 Picture = "controlform.frx":1E20 Style = 1 'Graphical TabIndex = 2 Top = 240 Width = 975 End Begin VB.CommandButton J_ctrl Caption = "启动B" Height = 615 Index = 1 Left = 2280 Picture = "controlform.frx":21AA Style = 1 'Graphical TabIndex = 1 Top = 240 Width = 975 End Begin VB.CommandButton J_ctrl Caption = "启动A" Height = 615 Index = 0 Left = 480 Picture = "controlform.frx":2534 Style = 1 'Graphical TabIndex = 0 Top = 240 Width = 975 End End Attribute VB_Name = "controlform" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub J_ctrl_Click(Index As Integer) If Index < 5 Then '继电器 tx_b(16) = Array(0, 0, &H0, &HD2, &H0, &H1, &H2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) tx_b(16)(7) = (Index + 1) * 17 tx_b(16)(8) = (Index + 1) * 17 ' tx_b(16)(14 + 8) = 40 Else '校时 ts = d_BCD(Second(Time)): tm = d_BCD(Minute(Time)): th = d_BCD(Hour(Time)) dd = d_BCD(Day(Date)): dM = d_BCD(Month(Date)): dY = d_BCD(Year(Date) Mod 100) tx_b(16) = Array(0, 0, &H0, &HD8, &H0, &H4, &H8, dY, dM, dd, th, tm, ts, &H12, &H34, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) End If tx_REQ = 16 '0x10 命令
End Sub
VERSION 5.00 Begin VB.Form Factor_Seting Appearance = 0 'Flat BorderStyle = 3 'Fixed Dialog Caption = "通道校正系数" ClientHeight = 2400 ClientLeft = 1980 ClientTop = 4365 ClientWidth = 11895 BeginProperty Font Name = "System" Size = 12 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False Picture = "Factor_seting.frx":0000 ScaleHeight = 2400 ScaleWidth = 11895 Begin VB.CommandButton Command1 BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 0 Left = 9840 Picture = "Factor_seting.frx":0342 Style = 1 'Graphical TabIndex = 1 Top = 600 Width = 375 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 7 Left = 5880 TabIndex = 42 Text = "0.0" Top = 1200 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 6 Left = 5880 TabIndex = 41 Text = "0.0" Top = 720 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 5 Left = 5880 TabIndex = 40 Text = "0.0" Top = 240 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 4 Left = 1080 TabIndex = 39 Text = "0.0" Top = 240 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 3 Left = 1080 TabIndex = 38 Text = "0.0" Top = 720 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 2 Left = 1080 TabIndex = 37 Text = "0.0" Top = 1200 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 1 Left = 1080 TabIndex = 36 Text = "0.0" Top = 1680 Width = 735 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 7 Left = 5520 TabIndex = 35 Top = 1320 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 6 Left = 5520 TabIndex = 34 Top = 840 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 5 Left = 5520 TabIndex = 33 Top = 360 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 4 Left = 720 TabIndex = 32 Top = 360 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 3 Left = 720 TabIndex = 31 Top = 840 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 255 Index = 2 Left = 720 TabIndex = 30 Top = 1320 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 1 Left = 720 TabIndex = 29 Top = 1800 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 0 Left = 5520 TabIndex = 28 Top = 1800 Width = 255 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 0 Left = 5880 TabIndex = 27 Text = "0.0" Top = 1680 Width = 735 End Begin VB.CommandButton command3 Caption = "计算" Height = 495 Left = 10080 TabIndex = 26 Top = 1560 Width = 855 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 7 Left = 9240 Max = 127 Min = -127 TabIndex = 25 Top = 1200 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 6 Left = 9240 Max = 127 Min = -127 TabIndex = 24 Top = 720 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 5 Left = 9240 Max = 127 Min = -127 TabIndex = 23 Top = 240 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 4 Left = 4440 Max = 127 Min = -127 TabIndex = 22 Top = 240 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 3 Left = 4440 Max = 127 Min = -127 TabIndex = 21 Top = 720 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 2 Left = 4440 Max = 127 Min = -127 TabIndex = 20 Top = 1200 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 1 Left = 4440 Max = 127 Min = -127 TabIndex = 19 Top = 1680 Width = 255 End Begin VB.CommandButton Command2 BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 0 Left = 10560 Picture = "Factor_seting.frx":06CC Style = 1 'Graphical TabIndex = 2 Top = 600 Width = 375 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 0 Left = 9240 Max = 127 Min = -127 TabIndex = 0 Top = 1680 Width = 255 End Begin VB.Label Label9 Caption = "Ua" Height = 255 Left = 360 TabIndex = 58 Top = 360 Width = 405 End Begin VB.Label Label13 Caption = "Ipa" Height = 255 Left = 5160 TabIndex = 57 Top = 360 Width = 405 End Begin VB.Label Label12 Caption = "Ub" Height = 255 Left = 360 TabIndex = 56 Top = 840 Width = 405 End Begin VB.Label Label11 Caption = "Ia" Height = 255 Left = 360 TabIndex = 55 Top = 1800 Width = 405 End Begin VB.Label Label10 Caption = "Ipb" Height = 255 Left = 5160 TabIndex = 54 Top = 840 Width = 405 End Begin VB.Label Label8 Caption = "Uc" Height = 255 Left = 360 TabIndex = 53 Top = 1320 Width = 405 End Begin VB.Label Label7 Caption = "Ic" Height = 255 Left = 5160 TabIndex = 52 Top = 1800 Width = 405 End Begin VB.Label Label4 Caption = "Ipc" Height = 255 Left = 5160 TabIndex = 51 Top = 1320 Width = 405 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 7 Left = 7800 TabIndex = 50 Top = 1200 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 6 Left = 7800 TabIndex = 49 Top = 720 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 5 Left = 7800 TabIndex = 48 Top = 240 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 4 Left = 3000 TabIndex = 47 Top = 240 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 3 Left = 3000 TabIndex = 46 Top = 720 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 2 Left = 3000 TabIndex = 45 Top = 1200 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 1 Left = 3000 TabIndex = 44 Top = 1680 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 0 Left = 7800 TabIndex = 43 Top = 1680 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 7 Left = 8640 TabIndex = 18 Top = 1200 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 6 Left = 8640 TabIndex = 17 Top = 720 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 5 Left = 8640 TabIndex = 16 Top = 240 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 4 Left = 3840 TabIndex = 15 Top = 240 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 3 Left = 3840 TabIndex = 14 Top = 720 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 2 Left = 3840 TabIndex = 13 Top = 1200 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 1 Left = 3840 TabIndex = 12 Top = 1680 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 0 Left = 8640 TabIndex = 11 Top = 1680 Width = 615 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 7 Left = 6720 TabIndex = 10 Top = 1200 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 6 Left = 6720 TabIndex = 9 Top = 720 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 5 Left = 6720 TabIndex = 8 Top = 240 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 4 Left = 1920 TabIndex = 7 Top = 240 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 3 Left = 1920 TabIndex = 6 Top = 720 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 2 Left = 1920 TabIndex = 5 Top = 1200 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 1 Left = 1920 TabIndex = 4 Top = 1680 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 0 Left = 6720 TabIndex = 3 Top = 1680 Width = 855 End End Attribute VB_Name = "Factor_Seting" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit
Private Sub Command1_Click(Index As Integer) Dim i, x As Single tx_b(4) = Array(&HF0, 3, &H4, &HC0, &H0, &H40, 0, 0, Hour(Time), Minute(Time), Second(Time), 0, 0, 0, 0) tx_REQ = 4 End Sub
Private Sub Command2_Click(Index As Integer) Dim i, sumL, sumH As Integer
tx_b(4) = Array(&H68, 28, 28, &H68, &H40, 0, 4, Hour(Time), Minute(Time), Second(Time), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
sumL = 0
sumH = 0
For i = 0 To 7
tx_b(4)(i + 8) = -VScroll1(Index * 8 + i).Value
If i Mod 2 = 0 Then
sumL = sumL Xor tx_b(4)(i + 8)
Else
sumH = sumH Xor tx_b(4)(i + 8)
End If
Next
tx_b(4)(20) = 0 'ID
tx_b(4)(21) = &HFF
sumL = sumL Xor tx_b(4)(20)
sumH = sumH Xor tx_b(4)(21)
tx_b(4)(22) = 0
tx_b(4)(23) = &H9A 'switch
sumL = sumL Xor tx_b(4)(22)
sumH = sumH Xor tx_b(4)(23)
tx_b(4)(24) = 255 - Abs(tx_b(4)(8)) 'para1 bk
tx_b(4)(25) = 255 - Abs(tx_b(4)(9))
tx_b(4)(26) = sumL Xor tx_b(4)(24)
tx_b(4)(27) = sumH Xor tx_b(4)(25)
tx_REQ = 4
End Sub
Private Sub Command3_Click() Dim i As Integer For i = 0 To 7 If Check0(i).Value = 1 Then Label2(i).Caption = Format(((Text0(i).Text - AC_data(i).Caption) / AC_data(i).Caption * 100), "0.0") VScroll1(i).Value = -Label2(i).Caption * 10 + VScroll1(i).Value End If Next i
Command2_Click (0)
End Sub
Private Sub Command4_Click() Factor_Seting.Hide End Sub
Private Sub Form_Load()
Dim i As Integer, KeyName As String
For i = 0 To 7 KeyName = "Text0(" & i & ")" & ".Text" Text0(i).Text = GetSetting(App.Title, Me.Name, KeyName, "0.00") '读取设置
Next i
tx_b(3) = Array(&H68, 4, 4, &H68, &H40, 0, 3, 11, 7, 7)
' End If tx_REQ = 3
End Sub
Private Sub Form_Unload(Cancel As Integer) Dim i As Integer, KeyName As String
For i = 0 To 7 KeyName = "Text0(" & i & ")" & ".Text" Call SaveSetting(App.Title, Me.Name, KeyName, Me.Text0(i).Text) '存储设置 Next i End Sub
Private Sub VScroll1_Change(Index As Integer) Factor_label(Index).Caption = Format(-VScroll1(Index).Value / 10, " 0.0") End Sub
'3号命令-上传系数定值 group10-12 Private Sub VScroll2_Change(Index As Integer) Dim x As Single
x = VScroll2(Index).Value: x = x / 10: Text0(Index).Text = Format(x, "#0.0 ")
End Sub
VERSION 5.00 Begin VB.Form Factor_Seting Appearance = 0 'Flat BorderStyle = 1 'Fixed Single Caption = "电力系数校正" ClientHeight = 3270 ClientLeft = 1980 ClientTop = 4365 ClientWidth = 11385 BeginProperty Font Name = "System" Size = 12 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Icon = "Factor_seting_bk.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False Picture = "Factor_seting_bk.frx":038A ScaleHeight = 3270 ScaleWidth = 11385 Begin VB.CommandButton Command3 Caption = "计算" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 615 Left = 9960 Picture = "Factor_seting_bk.frx":06CC Style = 1 'Graphical TabIndex = 74 Top = 1920 Width = 975 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 15 Left = 2160 Max = 256 Min = -127 TabIndex = 65 Top = 5160 Value = 256 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 14 Left = 1920 Max = 256 Min = -127 TabIndex = 1 Top = 5160 Value = 87 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 13 Left = 1680 Max = 256 Min = -127 TabIndex = 64 Top = 5160 Value = 256 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 12 Left = 1440 Max = 127 Min = -127 TabIndex = 63 Top = 5160 Value = 1 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 11 Left = 1200 Max = 127 Min = -127 TabIndex = 62 Top = 5160 Value = 1 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 10 Left = 960 Max = 127 Min = -127 TabIndex = 61 Top = 5160 Value = 1 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 9 Left = 720 Max = 127 Min = -127 TabIndex = 60 Top = 5160 Value = 1 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 8 Left = 480 Max = 127 Min = -127 TabIndex = 59 Top = 5160 Value = 1 Width = 255 End Begin VB.CommandButton Command1 BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 0 Left = 9840 Picture = "Factor_seting_bk.frx":0A56 Style = 1 'Graphical TabIndex = 2 Top = 1200 Width = 375 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 7 Left = 5880 TabIndex = 42 Text = "0.0" Top = 2640 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 6 Left = 960 TabIndex = 41 Text = "0.0" Top = 4080 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 5 Left = 5880 TabIndex = 40 Text = "0.0" Top = 1440 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 4 Left = 5880 TabIndex = 39 Text = "0.0" Top = 2040 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 3 Left = 1080 TabIndex = 38 Text = "0.0" Top = 2040 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 2 Left = 5880 TabIndex = 37 Text = "0.0" Top = 840 Width = 735 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 1 Left = 1080 TabIndex = 36 Text = "0.0" Top = 840 Width = 735 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 7 Left = 5520 TabIndex = 35 Top = 2760 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 6 Left = 600 TabIndex = 34 Top = 4200 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 5 Left = 5520 TabIndex = 33 Top = 1560 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 4 Left = 5520 TabIndex = 32 Top = 2160 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 3 Left = 720 TabIndex = 31 Top = 2160 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 255 Index = 2 Left = 5520 TabIndex = 30 Top = 960 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 1 Left = 720 TabIndex = 29 Top = 960 Width = 255 End Begin VB.CheckBox Check0 Caption = "Check1" Height = 225 Index = 0 Left = 720 TabIndex = 28 Top = 1560 Width = 255 End Begin VB.TextBox Text0 Alignment = 2 'Center Height = 360 Index = 0 Left = 1080 TabIndex = 27 Text = "0.0" Top = 1440 Width = 735 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 7 Left = 9240 Max = 127 Min = -127 TabIndex = 26 Top = 2640 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 6 Left = 4320 Max = 127 Min = -127 TabIndex = 25 Top = 4080 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 5 Left = 9240 Max = 127 Min = -127 TabIndex = 24 Top = 1440 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 4 Left = 9240 Max = 127 Min = -127 TabIndex = 23 Top = 2040 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 3 Left = 4440 Max = 127 Min = -127 TabIndex = 22 Top = 2040 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 2 Left = 9240 Max = 127 Min = -127 TabIndex = 21 Top = 840 Width = 255 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 1 Left = 4440 Max = 127 Min = -127 TabIndex = 20 Top = 840 Width = 255 End Begin VB.CommandButton Command2 BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 0 Left = 10560 Picture = "Factor_seting_bk.frx":0DE0 Style = 1 'Graphical TabIndex = 3 Top = 1200 Width = 375 End Begin VB.VScrollBar VScroll1 Height = 345 Index = 0 Left = 4440 Max = 127 Min = -127 TabIndex = 0 Top = 1440 Width = 255 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "校正系数" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 7 Left = 8640 TabIndex = 73 Top = 360 Width = 975 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "推荐系数" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 6 Left = 7680 TabIndex = 72 Top = 360 Width = 855 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "实测值" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 5 Left = 6720 TabIndex = 71 Top = 360 Width = 735 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "标准值" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 4 Left = 5880 TabIndex = 70 Top = 360 Width = 735 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "校正系数" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 3 Left = 3840 TabIndex = 69 Top = 360 Width = 975 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "推荐系数" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 2 Left = 2880 TabIndex = 68 Top = 360 Width = 855 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "实测值" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 1 Left = 1920 TabIndex = 67 Top = 360 Width = 735 End Begin VB.Label Label1 Alignment = 2 'Center BackStyle = 0 'Transparent Caption = "标准值" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Index = 0 Left = 1080 TabIndex = 66 Top = 360 Width = 735 End Begin VB.Label Label9 Caption = "Ib" Height = 255 Left = 360 TabIndex = 58 Top = 1560 Width = 405 End Begin VB.Label Label13 Caption = "Ia" Height = 255 Left = 360 TabIndex = 57 Top = 960 Width = 405 End Begin VB.Label Label12 Caption = "Uab" Height = 255 Left = 5040 TabIndex = 56 Top = 960 Width = 405 End Begin VB.Label Label11 Caption = "U0" Height = 255 Left = 240 TabIndex = 55 Top = 4200 Width = 405 End Begin VB.Label Label10 Caption = "Ic" Height = 255 Left = 360 TabIndex = 54 Top = 2160 Width = 405 End Begin VB.Label Label8 Caption = "Ija" Height = 255 Left = 5040 TabIndex = 53 Top = 2160 Width = 405 End Begin VB.Label Label7 Caption = "Ijc" Height = 255 Left = 5040 TabIndex = 52 Top = 2760 Width = 405 End Begin VB.Label Label4 Caption = "Ubc" Height = 255 Left = 5040 TabIndex = 51 Top = 1560 Width = 405 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 7 Left = 7800 TabIndex = 50 Top = 2640 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 6 Left = 2880 TabIndex = 49 Top = 4080 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 5 Left = 7800 TabIndex = 48 Top = 1440 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 4 Left = 7800 TabIndex = 47 Top = 2040 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 3 Left = 3000 TabIndex = 46 Top = 2040 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 2 Left = 7800 TabIndex = 45 Top = 840 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 1 Left = 3000 TabIndex = 44 Top = 840 Width = 615 End Begin VB.Label Label2 Alignment = 2 'Center BackColor = &H80000005& Caption = "0.0" Height = 330 Index = 0 Left = 3000 TabIndex = 43 Top = 1440 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 7 Left = 8640 TabIndex = 19 Top = 2640 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 6 Left = 3720 TabIndex = 18 Top = 4080 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 5 Left = 8640 TabIndex = 17 Top = 1440 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 4 Left = 8640 TabIndex = 16 Top = 2040 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 3 Left = 3840 TabIndex = 15 Top = 2040 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 2 Left = 8640 TabIndex = 14 Top = 840 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 1 Left = 3840 TabIndex = 13 Top = 840 Width = 615 End Begin VB.Label Factor_label Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "0.0 " ForeColor = &H00800000& Height = 330 Index = 0 Left = 3840 TabIndex = 12 Top = 1440 Width = 615 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 7 Left = 6720 TabIndex = 11 Top = 2640 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 6 Left = 1800 TabIndex = 10 Top = 4080 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 5 Left = 6720 TabIndex = 9 Top = 1440 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 4 Left = 6720 TabIndex = 8 Top = 2040 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 3 Left = 1920 TabIndex = 7 Top = 2040 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 2 Left = 6720 TabIndex = 6 Top = 840 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 1 Left = 1920 TabIndex = 5 Top = 840 Width = 855 End Begin VB.Label AC_data Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00404000& BorderStyle = 1 'Fixed Single Caption = "000.00 " ForeColor = &H0000FFFF& Height = 315 Index = 0 Left = 1920 TabIndex = 4 Top = 1440 Width = 855 End End Attribute VB_Name = "Factor_Seting" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim hcd(32) As Integer Option Explicit
Private Sub Check0_Click(Index As Integer) If Check0(1).Value = 1 Then AAA = "128" ElseIf Check0(0).Value = 1 Then AAA = "128" ElseIf Check0(3).Value = 1 Then AAA = "128" ElseIf Check0(2).Value = 1 Then AAA = "128" ElseIf Check0(5).Value = 1 Then AAA = "128" ElseIf Check0(4).Value = 1 Then AAA = "128" ElseIf Check0(7).Value = 1 Then AAA = "128" Else AAA = BBB End If
End Sub Private Sub Command1_Click(Index As Integer) tx_b(4) = Array(&HF0, 3, &H1, &H78, &H0, &H40, 0, 0, Hour(Time), Minute(Time), Second(Time), 0, 0, 0, 0) tx_REQ = 4 End Sub Private Sub Command2_Click(Index As Integer) Dim i, sumH, sumL As Integer tx_b(16) = Array(&H8, &H10, &H1, &H78, 0, &H8, &H10, Hour(Time), Minute(Time), Second(Time), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
For i = 0 To 7
hcd(i) = -VScroll1(i).Value
Next
hcd(10) = &H34: hcd(11) = &HDA
For i = 0 To 4
hcd(10) = hcd(10) Xor hcd(i * 2): hcd(11) = hcd(11) Xor hcd(i * 2 + 1)
Next
hcd(12) = &HFF: hcd(13) = &HFF: hcd(14) = &H12: hcd(15) = &H34
For i = 7 To 7 + 32: tx_b(16)(i) = hcd(i - 7): Next
tx_REQ = 16
End Sub
Private Sub Command3_Click() Dim i As Integer For i = 0 To 7 If Check0(i).Value = 1 And AC_data(i).Caption <> 0 Then Label2(i).Caption = Format(((Text0(i).Text - AC_data(i).Caption) / AC_data(i).Caption * 100), "0.0") ' If Abs(Val(Label2(i).Caption)) < 12 Then VScroll1(i).Value = -Val(Label2(i).Caption) * 10 + VScroll1(i).Value End If Next i End Sub
Private Sub VScroll1_Change(Index As Integer) Factor_label(Index).Caption = Format(-VScroll1(Index).Value / 10, " 0.0") End Sub
VERSION 5.00 Begin VB.Form frmAbout BorderStyle = 3 'Fixed Dialog Caption = "电动机保护器调试软件" ClientHeight = 3555 ClientLeft = 2340 ClientTop = 1935 ClientWidth = 5730 ClipControls = 0 'False Icon = "frmAbout.frx":0000 LinkTopic = "Form2" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 2453.724 ScaleMode = 0 'User ScaleWidth = 5380.766 ShowInTaskbar = 0 'False Begin VB.PictureBox picIcon AutoSize = -1 'True ClipControls = 0 'False Height = 540 Left = 240 Picture = "frmAbout.frx":08CA ScaleHeight = 337.12 ScaleMode = 0 'User ScaleWidth = 337.12 TabIndex = 1 Top = 240 Width = 540 End Begin VB.CommandButton cmdOK Cancel = -1 'True Caption = "确定" Default = -1 'True Height = 345 Left = 4125 TabIndex = 0 Top = 2625 Width = 1500 End Begin VB.CommandButton cmdSysInfo Caption = "系统信息(&S)..." Height = 345 Left = 4140 TabIndex = 2 Top = 3075 Width = 1485 End Begin VB.Line Line1 BorderColor = &H00808080& BorderStyle = 6 'Inside Solid Index = 1 X1 = 84.515 X2 = 5309.398 Y1 = 1687.583 Y2 = 1687.583 End Begin VB.Label lblDescription Caption = "本软件是西安亚川电力科技有限公司的电动机保护器专用调试软件。" ForeColor = &H00000000& Height = 1170 Left = 1050 TabIndex = 3 Top = 1125 Width = 3885 End Begin VB.Label lblTitle Caption = "西安亚川电力科技有限公司电动机保护调试软件" ForeColor = &H00000000& Height = 480 Left = 1050 TabIndex = 5 Top = 240 Width = 3885 End Begin VB.Line Line1 BorderColor = &H00FFFFFF& BorderWidth = 2 Index = 0 X1 = 98.6 X2 = 5309.398 Y1 = 1697.936 Y2 = 1697.936 End Begin VB.Label lblVersion Caption = "版本 2.00" Height = 225 Left = 1050 TabIndex = 6 Top = 780 Width = 3885 End Begin VB.Label lblDisclaimer Caption = "西安亚川电力科技有限公司 版权所有" ForeColor = &H00000000& Height = 825 Left = 255 TabIndex = 4 Top = 2625 Width = 3630 End End Attribute VB_Name = "frmAbout" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit
' 注册表关键字安全选项... Const READ_CONTROL = &H20000 Const KEY_QUERY_VALUE = &H1 Const KEY_SET_VALUE = &H2 Const KEY_CREATE_SUB_KEY = &H4 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10 Const KEY_CREATE_LINK = &H20 Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
' 注册表关键字 ROOT 类型... Const HKEY_LOCAL_MACHINE = &H80000002 Const ERROR_SUCCESS = 0 Const REG_SZ = 1 ' 独立的空的终结字符串 Const REG_DWORD = 4 ' 32位数字
Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location" Const gREGVALSYSINFOLOC = "MSINFO" Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO" Const gREGVALSYSINFO = "PATH"
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Sub cmdSysInfo_Click() Call StartSysInfo End Sub
Private Sub cmdOK_Click() Unload Me End Sub
Private Sub Form_Load() Me.Caption = "西安亚川电力科技有限公司 " lblVersion.Caption = "版本 " & App.Major & "." & App.Minor & "." & App.Revision lblTitle.Caption = "电动机保护器调试软件" End Sub
Public Sub StartSysInfo() On Error GoTo SysInfoErr
Dim rc As Long
Dim SysInfoPath As String
' 试图从注册表中获得系统信息程序的路径及名称...
If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
' 试图仅从注册表中获得系统信息程序的路径...
ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
' 已知32位文件版本的有效位置
If (Dir(SysInfoPath & "\MSINFO32.EXE") <> "") Then
SysInfoPath = SysInfoPath & "\MSINFO32.EXE"
' 错误 - 文件不能被找到...
Else
GoTo SysInfoErr
End If
' 错误 - 注册表相应条目不能被找到...
Else
GoTo SysInfoErr
End If
Call Shell(SysInfoPath, vbNormalFocus)
Exit Sub
SysInfoErr: MsgBox "此时系统信息不可用", vbOKOnly End Sub
Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean Dim i As Long ' 循环计数器 Dim rc As Long ' 返回代码 Dim hKey As Long ' 打开的注册表关键字句柄 Dim hDepth As Long ' Dim KeyValType As Long ' 注册表关键字数据类型 Dim tmpVal As String ' 注册表关键字值的临时存储器 Dim KeyValSize As Long ' 注册表关键自变量的尺寸 '------------------------------------------------------------ ' 打开 {HKEY_LOCAL_MACHINE...} 下的 RegKey '------------------------------------------------------------ rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' 打开注册表关键字
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' 处理错误...
tmpVal = String$(1024, 0) ' 分配变量空间
KeyValSize = 1024 ' 标记变量尺寸
'------------------------------------------------------------
' 检索注册表关键字的值...
'------------------------------------------------------------
rc = RegQueryValueEx(hKey, SubKeyRef, 0, _
KeyValType, tmpVal, KeyValSize) ' 获得/创建关键字值
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' 处理错误
If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then ' Win95 外接程序空终结字符串...
tmpVal = Left(tmpVal, KeyValSize - 1) ' Null 被找到,从字符串中分离出来
Else ' WinNT 没有空终结字符串...
tmpVal = Left(tmpVal, KeyValSize) ' Null 没有被找到, 分离字符串
End If
'------------------------------------------------------------
' 决定转换的关键字的值类型...
'------------------------------------------------------------
Select Case KeyValType ' 搜索数据类型...
Case REG_SZ ' 字符串注册关键字数据类型
KeyVal = tmpVal ' 复制字符串的值
Case REG_DWORD ' 四字节的注册表关键字数据类型
For i = Len(tmpVal) To 1 Step -1 ' 将每位进行转换
KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1))) ' 生成值字符。 By Char。
Next
KeyVal = Format$("&h" + KeyVal) ' 转换四字节的字符为字符串
End Select
GetKeyValue = True ' 返回成功
rc = RegCloseKey(hKey) ' 关闭注册表关键字
Exit Function ' 退出
GetKeyError: ' 错误发生后将其清除... KeyVal = "" ' 设置返回值到空字符串 GetKeyValue = False ' 返回失败 rc = RegCloseKey(hKey) ' 关闭注册表关键字 End Function