- Код: Выделить всё
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Sub SomeFunc()
Beep
End Sub
Public Sub Main()
Dim nBytes(5) As Byte
nBytes(0) = &H9A 'call
CopyMemory VarPtr(nBytes(0)) + 1, AddressOf SomeFunc, 4
nBytes(5) = &HC3 'ret
Call CallWindowProc(VarPtr(nBytes(0)), 0, 0, 0, 0)
Stop
End Sub