İlk Olarak Forumumuza 2 adet Modul Ekleyelim

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 Biras Hİleyemi Kacıor ne
__________________