【发布时间】:2020-03-19 22:17:41
【问题描述】:
我想制作一个转换单位(来自其他应用程序的数字)的 WPF 程序。 我让我的程序可以在系统托盘上运行,我也可以设置全局热键。 但这是我第一次制作 WPF 程序,所以我遇到了一些问题。
当用户按下全局热键时调用此函数。 要计算,我需要从其他应用程序复制/粘贴选定的文本。 如果你能帮助我,我将不胜感激。 (代码可能有点乱)
- 我的用户想要自动转换他选择的文本。
- 他现在像这样使用我的应用程序: 1. 选择文本 2. 按 Ctrl+C 3. 按 Ctrl+D(全局热键) 4. 按 Ctrl+V。
-
他想要的是:1.选择文本2.按Ctrl+D(全局热键)就完成了。
void ClipboardCalc() { string resultStr = string.Empty; string temp = string.Empty; string digit = string.Empty; double result = 0; temp = Clipboard.GetText(); // Need to copy "selected text from other application" to clipboard here. resultStr = Clipboard.GetText(); resultStr = string.Join(string.Empty, Regex.Match(resultStr, @"\d+(\.\d+)?")); try { result = Convert.ToDouble(resultStr); } catch (Exception ee) { } if (reverse_mode == false) result *= 3.30579; else result /= 3.30579; digit = "F" + textBox2.Text; if (result == (int)result) resultStr = result.ToString(); else resultStr = result.ToString(digit); resultStr = string.Format("{0:0.##########}", Convert.ToDouble(resultStr)); if (print_measure != false) { if (reverse_mode != false) resultStr += "평"; else resultStr += "m²"; } Clipboard.SetText(resultStr); // Then paste clipboard text here. //Clipboard.SetText(temp); }
【问题讨论】:
-
@PrateekShrivastava 我已经在上面的代码中使用了 Clipboard.SetText()。重点是从其他应用程序复制文本。
-
"...关键是从其他应用程序复制文本..." - 一个应用程序导致另一个应用程序突然发送内容到剪贴板。数据敏感性和所有这些
-
@soyoon3292 - 如果没有其他应用程序支持该功能,您无法从其他应用程序复制文本。就像我写了一个应用程序并说我想复制出现在 soyoon3292 应用程序中的东西。如果您不在应用中打开该功能,我的代码将无处可去。
-
@PrateekShrivastava 没有办法命令 ctrl+c 和 ctrl+v?