Невозможно вставить любой текст или файл на моем компьютере - ошибка буфера обмена

Я использую код для захвата текста приложения.

Когда я запускаю приложение, я не могу скопировать и вставить любой текст или файл в свой pc.Я знаю, почему я получаю эту ошибку, потому что буфер обмена очищается каждую секунду или две, потому что я держал код в цикле. большая проблема для меня и моих клиентов, если они используют мое приложение на своей странице. Я хочу знать, можем ли мы создать новый буфер обмена только для моего использования приложения, а не с помощью буфера обмена на рабочем столе, или кто-нибудь может предложить любое решение для моей проблемы. Код Я использую это

        try
        {
            IEnumerator enumerator;
            MainModule.StrData = "";
            try
            {
                enumerator = this.chkListbox_odin1.CheckedIndices.GetEnumerator();
                IntPtr parentWnd = FindWindow((null), cboWindows.Text);
                IntPtr mdiClientWnd = FindWindowEx(parentWnd, IntPtr.Zero, "MDIClient", "");
                IntPtr marketwatchWnd = FindWindowEx(mdiClientWnd, IntPtr.Zero, null, windowname);
                while (enumerator.MoveNext())
                {
                    object objectValue = enumerator.Current;
                    this.WindowText(marketwatchWnd);
                }
                //    System.Windows.Forms.SendKeys.SendWait("{ESC}");
                //  Application.DoEvents();
            }
            finally
            {

            }
            Clipboard.Clear();
        }
        catch (Exception exception1)
        {
           // MessageBox.Show(exception1.Message);
        }

Вот некоторые изображения моей проблемы

Я могу скопировать, пока я запускаю свое приложение.

Но когда я пытаюсь вставить

Вставить не подсветка,

Было бы очень признательно, если бы кто-то мог мне помочь.

Заранее спасибо.

1 ответ

Решение

Я предполагаю, что вы будете использовать / используете SendKeys для выполнения операции копирования после того, как нашли или поместили фокус в окно, текст которого вы пытаетесь скопировать. (Ваш текущий код только очищает буфер обмена, ничего не помещая в него или не используя его данные). Вы можете попробовать изучить метод, использованный в этом вопросе. Этот метод позволит вам вообще отказаться от использования буфера обмена и даст дополнительное преимущество, заключающееся в том, что вам не нужно менять фокус окна, что может быть такой же серьезной проблемой для ваших конечных пользователей, как и постоянная очистка буфера обмена. (В этой части предполагается, что вы используете SendKeys для воздействия на буфер обмена, который, как мне кажется, работает только в текущем фокусированном окне)

Другие вопросы по тегам