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.