Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以在不按SHIFT键的情况下通过SendKeys发送特殊字符?_C#_.net - Fatal编程技术网

C# 是否可以在不按SHIFT键的情况下通过SendKeys发送特殊字符?

C# 是否可以在不按SHIFT键的情况下通过SendKeys发送特殊字符?,c#,.net,C#,.net,我有一个应用程序,当SendKeys()发送一个SHIFT击键时,它会关闭(崩溃?)。shift键可以通过简单的shift字符、+、大写字母调用,也可以通过发送辅助键(如@)间接调用。在上述任何情况下,应用程序都将关闭。这是第三方应用程序,所以我无法修复他们的代码 我通过插入{CAPSLOCK}解决了资金问题。这并不能解决次要的关键问题。是否可以让SendKeys在不调用Shift的情况下发送特殊字符?字符:!@$%^&*(){}|:“? [可能先将它们转换为unicode表示或其他方式。我不想

我有一个应用程序,当SendKeys()发送一个
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键没有问题。不确定是否会更好,但可能值得一看