无法在我的电脑中粘贴任何文本或文件 - 剪贴板错误

时间:2013-02-22 10:06:53

标签: c# .net winforms clipboard

我正在使用代码来捕获应用程序的文本。

当我启动应用程序时,我无法将任何文本或文件复制并粘贴到我的电脑中。我知道为什么我会收到此错误,因为剪贴板每两秒或两次被清除,因为我已将代码保存在循环中对我和我的客户来说,如果他们在我们的电脑上使用我的应用程序,这是一个很大的问题。我想知道我们是否可以创建一个新的剪贴板,仅用于我的应用程序而不是使用我的桌面剪贴板,或者任何人都可以为我的问题提供任何解决方案我正在使用的代码是

        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);
        }

以下是我的问题的一些图片

我可以在运行应用程序时复制。 enter image description here

但是当我尝试粘贴

粘贴不突出显示, enter image description here

如果有人能帮助我,我们将非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我假设您已经/正在使用SendKeys执行复制操作,一旦找到或将焦点带到您试图复制其文本的窗口。 (您当前的代码只是清除剪贴板,没有在其上放置任何内容或使用其数据)您可能会尝试查看this question上使用的方法。该方法将允许您完全跳过使用剪贴板,并且具有额外的好处,即不要求您更改窗口焦点,这可能与最终用户的问题一样糟糕,因为不断清除剪贴板。 (这部分假设您使用SendKeys影响剪贴板,这只适用于我认为当前关注的窗口)