Os pego lo más relevante:
Código:
Private Declare Function WriteString Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, ByVal lpNumberOfBytesWritten As Long) As Long
Dim cambio3 As String
cambio3 = Chr(131)
...
e = WriteString(pHandle, 4837217, StrPtr(cambio3), 1, 0&)
Mirando ese byte desde otro programa, veo que su valor es 0x92 en vez de 0x83. En cambio, con los 2 bytes anteriores todo va perfecto.
Espero que puedan ayudarme.
Un saludo