Witam.
Mam taki problem. Chcę skopiować zaznaczony tekst (np. z Firefox'a) do schowka systemu używając skrótu klawiszowego. Rejestruję takowy skrót i obsługuję następująco:

           switch (m.Msg)
            {
                case WM_HOTKEY:
                    if ((short)m.WParam == hotkey.HotkeyID)
                    {
                        Clipboard.Clear();
                        SendKeys.SendWait("^c");
                        SendKeys.Flush();

                        if (Clipboard.ContainsText())
                        {
                            string text = Clipboard.GetText(TextDataFormat.UnicodeText);

                            RichTextBox rtb = new RichTextBox();
                            rtb.Text = text;
                            rtb.SelectAll();
                            rtb.SelectionFont = new Font(new FontFamily("Verdana"), 9.0f, FontStyle.Regular);

                            Clipboard.SetText(rtb.Rtf, TextDataFormat.Rtf);
           
                            
                        }
                        else
                        {
                            //MessageBox.Show("Nie ma tekstu w schowku!");
                        }
 
                    }
                    break;
                default:
                    base.WndProc(ref m);
                    break;
            }

Przy pierwszym użyciu wszystko działa ok: zaznaczam tekst, wciskam skrót klawiszowy a program odpowiednio mi ten tekst formatuje i kopiuje do schowka. Natomiast, gdy używam programu po raz kolejny to już nie działa, schowek jest pusty (jeszcze przed formatowaniem). Gdy powrócę do programu i wykonam w nim jakąś akcję (np. wcisnę przycisk) program działa, tyle że znów raz.
Jak rozwiązać ten problem?
Dziękuję za wszelkie propozycje.