我使用c#编写了一个win应用程序,可自动联系其他应用程序,如浏览器。我想在我的win应用程序中复制一些内容,并将其粘贴到浏览器中,而不需要用户单击或移动鼠标。 我对模拟鼠标cliks没有任何问题,但我有模拟键盘敲击的问题。复制( Ctrl + c )始终可以正常工作,但是当我想在剪贴板中粘贴任何内容时,有时可以正常工作,有时却不能。 Follwing更多是关于我的问题: 我想使用C#来 Ctrl + v ,换句话说我想用剪贴板将一些东西粘贴到另一个使用C#的应用程序。
我使用以下代码:
SendKeys.Send("^{v}");
我也试过以下代码:
SendKeys.Send("^(v)");
但问题是,它有时会导致粘贴操作,有时只会触发 v 键。任何人都可以帮助我的应用程序出错吗? 另一个问题是,当其他应用想要访问它时访问剪贴板是否存在问题?
答案 0 :(得分:1)
使用SendKeys.Send
时,您需要使用括号来保存多个修改器。但是,由于您只有一个修饰符,因此您不需要进行任何分组,只应发送"^v"
。
花括号{}
用于指定{ENTER}
等特殊键,SendKey.Send
docs
根据docs:
要指定在按下其他几个键的同时按住SHIFT,CTRL和ALT的任意组合,请将这些键的代码括在括号中。例如,要指定在按下E和C时按住SHIFT,请使用" +(EC)"。要指定在按下E时按住SHIFT,然后按C而不按SHIFT,请使用" + EC"。
答案 1 :(得分:0)
有时,SendKey的第一个字符有问题,因此在发送时:
SendKey.Send("^c");
要么
SendKey.Send("^v");
您将只有c
或v
。
因此,为防止这种情况,您可以在代码之前简单地添加所有“空格”,如下所示:
SendKey.Send(" ^v");
并且不要忘记c
和v
必须是小写字母。