2009-03-17 4 views
2

シリアルポートMSComm1経由でctrl-Eを送信するにはどうすればよいですか? これはctrl-E ....のように渡す必要がありますforループまたはdo whileループ..ここに私のコードです:ctrl-EからMSComm1を送信する

MSComm1.CommPort = Convert.ToInt16(Settings.Default.PortName); SendKeys.Send( "^(e)");
MSComm1.Settings = Settings.Default.BaudRate.ToString()。Trim()+ "、" + Settings.Default.Parity.Substring(0、1).ToString()。Trim()+ "、" + Settings .Default.DataBits.ToString()。Trim()+ "、" + Settings.Default.StopBits.ToString()。Trim();
MSComm1.PortOpen = true;
MSComm1.InputLen = 0;
MSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText;
(Settings.Default.FlowControl == "XON/XOFF")場合
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comXOnXoff。
}そう
IF(Settings.Default.FlowControl == "なし")
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comNone。
}他
(Settings.Default.FlowControl == "RTS")場合
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comRTS。
}
他 (Settings.Default.FlowControl == "RTSXon/XOFF")場合
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comRTSXOnXOff。

}

答えて

2

コントロール-Eので、5用のキーボードショートカットである:

serial.Write(new byte[]{ 5 }, 0, 1); 

(仮定シリアルSystem.IO.Ports.SerialPortのインスタンスである)

1

シリアルポート通信C#を使用hereから:

private static void SendSampleData() { 
    // Instantiate the communications 
    // port with some basic settings 
    SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One); 

    // Open the port for communications 
    port.Open(); 

    // Write a string 
    port.Write("Hello World"); 

    // Write a set of bytes 
    port.Write(new byte[] {0x0A, 0xE2, 0xFF}, 0, 3); 

    // Close the port 
    port.Close(); 
} 

今、あなただけのCtrl + Eにいくつかの方法をエンコードする必要があります。

+0

これはHello WorldではなくCtrl + Eを置き換える必要がありますか? – Guddu

+0

これは、おそらくあなたが望むものではない、シリアルポートにCtrl-Eのテキストを送るでしょう。 Ctrl + Eを表すバイトコードを見つける必要があります。 – Samuel

関連する問題