Gabriel Fair Asked: 2019-09-05 19:36:14 +0800 CST2019-09-05 19:36:14 +0800 CST 2019-09-05 19:36:14 +0800 CST 在 Windows 10“打开方式”对话框中添加“将 URI 复制到剪贴板”选项 772 背景 当我单击此链接时,Windows 会尝试使用应用程序打开它。这是因为 URI 的结构如下: 位于链接twitter://realDonaldTrump/status/266259787405225984的twitter协议位置。 当我在 Windows 10 UWP(如“Messenger”)中单击此链接时,由于 Windows 将其注册为应用程序 URI,我无法解决它。这是有道理的,但我想对这种行为有一些控制。 问题 如何在“打开方式”对话框中添加“将 URI 复制到剪贴板”按钮?下面是我正在谈论的图像: windows-10 clipboard 1 个回答 Voted Best Answer Worthwelle 2019-09-06T10:40:58+08:002019-09-06T10:40:58+08:00 我不知道将其添加到“打开方式”对话框的方法,但可以将复制 URI 作为该协议的默认操作。这可以通过对注册表进行一些修改来实现。在大多数情况下,文件和协议关联正是您从命令行运行某些内容时需要输入的内容。 文件和协议关联存储到HKEY_CLASSES_ROOT注册表配置单元并从中读取。(有关文件关联的更多信息,此答案可能会对您有所帮助。) .reg档案_ 下面列出了您想要做的一个非常简单的协议定义: ; twitter_protocol.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\twitter] @="URL:twitter" "URL Protocol"="" [HKEY_CLASSES_ROOT\twitter\shell] @="open" [HKEY_CLASSES_ROOT\twitter\shell\open] [HKEY_CLASSES_ROOT\twitter\shell\open\command] @="cmd /c ECHO|SET /P=%1|CLIP" 将其复制到名为的文件中twitter_protocol.reg并双击它以将其导入注册表。 说明 您可以在这些键中指定许多选项。在协议关联的情况下,重要的是: HKEY_CLASSES_ROOT\<protocol>- 之前的字符串://。 HKEY_CLASSES_Root\<protocol>- (Default)- 协议的描述,例如“Twitter URL”。 HKEY_CLASSES_ROOT\<protocol>- URL Protocol- 这指定这是一个协议关联,应该留空。 HKEY_CLASSES_ROOT\<protocol>\shell\open\command- (Default)- 指定打开相关应用程序的命令行。 在这种情况下,我们将命令行选项设置为cmd /c ECHO|SET /P=%1|CLIP,所以让我们分解一下: cmd /c ...将打开一个命令提示符窗口来运行您的命令。ECHO并且SET是命令行例程,而不是单独的单独应用程序,因此我们需要运行命令提示符才能使用它。 ECHO|SET /P=%1是一种过于复杂的说法,即“打印输入,最后没有额外的新行”。 ECHO它本身会将其后写入的任何内容打印到命令提示符,并在其后添加一个额外的行。 |SET /P=是用于删除换行符的 hack。SET通常用于设置环境变量,但在这种情况下我们不使用它。|下面解释。 %1是输入。在这种情况下,它是twitter://realDonaldTrump/status/266259787405225984。 |被称为“管道字符”,这意味着我们正在获取它之前的输出并将其作为输入提供给它之后的内容。 CLIP将读取管道输入(而不是使用它不支持的命令行参数)并将其复制到剪贴板。
我不知道将其添加到“打开方式”对话框的方法,但可以将复制 URI 作为该协议的默认操作。这可以通过对注册表进行一些修改来实现。在大多数情况下,文件和协议关联正是您从命令行运行某些内容时需要输入的内容。
文件和协议关联存储到
HKEY_CLASSES_ROOT
注册表配置单元并从中读取。(有关文件关联的更多信息,此答案可能会对您有所帮助。).reg
档案_下面列出了您想要做的一个非常简单的协议定义:
将其复制到名为的文件中
twitter_protocol.reg
并双击它以将其导入注册表。说明
您可以在这些键中指定许多选项。在协议关联的情况下,重要的是:
HKEY_CLASSES_ROOT\<protocol>
- 之前的字符串://
。HKEY_CLASSES_Root\<protocol>
-(Default)
- 协议的描述,例如“Twitter URL”。HKEY_CLASSES_ROOT\<protocol>
-URL Protocol
- 这指定这是一个协议关联,应该留空。HKEY_CLASSES_ROOT\<protocol>\shell\open\command
-(Default)
- 指定打开相关应用程序的命令行。在这种情况下,我们将命令行选项设置为
cmd /c ECHO|SET /P=%1|CLIP
,所以让我们分解一下:cmd /c ...
将打开一个命令提示符窗口来运行您的命令。ECHO
并且SET
是命令行例程,而不是单独的单独应用程序,因此我们需要运行命令提示符才能使用它。ECHO|SET /P=%1
是一种过于复杂的说法,即“打印输入,最后没有额外的新行”。ECHO
它本身会将其后写入的任何内容打印到命令提示符,并在其后添加一个额外的行。|SET /P=
是用于删除换行符的 hack。SET
通常用于设置环境变量,但在这种情况下我们不使用它。|
下面解释。%1
是输入。在这种情况下,它是twitter://realDonaldTrump/status/266259787405225984
。|
被称为“管道字符”,这意味着我们正在获取它之前的输出并将其作为输入提供给它之后的内容。CLIP
将读取管道输入(而不是使用它不支持的命令行参数)并将其复制到剪贴板。