Come convertire ctrl+z
in una stringa?Come inviare ctrl + z
Sto inviando questo come un comando AT a un dispositivo collegato a questo computer.
Fondamentalmente, ho solo messo alcuni caratteri in una stringa e ctrl+z
in quella stringa così
Come convertire ctrl+z
in una stringa?Come inviare ctrl + z
Sto inviando questo come un comando AT a un dispositivo collegato a questo computer.
Fondamentalmente, ho solo messo alcuni caratteri in una stringa e ctrl+z
in quella stringa così
prova a seguire lavorerà per voi
serialPort1.Write("Test message from coded program" + (char)26);
anche provare può funzionare per voi
serialPort1.Write("Test message from coded program");
SendKeys.Send("^(z)");
controllare anche: http://www.dreamincode.net/forums/topic/48708-sending-ctrl-z-through-serial/
byte[] buffer = new byte[1];
buffer[0] = 26; // ^Z
modemPort.Write(buffer, offset:0, count:1);
È possibile incorporare qualsiasi carattere Unicode con il \u
fuga:
"this ends with ctrl-z \u001A"
Quando si inviano caratteri a un dispositivo, è necessaria la traduzione dalla rappresentazione di stringa interna. Questo è noto come Encoding
- un encoder traduce la stringa in una matrice di byte.
Consultando la Unicode Character Name Index, troviamo il personaggio SUBSTITUTE - 0x001A
nella sezione C0 Controls and Basic Latin
(ASCII punteggiatura). Per aggiungere uno CTRL-Z
a una stringa interna C#, aggiungere un codice unicode character escape sequence (\u001a
).
String ctrlz = "\u001a";
String atcmd = "AT C5\u001a";
Qualunque codifica utilizzata per traduzione prima uscita al dispositivo (ad esempio output utilizzando StringWriter
), tradurrà questo in ASCII Ctrl-Z.
E 'chiaro da altre risposte che Ctrl + Z ha codice ASCII 26; in generale le combinazioni Ctrl + [lettera] hanno il codice ASCII uguale a 1+ [lettera] - 'A' cioè Ctrl + A ha codice ASCII 1 (\ x01 o \ u0001), Ctrl + B ha codice ASCII 2, ecc.