我很好奇为我的程序添加一个功能,所以当它检测到剪贴板文本是一定长度并以某些字符开头时,当它们粘贴剪贴板中的文本时,会粘贴一些不同的文本。
示例:
用户副本' abcdefghijklmnopqrstuvwxyz'
- 程序拦截识别特定字符串长度和起始字符并切换文本 -
用户粘贴' zyxwvutsrqponmlkjihgfedcba'
帮助将不胜感激:)
答案 0 :(得分:1)
如果您只需要指示:
要复制到剪贴板,您可以使用:
Clipboard.SetText("abcdefghijklmnopqrstuvwxyz");
使用此方法从ClipBoard获取文本:
string s = Clipboard.GetText();
获取文本后,您可以应用规则,例如检查长度和起始字符并进行转换,最后将转换后的文本添加到文本框中。
if (s.Length > 16 && s.StartsWith("abc")
{
// do your stuff here
string convertedText = ConvertText(s);
//finally
txtBoxToPasteTo.Text = convertedText;
}
要拦截粘贴,您需要创建自定义文本框
class InterceptedTextBox : System.Windows.Forms.TextBox
{
protected override void WndProc(ref Message m)
{
// WM_PASTE:
if (m.Msg == 0x302 && Clipboard.ContainsText()) {
this.Text = ConvertText(Clipboard.GetText());
return;
}
base.WndProc(ref m);
}
}