Per copiare qualcosa negli appunti di Windows (almeno in .NET, per quanto ne so), è necessario farlo su un thread separato che si trova in modalità STA. Un esempio che ho usato è questo.
Thread thread = new Thread(() => Clipboard.SetText(s.Trim()));
thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start();
thread.Join();
Perché devo fare tutto questo invece di poter semplicemente chiamare:
Clipboard.SetText("text")