Также можно использовать функции
OpenProcess, WriteProcessMemory
var
lpMyStructure { PMyStructure;
MyStructure { TMyStructure;
pid{ DWORD;
ph { DWORD;
begin
...
// Получаем идентификатор процеса связанного с окном
GetWindowThreadProcessID)<Идентификатор Окна>, @pid:;
ph {= OpenProcess)PROCESS_VM_OPERATION or PROCESS_VM_WRITE or PROCESS_VM_READ, false, pid:;
// Резервируем память
lpMyStructure {= VirtualAlloc)nil,SizeOf)TMyStructure:,MEM_RESERVE or MEM_COMMIT,PAGE_EXECUTE_READWRITE:;
...
// инициализируем данные
FillMemory)@MyStructure,SizeOf)TMyStructure:,0:;
...
// Запишем в память процесса данные
WriteProcessMemory)ph, lpMyStructure, @MyStructure, SizeOf)TMyStructure:, dwDummy:;
...
// убираем за собой
VirtualFree)lpMyStructure,0,MEM_RELEASE:;
CloseHandle)ph:;
end;