2012-04-03 4 views
1

を開いている場合は開かれたCOMポートを避けるために、どのように私は私の質問があるそれはすでに

for (int i = 0; i < 10; i++) 
     { 
      MSComm1.CommPort = 3; 
      MSComm1.PortOpen = true; 
      MSComm1.Output = "AT" + '\r' + '\n'; 
      Thread.Sleep(1000); 
      MSComm1.Output = "AT+CMGF=1" + '\r' + '\n'; 
      Thread.Sleep(1000); 
      MSComm1.Output = "AT+CMGS=" + '\"' + MobileNo + '\"' + '\r' + '\n'; 
      Thread.Sleep(1000); 
      MSComm1.Output = MsgTxt + (char)26; 
      Thread.Sleep(1000); 
      MSComm1.PortOpen = false; 
     } 

GSMモデムthrouh SMSを送信するには、次のコードを使用しています:私は(MSComm1.CommPortのようにポートを開くようにしたい = 3;)がまだ開かれていない場合に限ります。上記のループのように各SMSのために何度も何度も開いたり閉じたりする必要はありません

+0

MSComm1を確かにあなたが追跡するために、単純なブール変数を検討している必要がありますOCXコントロール – kashif

+0

のですか? –

答えて

2

過去10年以内に設計された言語/フレームワークを使用している場合はMSComm ActiveXコントロールを削除する必要がありますアプリケーションを新しいマシンまたは新しいマシン/オペレーティングシステムで実行したいと考えています。

代わりに、あなたは、.NET Frameworkで提供SerialPortクラスを使用することができます

using (var com3 = new SerialPort("COM3")) 
{ 
    if (!com3.IsOpen) com3.Open(); 

    for (int ii = 0; ii < 10; ++ii) 
    { 
     com3.WriteLine("AT" + Environment.NewLine); 
     com3.WriteLine("AT+CMGF=1" + Environment.NewLine); 
     com3.WriteLine("AT+CMGS=\"" + 03152800485 + "\"" + Environment.NewLine); 
     com3.WriteLine("Hello Kashif" + (char)26); 
     Thread.Sleep(5000); 
    } 
    com3.Close(); 
} 
+0

これは、私がSMSを送信するために使っていたものとは全く新しいもので、かなり異なっています。私はこれを試します..私はこの場合、すべてのWriteLineを待つためにsystem.threadingを使用する必要はありませんか? – kashif

+0

sixletterのコーディングにはいくつか問題があったので編集しました – kashif

+0

とにかく私は新しいものを学びました。私は実際にMSComm32を使わなくても、SMSを送ることができることを知らなかった。 – kashif

関連する問題