線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:913
推到 Plurk!
推到 Facebook!

如何偵測數據機未開機(透過RS-232)

尚未結案
properwu
一般會員


發表:17
回覆:21
積分:7
註冊:2003-03-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-02 14:10:00 IP:210.202.xxx.xxx 未訂閱
as title.. 設計一個介面(GUI)來做modem的on/off detect 怎麼做比較好呢 謝謝  發表人 -
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-02 17:17:11 IP:61.218.xxx.xxx 未訂閱
properwu您好: 參考這篇文章試試(Delphi的Source Code) http://beta.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20417213.html    
/*開心的事情別隱藏在心裡,分享給別人知道會更快樂的*/
/*得到新知識別隱藏在心裡,分享給別人了解會更清楚的*/
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-02 18:59:54 IP:61.218.xxx.xxx 未訂閱
properwu 您好:    您可以試著把Modem狀態顯示於StatusBar Panel上,如果你要更美觀可以參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34821 的方法,把Modem的狀態改用燈號顯示    試試這個方法是不是你要的結果:
Unit1.cpp
//---------------------------------------------------------------------------    #include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;    //---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{ 
  detect();
}
//---------------------------------------------------------------------------    void __fastcall TForm1::detect()
{
 AnsiString ComPort="COM1";
 bool GetModemStatus=false;
 
 int i=1;
 HANDLE hCommDev;
 LPCOMMPROP lpCommProp=new COMMPROP;
 do
   {
    hCommDev= CreateFile(ComPort.c_str(),
                         GENERIC_WRITE,0,NULL,
                         OPEN_EXISTING,
                         FILE_ATTRIBUTE_NORMAL,
                         0);        if(GetCommProperties(hCommDev,lpCommProp)){
         if(lpCommProp->dwProvSubType==PST_MODEM){
              GetModemStatus=true;
             }
       }
    CloseHandle(hCommDev);
    i  ;
   } while(i<=4);     if(GetModemStatus)
     StatusBar1->Panels->Items[2]->Text="偵測Modem連接於 " ComPort;
 else
    StatusBar1->Panels->Items[2]->Text="未偵測到任何MODEM於系統上!";
}
//---------------------------------------------------------------------    Unit1.h
//---------------------------------------------------------------------------    #ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include 
#include 
#include 
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:        // IDE-managed Components
        TLabel *Label1;
        TStatusBar *StatusBar1;
private:        // User declarations
public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
        void __fastcall detect();
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif    
/*開心的事情別隱藏在心裡,分享給別人知道會更快樂的*/
/*得到新知識別隱藏在心裡,分享給別人了解會更清楚的*/
發表人 - axsoft 於 2003/09/02 19:12:37
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-06 16:17:21 IP:211.23.xxx.xxx 未訂閱
請回應或結案。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D -------------------------------
系統時間:2024-05-03 1:46:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!