c - 获取突出显示的文本并使用它打开程序(复制 clipboard.exe 行为)
问题描述
是否可以在任何程序中用光标突出显示文本,就像使用str+c并以突出显示的文本作为参数启动工具一样?
据我所知,在Linux和Windows中,可以使用自定义快捷方式调用脚本/程序。我假设 str+c 只是做同样的事情,用突出显示的文本作为参数调用一个小程序。如何复制这个?
出于演示目的,让我们使用这个 C 程序打印调用它的值:
#include <stdio.h>
int main(int argc, char**argv){
if(argc == 2){
printf("program called with: '%s'\n", argv[1]);
}
}
例如,可以在 Word 中键入文本“ HelloWorld ”,突出显示它,然后按 str+alt+p 之类的东西,调用
someprogram.exe HelloWorld
或者对于 Linux
一些程序 HelloWorld
我真的很好奇这是否可能。
编辑:我很想知道如何复制 clipboard.exe 功能。我已经编写了一个程序“write_custom.exe”,在删除之前的内容后,将任何作为参数 (argv[1]) 给出的内容存储在文本文件中。其他程序可以读取此文本文件的内容,因此可以使用此自定义剪贴板。它的目的主要是为了自学。
由于我刚开始编码生涯,我只知道 C,但我也愿意接受其他语言的解决方案。我的目标是在我的计算机和我的 Linux-VM 上运行这个 write_custom.exe,并将突出显示的文本作为参数。
解决方案
您可能需要查看ncurses (Linux) 和Console API (Windows)。该代码不会是跨平台的,但您可以很容易地编写一些代码来使它们共享一些基本行为:)。
推荐阅读
- javascript - 在音频文件语音到文本 microsoft sdk 中的一段不说话后保持单词偏移
- python - 如果路径有空格,Python检查2个字符串是否代表相同的路径
- c - C 严格别名是否使无类型静态内存池成为不可能?
- javascript - 为什么关键字“this”会在一个函数中被识别,而在同一个 Backbone 视图中却不能识别?
- python - 使用 gmail 时出错,帐户超出带宽
- c# - wsdl 服务中的可选属性
- three.js - Animated text ribbons in Three.js
- c# - DatabaseGeneratedOption.Computed 与 Int64 不工作
- ios - UICollectionView 在进行另一个 API 调用 Swift 时不加载新数据
- kotlin - 第一个项目一到就交付,对以下项目进行去抖动