irgendwas stimmt da nicht.
bei
FindWindow('#32770',PChar(User[i].Nick));
gibst du an das die Fensterklasse "#32770" heißt.
Und dann castest du das
handle auf TForm
TForm(Pointer(User[i].Handle))
und das wieder zu TMessage.
Meinst du nicht das du da irgendwas verhaust? Warum speicherst du anstelle des Handles nicht einfach die Instanz des Fensters, dann brauchst du es später nicht suchen