⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 寄存器助手,是我自己写的一个可以快速查看寄存器的十进制的值的工具
💻 FRM
📖 第 1 页 / 共 4 页
字号:
      Height          =   210
      Left            =   4470
      TabIndex        =   116
      Top             =   7245
      Width           =   1470
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 
Const SWP_NOMOVE = &H2 '不更动目前视窗位置
Const SWP_NOSIZE = &H1 '不更动目前视窗大小
Const HWND_TOPMOST = -1 '设定为最上层
Const HWND_NOTOPMOST = -2 '取消最上层设定
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
'定义全局变量
Dim a(32) As Integer '寄存器数据
Dim TP As Boolean '焦点在哪个文本框

Private Sub Check1_Click()
'窗口始终在上
If Check1.Value = 1 Then
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
Else
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
End If
End Sub

Private Sub Form_Load()
'初始化变量和控件
TP = True
Check1.Value = 1 '窗口始终在上选择
Option1(0).Value = True
Option2(0).Value = True
Option3(0).Value = True

End Sub

Private Sub Command1_Click(Index As Integer)
'小按钮快速调整
TP = True
If Command1(Index).Caption = "1" Then
Command1(Index).Caption = "0"
Else
Command1(Index).Caption = "1"
End If
Text1(Index).Text = Command1(Index).Caption
Text1(Index).SetFocus

End Sub

Private Sub Command2_Click(Index As Integer)
Dim i As Integer

Select Case Index
Case 0:
        TP = True
        For i = 0 To 15
        Text1(i).Text = "0"
        Next i
        Text1(0).SetFocus
Case 1:
        TP = True
        For i = 0 To 15
        Text1(i).Text = "1"
        Next i
        Text1(0).SetFocus
Case 2:
        TP = True
        For i = 16 To 31
        Text1(i).Text = "0"
        Next i
        Text1(16).SetFocus
Case 3:
        TP = True
        For i = 16 To 31
        Text1(i).Text = "1"
        Next i
        Text1(16).SetFocus
Case 4:
    End
Case 5:
        TP = False
        Text3(0).Text = "FFFF"
        Text3(1).Text = "FFFF"
        Text3(1).SetFocus
Case 6:
        TP = False
        Text3(0).Text = "0000"
        Text3(1).Text = "0000"
        Text3(1).SetFocus
Case 7: '说明按钮
    MsgBox "说明"
End Select
End Sub
Private Sub CalcDecF32()
'32位浮点Float

End Sub

Private Sub CalcDecS32()
'计算32位有符号数
Dim Si, i As Long
Si = 0
For i = 0 To 30
    Si = Si + a(i) * 2 ^ i
Next i
If a(31) = 1 Then
    Text2(6).Text = Trim(Format(2147483648# - Si, "-0000000000"))
Else
    Text2(6).Text = Trim(Format(Si, "+0000000000"))
End If

End Sub

Private Sub CalcDecU32()
'计算32位无符号数
Dim Si, i As Long
Si = 0
For i = 0 To 31
    Si = Si + a(i) * 2 ^ i
Next i
    Text2(6).Text = Trim(Format(Si, "0000000000"))

End Sub


Private Sub CalcDecU8()
'计算8位无符号数
Dim Si As Integer
Si = 0
For i = 0 To 7
Si = Si + a(i) * 2 ^ i
Next i
Text2(0).Text = Trim(Format(Si, " 000"))
Si = 0
For i = 8 To 15
Si = Si + a(i) * 2 ^ (i - 8)
Next i
Text2(1).Text = Trim(Format(Si, " 000"))
Si = 0
For i = 16 To 23
Si = Si + a(i) * 2 ^ (i - 16)
Next i
Text2(2).Text = Trim(Format(Si, " 000"))
Si = 0
For i = 24 To 31
Si = Si + a(i) * 2 ^ (i - 24)
Next i
Text2(3).Text = Trim(Format(Si, " 000"))

End Sub
Private Sub CalcDecS16()
'计算16位有符号数
Dim Si, i As Integer
Si = 0
For i = 0 To 14
    Si = Si + a(i) * 2 ^ i
Next i
If a(15) = 1 Then
    Text2(4).Text = Trim(Format(32768 - Si, "-00000"))
Else
    Text2(4).Text = Trim(Format(Si, "+00000"))
End If
Si = 0
For i = 16 To 30
    Si = Si + a(i) * 2 ^ (i - 16)
Next i
If a(31) = 1 Then
    Text2(5).Text = Trim(Format(32768 - Si, "-00000"))
Else
    Text2(5).Text = Trim(Format(Si, "+00000"))
End If

End Sub
Private Sub CalcDecU16()
'计算16位无符号数
Dim i As Integer
Dim Si As Long
Si = 0
For i = 0 To 15
    Si = Si + a(i) * 2 ^ i
Next i
Text2(4).Text = Trim(Format(Si, "00000"))
Si = 0
For i = 16 To 31
    Si = Si + a(i) * 2 ^ (i - 16)
Next i
Text2(5).Text = Trim(Format(Si, "00000"))

End Sub
Private Sub CalcDecS8()
'计算8位有符号数
Dim Si As Integer
Si = 0
For i = 0 To 6
Si = Si + a(i) * 2 ^ i
Next i
If a(7) = 1 Then
    Text2(0).Text = Trim(Format(128 - Si, "-000"))
Else
    Text2(0).Text = Trim(Format(Si, "+000"))
End If

Si = 0
For i = 8 To 14
Si = Si + a(i) * 2 ^ (i - 8)
Next i
If a(15) = 1 Then
    Text2(1).Text = Trim(Format(128 - Si, "-000"))
Else
    Text2(1).Text = Trim(Format(Si, "+000"))
End If

Si = 0
For i = 16 To 22
Si = Si + a(i) * 2 ^ (i - 16)
Next i
If a(23) = 1 Then
    Text2(2).Text = Trim(Format(128 - Si, "-000"))
Else
    Text2(2).Text = Trim(Format(Si, "+000"))
End If

Si = 0
For i = 24 To 30
Si = Si + a(i) * 2 ^ (i - 24)
Next i
If a(31) = 1 Then
    Text2(3).Text = Trim(Format(128 - Si, "-000"))
Else
    Text2(3).Text = Trim(Format(Si, "+000"))
End If

End Sub

Private Function CalcHex() As String
'2进制计算16进制
Dim St As String
Dim Si As Integer

St = ""
For i = 31 To 0 Step -4
    Si = a(i) * 8 + a(i - 1) * 4 + a(i - 2) * 2 + a(i - 3)
    If Si < 10 Then
        St = St & Trim(Str(Si))
    Else
        Select Case Si
        Case 10: St = St & "A"
        Case 11: St = St & "B"
        Case 12: St = St & "C"
        Case 13: St = St & "D"
        Case 14: St = St & "E"
        Case 15: St = St & "F"
        End Select
    End If
Next i
CalcHex = St
End Function


Private Sub Option1_Click(Index As Integer)
If Index = 0 Then CalcDecS8
If Index = 1 Then CalcDecU8
End Sub

Private Sub Option2_Click(Index As Integer)
If Index = 0 Then CalcDecS16
If Index = 1 Then CalcDecU16
End Sub

Private Sub Option3_Click(Index As Integer)
If Index = 0 Then CalcDecS32
If Index = 1 Then CalcDecU32
If Index = 2 Then CalcDecF32
End Sub

Private Sub Text1_Change(Index As Integer)
'0,1文本框的变动

If Text1(Index).Text = "1" Or Text1(Index).Text = "0" Then
    Command1(Index).Caption = Text1(Index).Text
Else
    Text1(Index).Text = "0"
End If

For i = 0 To 31
    a(i) = CInt(Text1(i).Text)
Next i
If TP Then
    Text3(0).Text = Left(CalcHex(), 4)
    Text3(1).Text = Right(CalcHex(), 4)
End If
If Option1(0).Value Then CalcDecS8 '8位有符号Byte
If Option1(1).Value Then CalcDecU8 '8位无符号Byte
If Option2(0).Value Then CalcDecS16 '16位有符号Integer
If Option2(1).Value Then CalcDecU16 '16位无符号Integer
If Option3(0).Value Then CalcDecS32 '32位有符号Long
If Option3(1).Value Then CalcDecU32 '32位无符号Long
If Option3(2).Value Then CalcDecF32 '32位浮点Float

End Sub

Private Sub Text1_GotFocus(Index As Integer)
'0,1文本框取得焦点
TP = True
Text1(Index).SelStart = 0
Text1(Index).SelLength = 1
End Sub
Private Sub Text2_GotFocus(Index As Integer)
'10进制文本框取得焦点
Text2(Index).SelStart = 0
Text2(Index).SelLength = Len(Text2(Index).Text)
End Sub
Private Sub Text3_KeyPress(Index As Integer, KeyAscii As Integer)
'If KeyAscii <= Asc("a") And KeyAscii >= Asc("z") Then
'End If
End Sub

Private Sub Text3_Change(Index As Integer)
'16进制框改动
Dim i As Integer
Dim St As String
Text3(Index).Text = UCase$(Text3(Index).Text)
Text3(Index).SelStart = Len(Text3(Index).Text)
If Not TP Then
    If Len(Text3(0).Text) = 4 And Len(Text3(1).Text) = 4 Then
        For i = 1 To 4
            St = Mid(Text3(1).Text, i, 1)
            Select Case St
                Case "0":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
                Case "1":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
                Case "2":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
                Case "3":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
                Case "4":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
                Case "5":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
                Case "6":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
                Case "7":
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
                
                Case "8":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
                Case "9":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
                Case "A":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
                Case "B":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
                Case "C":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
                Case "D":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
                Case "E":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
                Case "F":
                Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
                Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
                Case Else '当0处理
                Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
                Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
                
            End Select
        Next i
        For i = 1 To 4
            St = Mid(Text3(0).Text, i, 1)
            Select Case St
                Case "0":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
                Case "1":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
                Case "2":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
                Case "3":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
                Case "4":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
                Case "5":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
                Case "6":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
                Case "7":
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
                
                Case "8":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
                Case "9":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
                Case "A":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
                Case "B":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
                Case "C":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
                Case "D":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
                Case "E":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
                Case "F":
                Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
                Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
                Case Else '当0处理
                Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
                Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
                
            End Select
        Next i
        End If
End If
End Sub

Private Sub Text3_GotFocus(Index As Integer)
'16进制编辑框
TP = False
Text3(Index).SelStart = 0
Text3(Index).SelLength = Len(Text3(Index).Text)
End Sub

Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
''0,1文本框光标键
If KeyCode = 37 Then If Index < 31 Then Text1(Index + 1).SetFocus '左移
If KeyCode = 39 Then If Index > 0 Then Text1(Index - 1).SetFocus  '右移
End Sub

Private Sub Text3_LostFocus(Index As Integer)
If Len(Text3(Index).Text) = 0 Then Text3(Index).Text = "0000"
If Len(Text3(Index).Text) = 1 Then Text3(Index).Text = "000" & Text3(Index).Text
If Len(Text3(Index).Text) = 2 Then Text3(Index).Text = "00" & Text3(Index).Text
If Len(Text3(Index).Text) = 3 Then Text3(Index).Text = "0" & Text3(Index).Text
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -