Modul 1:
Option Explicit
Public Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, ByRef lphModule As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long
Public Declare Function GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long
Public Declare Function GetModuleInformation Lib "PSAPI.DLL" (ByVal hProcess As Long, ByVal hModule As Long, lpmodinfo As MODULEINFO, ByVal cb As Long) As Long
Public Declare Function GetTickCount Lib "kernel32" () As Long
Public Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function WriteProcessMem Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public KO_TITLE As String
Public KO_HANDLE As Long
Public KO_PID As Long
Public Const PROCESS_ALL_ACCESS = &H1F0FFF
Public DINPUT_Handle As Long
Public DINPUT_lpBaseOfDLL As Long
Public DINPUT_SizeOfImage As Long
Public DINPUT_EntryPoint As Long
Public DINPUT_KEYDMA As Long
Public DINPUT_K_1 As Long
Public DINPUT_K_2 As Long
Public DINPUT_K_3 As Long
Public DINPUT_K_4 As Long
Public DINPUT_K_5 As Long
Public DINPUT_K_6 As Long
Public DINPUT_K_7 As Long
Public DINPUT_K_8 As Long
Public DINPUT_K_Z As Long
Public DINPUT_K_C As Long
Public DINPUT_K_S As Long
Public Type MODULEINFO
lpBaseOfDLL As Long
SizeOfImage As Long
EntryPoint As Long
End Type
' dll inject komutları
Public Function HookDI8() As Boolean
Dim Ret As Long
Dim lmodinfo As MODULEINFO
DINPUT_Handle = 0
DINPUT_Handle = FindModuleHandle("dinput8.dll")
Ret = GetModuleInformation(KO_HANDLE, DINPUT_Handle, lmodinfo, Len(lmodinfo))
If Ret 0 Then
With lmodinfo
DINPUT_EntryPoint = .EntryPoint
DINPUT_lpBaseOfDLL = .lpBaseOfDLL
DINPUT_SizeOfImage = .SizeOfImage
End With
Else
Exit Function
End If
SetupDInput
HookDI8 = True
End Function
Public Function FindModuleHandle(ModuleName As String) As Long
Dim hModules(1 To 256) As Long
Dim BytesReturned As Long
Dim ModuleNumber As Byte
Dim TotalModules As Byte
Dim FileName As String * 128
Dim ModName As String
EnumProcessModules KO_HANDLE, hModules(1), 1024, BytesReturned
TotalModules = BytesReturned / 4
For ModuleNumber = 1 To TotalModules
GetModuleFileNameExA KO_HANDLE, hModules(ModuleNumber), FileName, 128
ModName = Left(FileName, InStr(FileName, Chr(0)) - 1)
If UCase(Right(ModName, Len(ModuleName))) = UCase(ModuleName) Then
FindModuleHandle = hModules(ModuleNumber)
End If
Next
End Function
Sub SetupDInput()
DINPUT_KEYDMA = FindDInputKeyPtr
If DINPUT_KEYDMA 0 Then
DINPUT_K_1 = DINPUT_KEYDMA + 2
DINPUT_K_2 = DINPUT_KEYDMA + 3
DINPUT_K_3 = DINPUT_KEYDMA + 4
DINPUT_K_4 = DINPUT_KEYDMA + 5
DINPUT_K_5 = DINPUT_KEYDMA + 6
DINPUT_K_6 = DINPUT_KEYDMA + 7
DINPUT_K_7 = DINPUT_KEYDMA + 8
DINPUT_K_8 = DINPUT_KEYDMA + 9
DINPUT_K_Z = DINPUT_KEYDMA + 44
DINPUT_K_C = DINPUT_KEYDMA + 46
DINPUT_K_S = DINPUT_KEYDMA + 31
End If
End Sub
Function FindDInputKeyPtr() As Long
Dim pBytes() As Byte
Dim pSize As Long
Dim X As Long
pSize = DINPUT_SizeOfImage
ReDim pBytes(1 To pSize)
ReadByteArray DINPUT_lpBaseOfDLL, pBytes, pSize
For X = 1 To pSize - 10
If pBytes(X) = &H57 And pBytes(X + 1) = &H6A And pBytes(X + 2) = &H40 And pBytes(X + 3) = &H33 And pBytes(X + 4) = &HC0 And pBytes(X + 5) = &H59 And pBytes(X + 6) = &HBF Then
FindDInputKeyPtr = Val("&H" & IIf(Len(Hex(pBytes(X + 10))) = 1, "0" & Hex(pBytes(X + 10)), Hex(pBytes(X + 10))) & IIf(Len(Hex(pBytes(X + 9))) = 1, "0" & Hex(pBytes(X + 9)), Hex(pBytes(X + 9))) & IIf(Len(Hex(pBytes(X + 8))) = 1, "0" & Hex(pBytes(X + 8)), Hex(pBytes(X + 8))) & IIf(Len(Hex(pBytes(X + 7))) = 1, "0" & Hex(pBytes(X + 7)), Hex(pBytes(X + 7))))
Exit For
End If
Next
End Function
' Buraya ben yolla yazdım sizde istediğinizi yaza bilir siniz.
'ama prejedeki Butun Yolla yazan yerleri değiştirmelisiniz.
Function yolla(pKey As String) As Long
pKey = Strings.UCase(pKey)
Select Case pKey
Case "S"
yolla = DINPUT_K_S
Case "Z"
yolla = DINPUT_K_Z
Case "1"
yolla = DINPUT_K_1
Case "2"
yolla = DINPUT_K_2
Case "3"
yolla = DINPUT_K_3
Case "4"
yolla = DINPUT_K_4
Case "5"
yolla = DINPUT_K_5
Case "6"
yolla = DINPUT_K_6
Case "7"
yolla = DINPUT_K_7
Case "8"
yolla = DINPUT_K_8
Case "C"
yolla = DINPUT_K_C
End Select
End Function
Sub WriteByte(Addr As Long, pVal As Byte)
Dim pbw As Long
WriteProcessMem KO_HANDLE, Addr, pVal, 1, pbw
End Sub
Sub ReadByteArray(Addr As Long, pmem() As Byte, pSize As Long)
Dim Value As Byte
ReDim pmem(1 To pSize) As Byte
ReadProcessMem KO_HANDLE, Addr, pmem(1), pSize, 0&
End Sub
' Buraya ben TUS yazdım sizde istediğinizi yaza bilir siniz.
'ama prejedeki Butun TUS yazan yerleri değiştirmelisiniz.
Sub Tuş(pKey As Long, Optional pTimeMS As Long = 50)
WriteByte pKey, 128
f_Sleep pTimeMS, True
WriteByte pKey, 0
End Sub
Sub f_Sleep(pMS As Long, Optional pDoevents As Boolean = False)
Dim pTime As Long
pTime = GetTickCount
Do While pMS + pTime > GetTickCount
If pDoevents = True Then DoEvents
Loop
End Sub
' knight online Pencere komutları
Sub ko()
KO_TITLE = "Knight OnLine Client"
GetWindowThreadProcessId FindWindow(vbNullString, KO_TITLE), KO_PID
KO_HANDLE = OpenProcess(PROCESS_ALL_ACCESS, False, KO_PID)
If KO_PID 0 Then
Else
MsgBox "KnightOnline acık değil!!!", vbDefaultButton1, "Dikkat"
End
End If
End Sub
MODUL 2:
Option Explicit
Private Type MODULEINFO
lpBaseOfDLL As Long
SizeOfImage As Long
EntryPoint As Long
End Type
Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, ByRef lphModule As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long
Private Declare Function GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long
Private Declare Function GetModuleInformation Lib "PSAPI.DLL" (ByVal hProcess As Long, ByVal hModule As Long, lpmodinfo As MODULEINFO, ByVal cb As Long) As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function WriteProcessMem Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Const PROCESS_ALL_ACCESS = &H1F0FFF
Private DI_Handle As Long
Private DI_lpBaseOfDLL As Long
Private DI_SizeOfImage As Long
Private DI_EntryPoint As Long
Private DI_KEYDMA As Long
Public DI_KEY_1 As Long
Public DI_KEY_2 As Long
Public DI_KEY_3 As Long
Public DI_KEY_4 As Long
Public DI_KEY_5 As Long
Public DI_KEY_6 As Long
Public DI_KEY_7 As Long
Public DI_KEY_8 As Long
Public DI_KEY_Z As Long
Private KOHandle As Long
Public Sub Main()
Dim ProcessID As Long
Dim KOhWnd As Long
Dim mError As String
Dim Ret As Boolean
KOhWnd = FindWindow(vbNullString, "Knight OnLine Client")
GetWindowThreadProcessId KOhWnd, ProcessID
KOHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID)
If KOHandle = 0 Then
mError = "KO is not running."
GoTo ErrHandle
Else
Ret = HookDI
If Ret = False Then
mError = "Can't Hook Direct Input."
GoTo ErrHandle
End If
End If
Form1.Show
Exit Sub
ErrHandle:
MsgBox mError, vbInformation
Unload Form1
End
End Sub
Private Sub WriteByte(pAddy As Long, pVal As Byte)
Dim pbw As Long
WriteProcessMem KOHandle, pAddy, pVal, 1, pbw
End Sub
Private Sub ReadByteArray(pAddy As Long, pmem() As Byte, pSize As Long)
Dim Value As Byte
ReDim pmem(1 To pSize) As Byte
ReadProcessMem KOHandle, pAddy, pmem(1), pSize, 0&
End Sub
Private Function FindModuleHandle(ModuleName As String) As Long
Dim hModules(1 To 256) As Long
Dim BytesReturned As Long
Dim ModuleNumber As Byte
Dim TotalModules As Byte
Dim FileName As String * 128
Dim ModName As String
EnumProcessModules KOHandle, hModules(1), 1024, BytesReturned
TotalModules = BytesReturned / 4
For ModuleNumber = 1 To TotalModules
GetModuleFileNameExA KOHandle, hModules(ModuleNumber), FileName, 128
ModName = Left(FileName, InStr(FileName, Chr(0)) - 1)
If UCase(Right(ModName, Len(ModuleName))) = UCase(ModuleName) Then
FindModuleHandle = hModules(ModuleNumber)
End If
Next
End Function
Private Function FindDIKeyPtr() As Long
Dim pBytes() As Byte
Dim pSize As Long
Dim X As Long
pSize = DI_SizeOfImage
ReDim pBytes(1 To pSize)
ReadByteArray DI_lpBaseOfDLL, pBytes, pSize
For X = 1 To pSize - 10
If pBytes(X) = &H57 And pBytes(X + 1) = &H6A And pBytes(X + 2) = &H40 And pBytes(X + 3) = &H33 And pBytes(X + 4) = &HC0 And pBytes(X + 5) = &H59 And pBytes(X + 6) = &HBF Then
FindDIKeyPtr = Val("&H" & IIf(Len(Hex(pBytes(X + 10))) = 1, "0" & Hex(pBytes(X + 10)), Hex(pBytes(X + 10))) & IIf(Len(Hex(pBytes(X + 9))) = 1, "0" & Hex(pBytes(X + 9)), Hex(pBytes(X + 9))) & IIf(Len(Hex(pBytes(X + 8))) = 1, "0" & Hex(pBytes(X + 8)), Hex(pBytes(X + 8))) & IIf(Len(Hex(pBytes(X + 7))) = 1, "0" & Hex(pBytes(X + 7)), Hex(pBytes(X + 7))))
Exit For
End If
Next
End Function
Private Sub SetupDI()
DI_KEYDMA = FindDIKeyPtr
If DI_KEYDMA 0 Then
DI_KEY_1 = DI_KEYDMA + 2
DI_KEY_2 = DI_KEYDMA + 3
DI_KEY_3 = DI_KEYDMA + 4
DI_KEY_4 = DI_KEYDMA + 5
DI_KEY_5 = DI_KEYDMA + 6
DI_KEY_6 = DI_KEYDMA + 7
DI_KEY_7 = DI_KEYDMA + 8
DI_KEY_8 = DI_KEYDMA + 9
DI_KEY_Z = DI_KEYDMA + 44
End If
End Sub
Private Function HookDI() As Boolean
Dim Ret As Long
Dim lmodinfo As MODULEINFO
HookDI = False
DI_Handle = FindModuleHandle("dinput8.dll")
Ret = GetModuleInformation(KOHandle, DI_Handle, lmodinfo, Len(lmodinfo))
If Ret 0 Then
With lmodinfo
DI_EntryPoint = .EntryPoint
DI_lpBaseOfDLL = .lpBaseOfDLL
DI_SizeOfImage = .SizeOfImage
End With
Else
Exit Function
End If
SetupDI
HookDI = True
End Function
Private Sub f_Sleep(pMS As Long, Optional pDoevents As Boolean = False)
Dim pTime As Long
pTime = GetTickCount
Do While pMS + pTime > GetTickCount
If pDoevents = True Then DoEvents
Loop
End Sub
Public Sub DISendKeys(pKey As Long, Optional pTimeMS As Long = 50)
WriteByte pKey, 128
f_Sleep pTimeMS, True
WriteByte pKey, 0
End Sub
FORUM 1:
1 ADET COMBOBOX
1 ADET CHECKBOX
KODLAR:
Private Sub Check1_Click()
If Check1.Value = 1 Then
Check1.Caption = "DURDUR"
Timer1.Enabled = True
End If
If Check1.Value = 0 Then
Check1.Caption = "BAŞLAT"
Timer1.Enabled = False
End If
End Sub
Private Sub Form_Load()
MsgBox "Oto Z-1 Kombinasyonu 1 yerine başka bi sayı yazarsanız o sayı yapar "
ko ' knight pencere isim leri yuklenir
HookDI8 ' Driect dinput komutları yuklenir.
Timer1.Interval = "1"
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
'Ben karışık olmasın diye comboBoxsun Text'i ile secenek yapıyorum.
If Combo1.Text = "1" Then
Tuş yolla("1")
Tuş yolla("z")
End If
If Combo1.Text = "2" Then
Tuş yolla("2")
Tuş yolla("z")
End If
If Combo1.Text = "3" Then
Tuş yolla("3")
Tuş yolla("z")
End If
If Combo1.Text = "4" Then
Tuş yolla("4")
Tuş yolla("z")
End If
If Combo1.Text = "5" Then
Tuş yolla("5")
Tuş yolla("z")
End If
If Combo1.Text = "6" Then
Tuş yolla("6")
Tuş yolla("z")
End If
If Combo1.Text = "7" Then
Tuş yolla("7")
Tuş yolla("z")
End If
If Combo1.Text = "8" Then
Tuş yolla("8")
Tuş yolla("z")
End If
End Sub
FORUM 2:
2 ADET BUTON
KODLAR:
Option Explicit
Private Sub Command1_Click()
Timer1.Interval = 500
End Sub
Private Sub Command2_Click()
Timer1.Interval = 0
End Sub
Private Sub Form_Load()
End Sub
Private Sub Timer1_Timer()
DISendKeys DI_KEY_Z
DISendKeys DI_KEY_1
End Sub
Yorumlarınızı Esirgemeyin....
İnş Forum Yoneticileri Kızmaz


__________________