5

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

当我启动应用程序时,我无法在我的电脑中复制和粘贴任何文本或文件。我知道为什么会出现此错误,因为剪贴板每隔一两秒就会被清除一次,因为我将代码保持在一个循环中。它是如果我和我的客户在他们的 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);
        }

这是我的问题的一些图像

我可以在运行应用程序时复制。 在此处输入图像描述

但是当我尝试粘贴时

粘贴不突出, 在此处输入图像描述

如果有人可以帮助我,将不胜感激。

提前致谢。

4

1 回答 1

0

我假设您将/正在使用 SendKeys 来执行复制操作,一旦您找到或将焦点带到您试图复制其文本的窗口。(您当前的代码只是清除剪贴板,而不是在上面放任何东西或使用它的数据)您可以尝试查看在这个问题上使用的方法。该方法将允许您完全跳过使用剪贴板,并且具有额外的好处,即不需要您更改窗口焦点,这对于您的最终用户来说可能与不断清除剪贴板一样糟糕。(这部分假设您使用 SendKeys 来影响剪贴板,我相信它只适用于当前聚焦的窗口)

于 2013-02-22T12:53:49.363 回答