我正在编写一个使用SendKeys
的应用,该应用会在文本可用时在光标处发送文本。每次应用程序必须写百分号时,它都会改写数字5。我发送10{%}
,输出为105
。我不知道如何简单地使%
符号出现。
来自MSDN:
加号(+),脱字号(^),百分号(%),代字号(〜)和 括号()对SendKeys具有特殊含义。指定以下一项 这些字符,将其括在大括号({})中。例如, 指定加号,使用“ {+}”。要指定大括号字符,请使用 “ {{}”和“ {}}”。
这里是重现此问题的非常简单的示例(带有System.Windows.Forms参考的ConsoleApp)
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
System.Threading.Thread.Sleep(1000);
string text = "10{%}";
// Output SHOULD be "10%"
// Output IS "105"
System.Windows.Forms.SendKeys.SendWait(text);
Console.ReadLine();
}
}
}
输出为105
,而不是10%
。
我无法弄清楚,如何使用SendKeys写%
符号?
答案 0 :(得分:3)
string text = "10+ù";
您的文化是fr-fr
,使用的是AZERTY键盘。 %
相对于ù
位于换档位置,因此应该可以解决问题。
答案 1 :(得分:1)
在字符串文字的字符串值之前使用@运算符。
例如string text = @"10{%}";
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/verbatim
答案 2 :(得分:0)
那是奇怪的拉斐尔。我将您的代码复制粘贴到示例C#项目中,并得到10%
作为输出。您是否通过提供的链接使用任何上述支持的平台-
适用于
.NET Core
3.0
.NET Framework
4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6 4.5.2 4.5.1 4.5 4.0 3.5 3.0 2.0 1.1