Originally posted by ndmmxiaomayi:
You need a compiler.
Show us the source codes. There are so many types of programming languages out there, don't expect me to figure out what programming language that the programmer used. I can't tell just by looking at the program.
sure
clsregistry.clsVERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Registry"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
'Registry Events
Public Event RegistryError(ByVal Number As Long, ByVal Description As String)
'Registry API declarations
Private Declare Function RegFlushKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey 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 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 RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
'Kernel32 declaration
Private Declare Function FormatMessage Lib "Kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
Private Declare Function GetVersionEx Lib "Kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type
'Operating System Platform ID constants
Private Const VER_PLATFORM_WIN32_NT = 2
'FormatMessage constants
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
'Registry Root Key constants
Public Enum RegRootKey
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_CONFIG = &H80000005
HKEY_CURRENT_USER = &H80000001
HKEY_DYN_DATA = &H80000006
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
End Enum
'Registry Data Type constants
Public Enum RegDataType
REG_SZ = 1
REG_BINARY = 3
REG_DWORD = 4
REG_DWORD_BIG_ENDIAN = 5
REG_DWORD_LITTLE_ENDIAN = 4
REG_QWORD = 11
REG_QWORD_LITTLE_ENDIAN = 11
REG_EXPAND_SZ = 2
REG_MULTI_SZ = 7
REG_NONE = 0
End Enum
'Registry base error code
Private Const ERROR_BASE = 50000
'Windows Error Code constants
Public Enum RegErrorCode
ERROR_SUCCESS = 0&
ERROR_MORE_DATA = ERROR_BASE + 234
ERROR_INVALID_FUNCTION = ERROR_BASE + 1
ERROR_FILE_NOT_FOUND = ERROR_BASE + 2&
ERROR_ACCESS_DENIED = ERROR_BASE + 5&
ERROR_INVALID_HANDLE = ERROR_BASE + 6&
ERROR_INVALID_ACCESS = ERROR_BASE + 12&
ERROR_OUTOFMEMORY = ERROR_BASE + 14&
ERROR_NETNAME_DELETED = ERROR_BASE + 64&
ERROR_NETWORK_ACCESS_DENIED = ERROR_BASE + 65&
ERROR_TOO_MANY_SESS = ERROR_BASE + 69&
ERROR_INVALID_PARAMETER = ERROR_BASE + 87
ERROR_BAD_PATHNAME = ERROR_BASE + 161&
End Enum
'Property variables
Private pSubKey As String
Private pRootKey As RegRootKey
Private pDataType As RegDataType
Private pValueName As String
Private pForceWrite As Boolean
Private pReportError As Boolean
Private Function IsWindowsNT() As Boolean
Dim lpOSVerInfo As OSVERSIONINFO
'Initialize the structure
lpOSVerInfo.dwOSVersionInfoSize = Len(lpOSVerInfo)
'Check Windows Platform ID
GetVersionEx lpOSVerInfo
If lpOSVerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT Then
'This is Windows NT
IsWindowsNT = True
End If
End Function
Private Sub RaiseError(ByVal Number As Long)
Dim Desc As String * 255
Dim nChar As Long
If Err.Number <> 0 Then
'Replace with local error if no error occurred in API
Number = Err.Number
Desc = Err.Description
Else
'Format the error code into description
nChar = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, Number, 0, Desc, 255, ByVal 0&)
Desc = Left(Desc, nChar)
End If
If ReportError Then
'Raise error
Err.Raise Number, "Registry", Desc
End If
RaiseEvent RegistryError(Number, Desc)
End Sub
Public Property Get ReportError() As Boolean
ReportError = pReportError
End Property
Public Property Let ReportError(ByVal Value As Boolean)
pReportError = Value
End Property
Public Property Get ForceWrite() As Boolean
ForceWrite = pForceWrite
End Property
Public Property Let ForceWrite(ByVal Value As Boolean)
pForceWrite = Value
End Property
Public Property Get RootKey() As RegRootKey
RootKey = pRootKey
End Property
Public Property Let RootKey(ByVal Value As RegRootKey)
pRootKey = Value
End Property
Public Property Get SubKey() As String
SubKey = pSubKey
End Property
Public Property Let SubKey(ByVal Value As String)
pSubKey = Value
End Property
Public Property Get ValueName() As String
ValueName = pValueName
End Property
Public Property Let ValueName(ByVal Value As String)
pValueName = Value
End Property
Public Property Get DataType() As RegDataType
DataType = pDataType
End Property
Public Property Let DataType(ByVal Value As RegDataType)
pDataType = Value
End Property
Public Property Get Data() As Variant
Dim lpBufferCurrency As Currency
Dim lpBufferBinary() As Byte
Dim lpBufferString As String
Dim lpBufferLong As Long
Dim nSize As Long
Dim hKey As Long
Dim lRet As Long
On Local Error GoTo Finally
'Open a handle to the required registry key
lRet = RegOpenKey(pRootKey, pSubKey, hKey)
If lRet = ERROR_SUCCESS Then
'Retrieve the data type and data size
RegQueryValueEx hKey, pValueName, 0&, pDataType, ByVal 0&, nSize
'Convert the buffer to the data type we wanted
Select Case pDataType
Case REG_BINARY 'Binary data
'Initialize buffer to retrieve data
ReDim lpBufferBinary(1 To nSize)
'Retrieve the binary data
lRet = RegQueryValueEx(hKey, pValueName, 0&, pDataType, lpBufferBinary(1), nSize)
If lRet = ERROR_SUCCESS Then
'Return the value
Data = lpBufferBinary
End If
Case REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ 'String
'Initialize buffer to retrieve string data
lpBufferString = Space(nSize)
'Retrieve the string data
lRet = RegQueryValueEx(hKey, pValueName, 0&, pDataType, ByVal lpBufferString, nSize)
If lRet = ERROR_SUCCESS Then
'Return the data
Data = Left(lpBufferString, nSize - 1)
End If
Case REG_DWORD, REG_DWORD_BIG_ENDIAN 'Long/Int32
'Retrieve the DWord value
lRet = RegQueryValueEx(hKey, pValueName, 0&, pDataType, lpBufferLong, nSize)
If lRet = ERROR_SUCCESS Then
'Return the value
Data = lpBufferLong
End If
Case REG_QWORD 'Currency/Int64
'Retrieve the QWord value
lRet = RegQueryValueEx(hKey, pValueName, 0&, pDataType, lpBufferCurrency, nSize)
If lRet = ERROR_SUCCESS Then
'Return the value
Data = lpBufferCurrency
End If
End Select
End If
Finally:
'Reset error information
RaiseError lRet
'Release handle
RegCloseKey hKey
End Property
Public Property Let Data(ByVal Value As Variant)
Dim hKey As Long
Dim lRet As Long
'Open a handle to the required key
lRet = RegCreateKey(pRootKey, pSubKey, hKey)
If lRet <> ERROR_SUCCESS Then RaiseError lRet
'Automatically determine the data type
Select Case VarType(Value)
Case vbByte, vbInteger, vbLong, vbBoolean
'DWord value
pDataType = REG_DWORD
lRet = RegSetValueEx(hKey, pValueName, 0&, pDataType, ByVal VarPtr(CLng(Value)), 4)
Case vbString
'LPStr value
pDataType = REG_SZ
If IsWindowsNT() Then
lRet = RegSetValueEx(hKey, pValueName, 0&, pDataType, ByVal StrPtr(StrConv(Value, vbFromUnicode)), Len(Value))
Else
lRet = RegSetValueEx(hKey, pValueName, 0&, pDataType, ByVal StrPtr(StrConv(Value, vbFromUnicode)), (Len(Value) \ 2))
End If
Case vbCurrency
'QWord value
pDataType = REG_QWORD
lRet = RegSetValueEx(hKey, pValueName, 0&, pDataType, ByVal VarPtr(CCur(Value)),

Case Else
'Unreconised data type
GoTo Finally
End Select
'Set the value of the key
If lRet <> ERROR_SUCCESS Then RaiseError lRet
If pForceWrite Then
'Force the operation system to write the changes
RegFlushKey hKey
End If
Finally:
'Close the handle
RegCloseKey hKey
End Property
Public Function GetData(Optional RootKey, Optional SubKey, Optional ValueName) As Variant
'Set optional property
If Not IsMissing(SubKey) Then Me.SubKey = SubKey
If Not IsMissing(RootKey) Then Me.RootKey = RootKey
If Not IsMissing(ValueName) Then Me.ValueName = ValueName
'Retrieve data
GetData = Me.Data
End Function
Public Sub SetData(ByVal Data, Optional RootKey, Optional SubKey, Optional ValueName)
'Set optional property
If Not IsMissing(SubKey) Then Me.SubKey = SubKey
If Not IsMissing(RootKey) Then Me.RootKey = RootKey
If Not IsMissing(ValueName) Then Me.ValueName = ValueName
'Set data
Me.Data = Data
End Sub
frm.Mspro.frmVERSION 5.00
Begin VB.Form frmMSPro
BorderStyle = 3 'Fixed Dialog
Caption = "MSPro v3"
ClientHeight = 6765
ClientLeft = 45
ClientTop = 435
ClientWidth = 6360
LinkTopic = "Form1"
LockControls = -1 'True
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6765
ScaleWidth = 6360
Begin VB.Timer tmrWindowedMode
Enabled = 0 'False
Interval = 1000
Left = 1080
Top = 6240
End
Begin VB.CheckBox chkFocusCheck
Alignment = 1 'Right Justify
Caption = "Focus Check :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Left = 640
TabIndex = 29
ToolTipText = "Specifies whether to pause all the macro when MapleStory is out of focus"
Top = 5160
Width = 1990
End
Begin VB.Timer tmrAutoHide
Interval = 1
Left = 600
Top = 6240
End
Begin VB.CommandButton cmdClose
Caption = "Close"
Height = 495
Left = 3413
TabIndex = 15
Top = 5760
Width = 1215
End
Begin VB.CommandButton cmdSave
Caption = "Save"
Height = 495
Left = 1733
TabIndex = 14
Top = 5760
Width = 1215
End
Begin VB.ComboBox cboAutoClicker
Height = 315
Left = 2430
Style = 2 'Dropdown List
TabIndex = 0
ToolTipText = "Assigns the hotkey to toggle auto-clicker"
Top = 840
Width = 1455
End
Begin VB.ComboBox cboAutoPotionHP
Height = 315
Left = 2430
Style = 2 'Dropdown List
TabIndex = 4
ToolTipText = "Assigns the hotkey to toggle HP auto-potion"
Top = 2280
Width = 1455
End
Begin VB.ComboBox cboAutoChat
Height = 315
Left = 2430
Style = 2 'Dropdown List
TabIndex = 1
ToolTipText = "Assigns the hotkey to toggle auto-chat"
Top = 1320
Width = 1455
End
Begin VB.ComboBox cboAutoLootKey
Height = 315
Left = 4575
Style = 2 'Dropdown List
TabIndex = 3
ToolTipText = "Assigns which pickup key to press when auto-loot is on"
Top = 1800
Width = 1455
End
Begin VB.ComboBox cboAutoLoot
Height = 315
Left = 2430
Style = 2 'Dropdown List
TabIndex = 2
ToolTipText = "Assigns the hotkey to toggle auto-loot"
Top = 1800
Width = 1455
End
Begin VB.ComboBox cboHPPotion
Height = 315
Left = 4575
Style = 2 'Dropdown List
TabIndex = 5
ToolTipText = "Assigns which HP potion key to press when HP is low"
Top = 2280
Width = 1455
End
Begin VB.CheckBox chkBeepNotify
Alignment = 1 'Right Justify
Caption = "Beep Notify :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Left = 810
TabIndex = 12
ToolTipText = "Specifies whether to beep when a hotkey is triggered"
Top = 4200
Width = 1815
End
Begin VB.ComboBox cboMPPotion
Height = 315
Left = 4590
Style = 2 'Dropdown List
TabIndex = 9
ToolTipText = "Assigns which MP potion key to press when MP is low"
Top = 3240
Width = 1455
End
Begin VB.ComboBox cboAutoPotionMP
Height = 315
Left = 2445
Style = 2 'Dropdown List
TabIndex = 8
ToolTipText = "Assigns the hotkey to toggle MP auto-potion"
Top = 3240
Width = 1455
End
Begin VB.HScrollBar hscHPAlarm
Height = 255
Left = 2415
Max = 100
Min = 1
TabIndex = 6
Top = 2760
Value = 30
Width = 3015
End
Begin VB.TextBox txtHPAlarm
Height = 285
Left = 5535
Locked = -1 'True
TabIndex = 7
Text = "txtHPAlarm"
ToolTipText = "Specifies the HP level to trigger auto-potion"
Top = 2760
Width = 495
End
Begin VB.TextBox txtMPAlarm
Height = 285
Left = 5550
Locked = -1 'True
TabIndex = 11
Text = "txtMPAlarm"
ToolTipText = "Specifies the MP level to trigger auto-potion"
Top = 3720
Width = 495
End
Begin VB.HScrollBar hscMPAlarm
Height = 255
Left = 2430
Max = 100
Min = 1
TabIndex = 10
Top = 3720
Value = 30
Width = 3015
End
Begin VB.CheckBox chkWindowedMode
Alignment = 1 'Right Justify
Caption = "Windowed Mode :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Left = 270
TabIndex = 13
ToolTipText = "Specifies whether to run MapleStory in windowed mode"
Top = 4680
Width = 2360
End
Begin VB.Timer tmrState
Interval = 1
Left = 120
Top = 6240
End
Begin VB.Line Line1
X1 = 120
X2 = 6240
Y1 = 600
Y2 = 600
End
Begin VB.Label lblSignature
Alignment = 1 'Right Justify
AutoSize = -1 'True
Caption = "lblSignature"
Height = 195
Left = 5400
TabIndex = 28
Top = 6480
Width = 825
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "Auto-Clicker:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 0
Left = 840
TabIndex = 27
Top = 840
Width = 1350
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "HP Auto-Potion:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 4
Left = 480
TabIndex = 26
Top = 2280
Width = 1710
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "Auto-Chat :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 1
Left = 975
TabIndex = 25
Top = 1320
Width = 1215
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "Auto-Loot :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 2
Left = 1005
TabIndex = 24
Top = 1800
Width = 1185
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "Key :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 3
Left = 4095
TabIndex = 23
Top = 1800
Width = 510
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "Key :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 5
Left = 4095
TabIndex = 22
Top = 2280
Width = 510
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "Key :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 8
Left = 4110
TabIndex = 21
Top = 3240
Width = 510
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "MP Auto-Potion:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 7
Left = 480
TabIndex = 20
Top = 3240
Width = 1725
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "HP Alarm :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 6
Left = 1080
TabIndex = 19
Top = 2760
Width = 1125
End
Begin VB.Label Label
Alignment = 1 'Right Justify
Caption = "MP Alarm :"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Index = 9
Left = 1080
TabIndex = 18
Top = 3720
Width = 1140
End
Begin VB.Label lblHook
Alignment = 1 'Right Justify
Caption = "MSPro Status:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Left = 240
TabIndex = 17
Top = 120
Width = 1545
End
Begin VB.Label lblState
Alignment = 2 'Center
Caption = "lblState"
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 300
Left = 1920
TabIndex = 16
Top = 120
Width = 4245
End
End
Attribute VB_Name = "frmMSPro"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'DirectInput ScanCode Constants
Private Const DIK_ESCAPE = 1
Private Const DIK_1 = 2
Private Const DIK_2 = 3
Private Const DIK_3 = 4
Private Const DIK_4 = 5
Private Const DIK_5 = 6
Private Const DIK_6 = 7
Private Const DIK_7 = 8
Private Const DIK_8 = 9
Private Const DIK_9 = 10
Private Const DIK_0 = 11
Private Const DIK_MINUS = 12
Private Const DIK_EQUALS = 13
Private Const DIK_BACKSPACE = 14
Private Const DIK_TAB = 15
Private Const DIK_Q = 16
Private Const DIK_W = 17
Private Const DIK_E = 18
Private Const DIK_R = 19
Private Const DIK_T = 20
Private Const DIK_Y = 21
Private Const DIK_U = 22
Private Const DIK_I = 23
Private Const DIK_O = 24
Private Const DIK_P = 25
Private Const DIK_LBRACKET = 26
Private Const DIK_RBRACKET = 27
Private Const DIK_RETURN = 28
Private Const DIK_LCONTROL = 29
Private Const DIK_A = 30
Private Const DIK_S = 31
Private Const DIK_D = 32
Private Const DIK_F = 33
Private Const DIK_G = 34
Private Const DIK_H = 35
Private Const DIK_J = 36
Private Const DIK_K = 37
Private Const DIK_L = 38
Private Const DIK_SEMICOLON = 39
Private Const DIK_APOSTROPHE = 40
Private Const DIK_GRAVE = 41
Private Const DIK_LSHIFT = 42
Private Const DIK_BACKSLASH = 43
Private Const DIK_Z = 44
Private Const DIK_X = 45
Private Const DIK_C = 46
Private Const DIK_V = 47
Private Const DIK_B = 48
Private Const DIK_N = 49
Private Const DIK_M = 50
Private Const DIK_COMMA = 51
Private Const DIK_PERIOD = 52
Private Const DIK_SLASH = 53
Private Const DIK_RSHIFT = 54
Private Const DIK_MULTIPLY = 55
Private Const DIK_LALT = 56
Private Const DIK_SPACE = 57
Private Const DIK_CAPSLOCK = 58
Private Const DIK_F1 = 59
Private Const DIK_F2 = 60
Private Const DIK_F3 = 61
Private Const DIK_F4 = 62
Private Const DIK_F5 = 63
Private Const DIK_F6 = 64
Private Const DIK_F7 = 65
Private Const DIK_F8 = 66
Private Const DIK_F9 = 67
Private Const DIK_F10 = 68
Private Const DIK_NUMLOCK = 69
Private Const DIK_SCROLL = 70
Private Const DIK_NUMPAD7 = 71
Private Const DIK_NUMPAD8 = 72
Private Const DIK_NUMPAD9 = 73
Private Const DIK_SUBTRACT = 74
Private Const DIK_NUMPAD4 = 75
Private Const DIK_NUMPAD5 = 76
Private Const DIK_NUMPAD6 = 77
Private Const DIK_ADD = 78
Private Const DIK_NUMPAD1 = 79
Private Const DIK_NUMPAD2 = 80
Private Const DIK_NUMPAD3 = 81
Private Const DIK_NUMPAD0 = 82
Private Const DIK_DECIMAL = 83
Private Const DIK_F11 = 87
Private Const DIK_F12 = 88
Private Const DIK_NUMPADENTER = 156
Private Const DIK_RCONTROL = 157
Private Const DIK_DIVIDE = 181
Private Const DIK_RALT = 184
Private Const DIK_HOME = 199
Private Const DIK_UP = 200
Private Const DIK_PAGEUP = 201
Private Const DIK_LEFT = 203
Private Const DIK_RIGHT = 205
Private Const DIK_END = 207
Private Const DIK_DOWN = 208
Private Const DIK_PAGEDOWN = 209
Private Const DIK_INSERT = 210
Private Const DIK_DELETE = 211
'MSPro Functions
Private Declare Sub MSPro_Initialize Lib "MSPro_v3" ()
Private Declare Sub MSPro_Finalize Lib "MSPro_v3" ()
Private Declare Sub MSPro_SendKeystroke Lib "MSPro_v3" (ByVal bVk As Long)
Private Declare Function MSPro_GetState Lib "MSPro_v3" () As Long
Private Declare Sub MSPro_SetConfig1 Lib "MSPro_v3" (ByVal vKey As Long)
Private Declare Sub MSPro_SetConfig2 Lib "MSPro_v3" (ByVal vKey As Long)
Private Declare Sub MSPro_SetConfig3 Lib "MSPro_v3" (ByVal vKey As Long, ByVal vKey2 As Long)
Private Declare Sub MSPro_SetConfig4 Lib "MSPro_v3" (ByVal vKey As Long, ByVal vKey2 As Long, ByVal Alarm As Long)
Private Declare Sub MSPro_SetConfig5 Lib "MSPro_v3" (ByVal vKey As Long, ByVal vKey2 As Long, ByVal Alarm As Long)
Private Declare Sub MSPro_SetConfig6 Lib "MSPro_v3" (ByVal Enabled As Long)
Private Declare Sub MSPro_SetConfig7 Lib "MSPro_v3" (ByVal Enabled As Long)
'User32 Functions
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
'Kernel32 Functions
Private Declare Function LoadLibrary Lib "Kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
'MSPro State Constants
Private Const MSPRO_STATE_IDLE As Long = 0
Private Const MSPRO_STATE_HOOK As Long = 1
Private Const MSPRO_STATE_UNHOOK As Long = 2
Private Const MSPRO_STATE_PIPEINIT As Long = 3
Private Const MSPRO_STATE_PIPEOK As Long = 4
Private Const MSPRO_STATE_PIPEERR As Long = 5
Private Const MSPRO_STATE_GETFOCUS As Long = 6
Private Const MSPRO_STATE_LOSTFOCUS As Long = 7
'Configurations
Private hkBeepNotify As Boolean
Private hkWindowedMode As Boolean
Private hkFocusCheck As Boolean
Private hkAutoClicker As Long
Private hkAutoPotionHP As Long
Private hkHPPotion As Long
Private hkHPAlarm As Long
Private hkAutoPotionMP As Long
Private hkMPPotion As Long
Private hkMPAlarm As Long
Private hkAutoChat As Long
Private hkAutoLoot As Long
Private hkAutoLootKey As Long
Private StealthDll As String
Private Function GetMaplePath() As String
Dim Registry As Registry
'Construct a new Registry API wrapper
Set Registry = New Registry
'Locate MapleStory path
GetMaplePath = Registry.GetData(HKEY_LOCAL_MACHINE, "Software\Wizet\MapleStory", "ExecPath")
'Destruct the Registry API wrapper
Set Registry = Nothing
End Function
Private Sub ShowForm(ByVal Show As Boolean)
If Show Then
'Show and enable the form
Me.Height = 7245
Else
'Hide the form
Me.Height = 1020
End If
End Sub
Private Sub SetHotkey()
'Configure MSPro hotkeys
MSPro_SetConfig1 hkAutoClicker
MSPro_SetConfig2 hkAutoChat
MSPro_SetConfig3 hkAutoLoot, hkAutoLootKey
MSPro_SetConfig4 hkAutoPotionHP, hkHPPotion, hkHPAlarm
MSPro_SetConfig5 hkAutoPotionMP, hkMPPotion, hkMPAlarm
MSPro_SetConfig6 hkBeepNotify
MSPro_SetConfig7 hkFocusCheck
End Sub
Private Sub ComboBox_FillVirtualKeys(ByVal ComboBox As ComboBox, Optional ByVal IsOptional As Boolean = True)
'Clear the combo box
ComboBox.Clear
If IsOptional Then
'Optional item
ComboBox_AddItemWithItemData ComboBox, "[NONE]", 0
End If
'Fill combo box with virtual keys
ComboBox_AddItemWithItemData ComboBox, "F1", vbKeyF1
ComboBox_AddItemWithItemData ComboBox, "F2", vbKeyF2
ComboBox_AddItemWithItemData ComboBox, "F3", vbKeyF3
ComboBox_AddItemWithItemData ComboBox, "F4", vbKeyF4
ComboBox_AddItemWithItemData ComboBox, "F5", vbKeyF5
ComboBox_AddItemWithItemData ComboBox, "F6", vbKeyF6
ComboBox_AddItemWithItemData ComboBox, "F7", vbKeyF7
ComboBox_AddItemWithItemData ComboBox, "F8", vbKeyF8
ComboBox_AddItemWithItemData ComboBox, "F9", vbKeyF9
ComboBox_AddItemWithItemData ComboBox, "F10", vbKeyF10
ComboBox_AddItemWithItemData ComboBox, "F11", vbKeyF11
ComboBox_AddItemWithItemData ComboBox, "F12", vbKeyF12
ComboBox_AddItemWithItemData ComboBox, "A", vbKeyA
ComboBox_AddItemWithItemData ComboBox, "B", vbKeyB
ComboBox_AddItemWithItemData ComboBox, "C", vbKeyC
ComboBox_AddItemWithItemData ComboBox, "D", vbKeyD
ComboBox_AddItemWithItemData ComboBox, "E", vbKeyE
ComboBox_AddItemWithItemData ComboBox, "F", vbKeyF
ComboBox_AddItemWithItemData ComboBox, "G", vbKeyG
ComboBox_AddItemWithItemData ComboBox, "H", vbKeyH
ComboBox_AddItemWithItemData ComboBox, "I", vbKeyI
ComboBox_AddItemWithItemData ComboBox, "J", vbKeyJ
ComboBox_AddItemWithItemData ComboBox, "K", vbKeyK
ComboBox_AddItemWithItemData ComboBox, "L", vbKeyL
ComboBox_AddItemWithItemData ComboBox, "M", vbKeyM
ComboBox_AddItemWithItemData ComboBox, "N", vbKeyN
ComboBox_AddItemWithItemData ComboBox, "O", vbKeyO
ComboBox_AddItemWithItemData ComboBox, "P", vbKeyP
ComboBox_AddItemWithItemData ComboBox, "Q", vbKeyQ
ComboBox_AddItemWithItemData ComboBox, "R", vbKeyR
ComboBox_AddItemWithItemData ComboBox, "S", vbKeyS
ComboBox_AddItemWithItemData ComboBox, "T", vbKeyT
ComboBox_AddItemWithItemData ComboBox, "U", vbKeyU
ComboBox_AddItemWithItemData ComboBox, "V", vbKeyV
ComboBox_AddItemWithItemData ComboBox, "W", vbKeyW
ComboBox_AddItemWithItemData ComboBox, "X", vbKeyX
ComboBox_AddItemWithItemData ComboBox, "Y", vbKeyY
ComboBox_AddItemWithItemData ComboBox, "Z", vbKeyZ
ComboBox_AddItemWithItemData ComboBox, "0", vbKey0
ComboBox_AddItemWithItemData ComboBox, "1", vbKey1
ComboBox_AddItemWithItemData ComboBox, "2", vbKey2
ComboBox_AddItemWithItemData ComboBox, "3", vbKey3
ComboBox_AddItemWithItemData ComboBox, "4", vbKey4
ComboBox_AddItemWithItemData ComboBox, "5", vbKey5
ComboBox_AddItemWithItemData ComboBox, "6", vbKey6
ComboBox_AddItemWithItemData ComboBox, "7", vbKey7
ComboBox_AddItemWithItemData ComboBox, "8", vbKey8
ComboBox_AddItemWithItemData ComboBox, "9", vbKey9
ComboBox_AddItemWithItemData ComboBox, "INSERT", vbKeyInsert
ComboBox_AddItemWithItemData ComboBox, "DELETE", vbKeyDelete
ComboBox_AddItemWithItemData ComboBox, "HOME", vbKeyHome
ComboBox_AddItemWithItemData ComboBox, "END", vbKeyEnd
ComboBox_AddItemWithItemData ComboBox, "PAGE UP", vbKeyPageUp
ComboBox_AddItemWithItemData ComboBox, "PAGE DOWN", vbKeyPageDown
ComboBox_AddItemWithItemData ComboBox, "CONTROL", vbKeyControl
ComboBox_AddItemWithItemData ComboBox, "SHIFT", vbKeyShift
ComboBox_AddItemWithItemData ComboBox, "TAB", vbKeyTab
End Sub
Private Sub ComboBox_FillDIScanCodes(ByVal ComboBox As ComboBox, Optional ByVal IsOptional As Boolean = True)
'Clear the combo box
ComboBox.Clear
If IsOptional Then
'Optional item
ComboBox_AddItemWithItemData ComboBox, "[NONE]", 0
End If
'Fill combo box with virtual keys
ComboBox_AddItemWithItemData ComboBox, "F1", DIK_F1
ComboBox_AddItemWithItemData ComboBox, "F2", DIK_F2
ComboBox_AddItemWithItemData ComboBox, "F3", DIK_F3
ComboBox_AddItemWithItemData ComboBox, "F4", DIK_F4
ComboBox_AddItemWithItemData ComboBox, "F5", DIK_F5
ComboBox_AddItemWithItemData ComboBox, "F6", DIK_F6
ComboBox_AddItemWithItemData ComboBox, "F7", DIK_F7
ComboBox_AddItemWithItemData ComboBox, "F8", DIK_F8
ComboBox_AddItemWithItemData ComboBox, "F9", DIK_F9
ComboBox_AddItemWithItemData ComboBox, "F10", DIK_F10
ComboBox_AddItemWithItemData ComboBox, "F11", DIK_F11
ComboBox_AddItemWithItemData ComboBox, "F12", DIK_F12
ComboBox_AddItemWithItemData ComboBox, "A", DIK_A
ComboBox_AddItemWithItemData ComboBox, "B", DIK_B
ComboBox_AddItemWithItemData ComboBox, "C", DIK_C
ComboBox_AddItemWithItemData ComboBox, "D", DIK_D
ComboBox_AddItemWithItemData ComboBox, "E", DIK_E
ComboBox_AddItemWithItemData ComboBox, "F", DIK_F
ComboBox_AddItemWithItemData ComboBox, "G", DIK_G
ComboBox_AddItemWithItemData ComboBox, "H", DIK_H
ComboBox_AddItemWithItemData ComboBox, "I", DIK_I
ComboBox_AddItemWithItemData ComboBox, "J", DIK_J
ComboBox_AddItemWithItemData ComboBox, "K", DIK_K
ComboBox_AddItemWithItemData ComboBox, "L", DIK_L
ComboBox_AddItemWithItemData ComboBox, "M", DIK_M
ComboBox_AddItemWithItemData ComboBox, "N", DIK_N
ComboBox_AddItemWithItemData ComboBox, "O", DIK_O
ComboBox_AddItemWithItemData ComboBox, "P", DIK_P
ComboBox_AddItemWithItemData ComboBox, "Q", DIK_Q
ComboBox_AddItemWithItemData ComboBox, "R", DIK_R
ComboBox_AddItemWithItemData ComboBox, "S", DIK_S
ComboBox_AddItemWithItemData ComboBox, "T", DIK_T
ComboBox_AddItemWithItemData ComboBox, "U", DIK_U
ComboBox_AddItemWithItemData ComboBox, "V", DIK_V
ComboBox_AddItemWithItemData ComboBox, "W", DIK_W
ComboBox_AddItemWithItemData ComboBox, "X", DIK_X
ComboBox_AddItemWithItemData ComboBox, "Y", DIK_Y
ComboBox_AddItemWithItemData ComboBox, "Z", DIK_Z
ComboBox_AddItemWithItemData ComboBox, "0", DIK_0
ComboBox_AddItemWithItemData ComboBox, "1", DIK_1
ComboBox_AddItemWithItemData ComboBox, "2", DIK_2
ComboBox_AddItemWithItemData ComboBox, "3", DIK_3
ComboBox_AddItemWithItemData ComboBox, "4", DIK_4
ComboBox_AddItemWithItemData ComboBox, "5", DIK_5
ComboBox_AddItemWithItemData ComboBox, "6", DIK_6
ComboBox_AddItemWithItemData ComboBox, "7", DIK_7
ComboBox_AddItemWithItemData ComboBox, "8", DIK_8
ComboBox_AddItemWithItemData ComboBox, "9", DIK_9
ComboBox_AddItemWithItemData ComboBox, "INSERT", DIK_INSERT
ComboBox_AddItemWithItemData ComboBox, "DELETE", DIK_DELETE
ComboBox_AddItemWithItemData ComboBox, "HOME", DIK_HOME
ComboBox_AddItemWithItemData ComboBox, "END", DIK_END
ComboBox_AddItemWithItemData ComboBox, "PAGE UP", DIK_PAGEUP
ComboBox_AddItemWithItemData ComboBox, "PAGE DOWN", DIK_PAGEDOWN
ComboBox_AddItemWithItemData ComboBox, "LCONTROL", DIK_LCONTROL
ComboBox_AddItemWithItemData ComboBox, "RCONTROL", DIK_RCONTROL
ComboBox_AddItemWithItemData ComboBox, "LSHIFT", DIK_LSHIFT
ComboBox_AddItemWithItemData ComboBox, "RSHIFT", DIK_RSHIFT
ComboBox_AddItemWithItemData ComboBox, "LALT", DIK_LALT
ComboBox_AddItemWithItemData ComboBox, "RALT", DIK_RALT
ComboBox_AddItemWithItemData ComboBox, "TAB", DIK_TAB
End Sub
Private Sub ComboBox_AddItemWithItemData(ByVal ComboBox As ComboBox, ByVal Item As String, ByVal ItemData As Long)
'Add the specified item along with its item data
ComboBox.AddItem Item
ComboBox.ItemData(ComboBox.ListCount - 1) = ItemData
End Sub
Private Function ComboBox_IndexFromItemData(ByVal ComboBox As ComboBox, ByVal ItemData As Long)
Dim i As Long
'Scan for item with corresponding item data
For i = 0 To ComboBox.ListCount - 1
If ComboBox.ItemData(i) = ItemData Then
'Return
ComboBox_IndexFromItemData = i
Exit For
End If
Next i
End Function
Private Function ComboBox_GetSelectedItemData(ByVal ComboBox As ComboBox) As Long
'Return the selected item data
If ComboBox.ListIndex > 0 Then
'Return
ComboBox_GetSelectedItemData = ComboBox.ItemData(ComboBox.ListIndex)
End If
End Function
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdSave_Click()
'Load up the hotkey settings
hkAutoClicker = ComboBox_GetSelectedItemData(cboAutoClicker)
hkAutoChat = ComboBox_GetSelectedItemData(cboAutoChat)
hkAutoLoot = ComboBox_GetSelectedItemData(cboAutoLoot)
hkAutoLootKey = ComboBox_GetSelectedItemData(cboAutoLootKey)
hkAutoPotionHP = ComboBox_GetSelectedItemData(cboAutoPotionHP)
hkHPPotion = ComboBox_GetSelectedItemData(cboHPPotion)
hkHPAlarm = hscHPAlarm.Value
hkAutoPotionMP = ComboBox_GetSelectedItemData(cboAutoPotionMP)
hkMPPotion = ComboBox_GetSelectedItemData(cboMPPotion)
hkMPAlarm = hscMPAlarm.Value
hkBeepNotify = chkBeepNotify.Value
hkWindowedMode = chkWindowedMode.Value
hkFocusCheck = chkWindowedMode.Value
'Save the hotkey settings
SaveSetting "MSPro", "Hotkeys", "AutoClicker", hkAutoClicker
SaveSetting "MSPro", "Hotkeys", "AutoPotionHP", hkAutoPotionHP
SaveSetting "MSPro", "Hotkeys", "HPPotion", hkHPPotion
SaveSetting "MSPro", "Hotkeys", "HPAlarm", hkHPAlarm
SaveSetting "MSPro", "Hotkeys", "AutoPotionMP", hkAutoPotionMP
SaveSetting "MSPro", "Hotkeys", "MPPotion", hkMPPotion
SaveSetting "MSPro", "Hotkeys", "MPAlarm", hkMPAlarm
SaveSetting "MSPro", "Hotkeys", "AutoChat", hkAutoChat
SaveSetting "MSPro", "Hotkeys", "AutoLoot", hkAutoLoot
SaveSetting "MSPro", "Hotkeys", "AutoLootKey", hkAutoLootKey
SaveSetting "MSPro", "Hotkeys", "BeepNotify", chkBeepNotify.Value
SaveSetting "MSPro", "Hotkeys", "WindowedMode", chkWindowedMode.Value
SaveSetting "MSPro", "Hotkeys", "FocusCheck", chkFocusCheck.Value
'Update the hotkeys
Call SetHotkey
End Sub
Private Sub Form_Load()
'Do not allow separate instance running simutaniously
If App.PrevInstance Then
Unload Me
End If
'Show the signature
lblSignature = ChrW$(&H4F) & ChrW$(&H70) & ChrW$(&H63) & ChrW$(&H6F) & ChrW$(&H64) & ChrW$(&H65) & ChrW$(&H30) & ChrW$(&H7

& ChrW$(&H39) & ChrW$(&H30) & ChrW$(&H20) & ChrW$(&H40) & ChrW$(&H20) & ChrW$(&H77) & ChrW$(&H77) & ChrW$(&H77) & ChrW$(&H2E) & ChrW$(&H4D) & ChrW$(&H50) & ChrW$(&H43) & ChrW$(&H46) & ChrW$(&H6F) & ChrW$(&H72) & ChrW$(&H75) & ChrW$(&H6D) & ChrW$(&H2E) & ChrW$(&H63) & ChrW$(&H6F) & ChrW$(&H6D)
'Move the form to right-upper corner
Me.Move Screen.Width - Me.Width, 0
ShowForm False
'Load up the hotkey settings
hkAutoClicker = GetSetting("MSPro", "Hotkeys", "AutoClicker", vbKeyF12)
hkAutoPotionHP = GetSetting("MSPro", "Hotkeys", "AutoPotionHP", vbKeyF11)
hkHPPotion = GetSetting("MSPro", "Hotkeys", "HPPotion", vbKeyDelete)
hkHPAlarm = GetSetting("MSPro", "Hotkeys", "HPAlarm", 30)
hkAutoPotionMP = GetSetting("MSPro", "Hotkeys", "AutoPotionMP", vbKeyF11)
hkMPPotion = GetSetting("MSPro", "Hotkeys", "MPPotion", vbKeyInsert)
hkMPAlarm = GetSetting("MSPro", "Hotkeys", "MPAlarm", 30)
hkAutoChat = GetSetting("MSPro", "Hotkeys", "AutoChat", vbKeyF10)
hkAutoLoot = GetSetting("MSPro", "Hotkeys", "AutoLoot", vbKeyF9)
hkAutoLootKey = GetSetting("MSPro", "Hotkeys", "AutoLootKey", vbKeyZ)
hkBeepNotify = GetSetting("MSPro", "Hotkeys", "BeepNotify", True)
hkWindowedMode = GetSetting("MSPro", "Hotkeys", "WindowedMode", False)
hkFocusCheck = GetSetting("MSPro", "Hotkeys", "FocusCheck", True)
'Initialize all combo boxes
ComboBox_FillVirtualKeys cboAutoClicker
ComboBox_FillVirtualKeys cboAutoPotionHP
ComboBox_FillDIScanCodes cboHPPotion, IsOptional:=False
ComboBox_FillVirtualKeys cboAutoPotionMP
ComboBox_FillDIScanCodes cboMPPotion, IsOptional:=False
ComboBox_FillVirtualKeys cboAutoChat
ComboBox_FillVirtualKeys cboAutoLoot
ComboBox_FillDIScanCodes cboAutoLootKey, IsOptional:=False
'Select the previous hotkey settings
cboAutoClicker.ListIndex = ComboBox_IndexFromItemData(cboAutoClicker, hkAutoClicker)
cboAutoPotionHP.ListIndex = ComboBox_IndexFromItemData(cboAutoPotionHP, hkAutoPotionHP)
cboHPPotion.ListIndex = ComboBox_IndexFromItemData(cboHPPotion, hkHPPotion)
hscHPAlarm.Value = hkHPAlarm
cboAutoPotionMP.ListIndex = ComboBox_IndexFromItemData(cboAutoPotionMP, hkAutoPotionMP)
cboMPPotion.ListIndex = ComboBox_IndexFromItemData(cboMPPotion, hkMPPotion)
hscMPAlarm.Value = hkMPAlarm
cboAutoChat.ListIndex = ComboBox_IndexFromItemData(cboAutoChat, hkAutoChat)
cboAutoLoot.ListIndex = ComboBox_IndexFromItemData(cboAutoLoot, hkAutoLoot)
cboAutoLootKey.ListIndex = ComboBox_IndexFromItemData(cboAutoLootKey, hkAutoLootKey)
chkBeepNotify.Value = Abs(hkBeepNotify)
chkWindowedMode.Value = Abs(hkWindowedMode)
chkFocusCheck.Value = Abs(hkFocusCheck)
'Erase the d3d8.dll
On Local Error Resume Next
Kill GetMaplePath() & "\d3d8.dll"
'Initialize MSPro and set the hook
Call MSPro_Initialize
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Finalize MSPro and release the hook
Call MSPro_Finalize
'Erase the d3d8.dll
On Local Error Resume Next
Kill GetMaplePath() & "\d3d8.dll"
End Sub
Private Sub hscHPAlarm_Change()
txtHPAlarm = hscHPAlarm.Value & "%"
End Sub
Private Sub hscHPAlarm_Scroll()
Call hscHPAlarm_Change
End Sub
Private Sub hscMPAlarm_Change()
txtMPAlarm = hscMPAlarm.Value & "%"
End Sub
Private Sub hscMPAlarm_Scroll()
Call hscMPAlarm_Change
End Sub
Private Sub tmrAutoHide_Timer()
Dim MousePos As POINTAPI
Dim WinRect As RECT
'Get mouse coordinate
GetCursorPos MousePos
'Get window rectangle coordinate
GetWindowRect Me.hwnd, WinRect
'Show/hide the form
ShowForm CBool(MousePos.x >= WinRect.Left And MousePos.x <= WinRect.Right And MousePos.y >= WinRect.Top And MousePos.y <= WinRect.Bottom And GetForegroundWindow() = Me.hwnd)
End Sub
Private Sub tmrState_Timer()
'Moniter MSPro state
Select Case MSPro_GetState()
Case MSPRO_STATE_IDLE
'MSPro is idle
lblState = "Idle"
lblState.ForeColor = vbBlue
lblState.ToolTipText = "MSPro is waiting for MapleStory. Please load up MapleStory after you have saved your configurations."
Case MSPRO_STATE_HOOK
'MapleStory is hooked
lblState = "Hooked"
lblState.ForeColor = vbMagenta
lblState.ToolTipText = "MapleStory is hooked. Establishing connection to server ..."
'Force windowed mode
tmrWindowedMode.Enabled = Abs(chkWindowedMode.Value)
Case MSPRO_STATE_PIPEINIT
'Pipe is initialized
lblState = "Connection Initialized"
lblState.ForeColor = vbMagenta
lblState.ToolTipText = "Connected to server. Waiting for server to respond ..."
Case MSPRO_STATE_PIPEOK
'Pipe is ready
lblState = "Ready. Enjoy !"
lblState.ForeColor = RGB(0, 155, 0) 'Dark Green
lblState.ToolTipText = "MapleStory is ready. Press have MapleStory on focus."
'Configure the hotkeys
Call SetHotkey
Case MSPRO_STATE_GETFOCUS
'MapleStory is in focus
lblState = "MapleStory On Spotlight"
lblState.ForeColor = RGB(0, 155, 0) 'Dark Green
lblState.ToolTipText = "MapleStory is on focus. To toggle the macro, press the hotkey you have specified."
Case MSPRO_STATE_LOSTFOCUS
'MapleStory lost focus
lblState = "Focus lost !"
lblState.ForeColor = vbMagenta
lblState.ToolTipText = "Focus is lost. Macro will be temporary disabled. To keep the macro enabled, untick Focus Check."
Case MSPRO_STATE_UNHOOK
'MapleStory is unhooked
lblState = "Disconnected"
lblState.ForeColor = vbRed
lblState.ToolTipText = "MSPro found that MapleStory is closed."
'Erase the d3d8.dll
On Local Error Resume Next
Kill GetMaplePath() & "\d3d8.dll"
Case Else
'Unknown state
lblState = "Unknown"
lblState.ForeColor = vbBlack
End Select
End Sub
Private Sub tmrWindowedMode_Timer()
'Copy d3d8.dll into MapleStory folder
FileCopy App.Path & "\d3d8.dll", GetMaplePath() & "\d3d8.dll"
'Done
tmrWindowedMode.Enabled = False
End Sub