如何发送ctrl + z

时间:2010-06-15 05:32:45

标签: c# c++ string

如何将ctrl+z转换为字符串?

我将此作为AT COMMAND发送到此计算机的连接设备。

基本上,我只是将一些字符放在一个字符串中,ctrl+z也放在该字符串中

5 个答案:

答案 0 :(得分:7)

您可以使用\u转义嵌入任何Unicode字符:

"this ends with ctrl-z \u001A"

答案 1 :(得分:3)

byte[] buffer = new byte[1];
buffer[0] = 26; // ^Z
modemPort.Write(buffer, offset:0, count:1);

答案 2 :(得分:3)

尝试以下内容适用于您

serialPort1.Write("Test message from coded program" + (char)26);

也尝试可能适合你

serialPort1.Write("Test message from coded program");
   SendKeys.Send("^(z)");

还要检查:http://www.dreamincode.net/forums/topic/48708-sending-ctrl-z-through-serial/

答案 3 :(得分:2)

从其他回复可以清楚地看出,Ctrl + Z的ASCII码为26;一般来说Ctrl + [letter]组合的ASCII码等于1+ [letter] - 'A'即Ctrl + A有ASCII码1(\ x01或\ u0001),Ctrl + B有ASCII码2等等。

答案 4 :(得分:1)

将字符发送到设备时,需要从内部字符串表示进行转换。这称为Encoding - 编码器将字符串转换为字节数组。

咨询Unicode Character Name Index,我们在SUBSTITUTE - 0x001A(ASCII标点符号)部分找到C0 Controls and Basic Latin字符。 要将CTRL-Z添加到内部C#字符串, 添加unicode character escape sequence\u001a)代码。

String ctrlz = "\u001a";
String atcmd = "AT C5\u001a";

在输出到设备之前用于转换的任何编码 (例如使用StringWriter输出),将其转换为ASCII Ctrl-Z。