C# 是否可以在不按SHIFT键的情况下通过SendKeys发送特殊字符?
我有一个应用程序,当SendKeys()发送一个C# 是否可以在不按SHIFT键的情况下通过SendKeys发送特殊字符?,c#,.net,C#,.net,我有一个应用程序,当SendKeys()发送一个SHIFT击键时,它会关闭(崩溃?)。shift键可以通过简单的shift字符、+、大写字母调用,也可以通过发送辅助键(如@)间接调用。在上述任何情况下,应用程序都将关闭。这是第三方应用程序,所以我无法修复他们的代码 我通过插入{CAPSLOCK}解决了资金问题。这并不能解决次要的关键问题。是否可以让SendKeys在不调用Shift的情况下发送特殊字符?字符:!@$%^&*(){}|:“? [可能先将它们转换为unicode表示或其他方式。我不想
SHIFT
击键时,它会关闭(崩溃?)。shift键可以通过简单的shift字符、+
、大写字母调用,也可以通过发送辅助键(如@
)间接调用。在上述任何情况下,应用程序都将关闭。这是第三方应用程序,所以我无法修复他们的代码
我通过插入{CAPSLOCK}
解决了资金问题。这并不能解决次要的关键问题。是否可以让SendKeys在不调用Shift的情况下发送特殊字符?字符:!@$%^&*(){}|:“?
[可能先将它们转换为unicode表示或其他方式。我不想手动将所有这些字符映射到unicode。不确定基础代码是否仍会点击SHIFT]
更新这是所要求的代码
SetForegroundWindow(windowHandle);
string keySequence = stringVariable + "{TAB}" + "aa";//works fine
//string keySequence = stringVariable + "{TAB}" + "a+a";//crash
//string keySequence = stringVariable + "{TAB}" + "aS";//crash
//string keySequence = stringVariable + "{TAB}" + "a@";//crash
SendKeys.SendWait(keySequence);
另一个应用程序是用.net编写的吗?@digEmAll-其中一些是,其他部分是C/C++。我不知道这对您是否可行,但您可以使用SendMessage windows API直接发送所需的文本而不是键。请看一个如何将文本发送到记事本的示例。您能发布实际发送的代码吗?我有电子表格使用SendKeys,但我能想到的Shift键没有问题。不确定是否会更好,但可能值得一看