剪贴板在 C# 控制台应用程序上不起作用 [重复]

Posted

技术标签:

【中文标题】剪贴板在 C# 控制台应用程序上不起作用 [重复]【英文标题】:Clipboard doesnt work on C# console application [duplicate] 【发布时间】:2019-12-03 02:09:04 【问题描述】:

我使用 VS 2017 和 win 10,我正在制作一个简单的控制台应用程序,我想使用剪贴板,为此我包括使用 System.Windows.Forms;

但我收到错误:System.Windows 空间中不存在 Forms 命名空间的类型或名称,是否缺少任何程序集引用?

如果我在 Windows 之后提出一个观点并等待智能感知,我将无法获得表单选项。

   using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;

[STAThreadAttribute]
        static void Main(string[] args)
        
            String comando = "Inicio";
            String respuesta = "";
            //int[] vector;

            Console.WriteLine("CLI asp.net mvc");
            Console.WriteLine("Introduzca su opción");

            do
            
                comando = Console.ReadLine();

                switch (comando)
                
                    case "hp":
                        respuesta = "[HttpPost]";
                        break;
                    case "hv":
                        respuesta = "[HttpPost]" + Environment.NewLine + "[ValidateAntiForgeryToken]";
                        break;
                    case "vaft":
                        respuesta = "[ValidateAntiForgeryToken]";
                        break;

                
                Clipboard.SetText(respuesta);

                Console.WriteLine(respuesta);
             while (comando != "salir");

            Environment.Exit(1);
        

在 github 上还有其他我可以使用的类吗?还是改变这个?

在剪贴板中我得到:剪贴板在当前上下文中不存在

【问题讨论】:

@KenWhite OP 声称没有 - ***.com/questions/59146637/… ...很难看出 OP 如何无法在console specific answer 中获得非常详细的步骤来产生所需的结果,但显然 OP 有一些问题......我个人不知道'认为互操作比链接问题中的步骤更容易......但这只是我。 @AlexeiLevenkov:是的,我没有看到任何关于它不起作用的解释,甚至没有看到发布者尝试过。只是一条评论说没有用。我看不出它怎么可能失败,因为答案有 764 人赞成,这通常清楚地表明它已被许多人成功使用。 @KenWhite:“我尝试了通常的方法,但失败了,错误提示剪贴板无法识别”快速检查,我写下了我的答案 - 他缺少命名空间参考。 @Christopher:是的,该命名空间是必需的,这在我链接的帖子的答案中明确指出(对于 WinForms 和 WPF)。发帖人需要更仔细地阅读该答案——发布一个新的重复问题,因为他们没有打扰这样做,这对本网站没有好处;也没有发布对那个重复的答案,指出他们错过了什么。您可以在评论中执行此操作,同时投票以重复关闭问题。 Hernandez400 请确保遵循链接副本的每一步。您很有可能使用 .NET Core 或跳过“添加引用”步骤。根据您提供的有关第一种方法的信息,SO 不太可能以适合 SO Q&A 格式的方式帮助互操作解决方案(到目前为止,没有很好的迹象表明标准方法不适用于您的情况)。如果您仍然被阻止,我建议您重新阅读minimal reproducible example 指南并首先开始询问标准解决方案,因为它更有可能让您正常工作。 【参考方案1】:

System.Windows Namespace 中有一个剪贴板类。毫无疑问,这会比编写您自己的使用互操作的自定义代码更好。不过有some limitationes listed in Introductions。

它也被列为option for IPC。但这不是一个非常有用或可靠的。

【讨论】:

您在谈论与另一个名称空间不同的名称... OP 正在关注 ***.com/questions/3546016/…... 如果该答案无济于事,我怀疑您用来回答的风格是否会更有帮助...(这个答案也重复了链接帖子中的信息 - 考虑找出 OP 没有得到什么并只回答那部分而不是从标准中复制信息) @AlexeiLevenkov 我在您发表评论后几分钟就更新了问题。 Christopher - 我不确定你希望我在这里做什么。虽然我认为您的回答对 OP 或当前形式的网站没有用,但我尚未对其进行投票。你确定投票是你要我做的吗? @AlexeiLevenkov “停止不一致”怎么样?这是重复的内容的公认答案,仅提及托管类:***.com/a/3546026/3346583 |所以我写是错的,但别人写的时候总是对的?

以上是关于剪贴板在 C# 控制台应用程序上不起作用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

delete()在laravel 8控制器上不起作用[重复]

c#异步方法不起作用[重复]

为啥这个 Selenium 的拖放 C# 代码在 Chrome 上不起作用?

C# - Console.Beep 在 Windows Vista 上不起作用

ACCESS_COARSE_LOCATION 在 Android 6 上不起作用 [重复]

我不明白为啥 CSS 转换在 keydown 上不起作用 [重复]