#PROCESS_VM_READ = $10
#Message_Init      = #WM_USER + 1 
#Message_String    = #WM_USER + 2

Procedure InitSendString(hWnd.l)
  Shared Target_hWnd.l
  Target_hWnd = hWnd
  ProcedureReturn SendMessage_(Target_hWnd, #Message_Init, 0, GetCurrentProcessId_()) 
EndProcedure

Procedure SendStringMessage(String.s)
  Shared Target_hWnd.l
  ProcedureReturn SendMessage_(Target_hWnd, #Message_String, @String, Len(String))
EndProcedure


hWnd = FindWindow_(0, "Send Target")
If hWnd = 0
  MessageRequester("","Target not found!",0)
  End
EndIf

If InitSendString(hWnd) = #False
  MessageRequester("", "Initialisation failed!",0)
  End
EndIf

OpenWindow(0, 0, 0, 300, 100, #PB_Window_SystemMenu, "Send Sender")
CreateGadgetList(WindowID())
StringGadget(0, 20, 40, 200, 20, "")
ButtonGadget(1, 230, 40, 50, 20, "Send")

Repeat
  Select WaitWindowEvent()
    Case #PB_EventCloseWindow: End
    Case #PB_EventGadget
      If EventGadgetID() = 1 
        If SendStringMessage(GetGadgetText(0)) = #False
          MessageRequester("","Sending failed!",0)
        EndIf
      EndIf
  EndSelect
ForEver