用C設(shè)計(jì)在局域網(wǎng)發(fā)送短信的程序

字號:

最近在電腦城上買了一根NOKIA3210的數(shù)據(jù)線,玩了幾天改LOGO、改鈴聲后也將數(shù)據(jù)線扔在一邊。直到前幾天在Http://oxygensoftware.com上看到有發(fā)手機(jī)短信息的二次開發(fā)控件,才想起多日不用的數(shù)據(jù)線,而且最近在學(xué)C#,覺得用C#做個(gè)發(fā)短信息的程序也不錯(cuò),經(jīng)過多天的測試,終于實(shí)現(xiàn)用電腦+數(shù)據(jù)線+手機(jī)的模式,實(shí)現(xiàn)在單位的局域網(wǎng)平臺上發(fā)送短信息了。
    由于在單位使用到發(fā)手機(jī)短信息的地方有很多,可能是從網(wǎng)頁、可能是OUTLOOK中的窗體、也可能是某臺非Windows操作系統(tǒng)的主機(jī)的某個(gè)系統(tǒng),所以經(jīng)過思考探討,覺得的解決方案是采用Windows的“服務(wù)”,定時(shí)從一個(gè)目錄中固定格式的文本文件中讀取出相應(yīng)的信息,發(fā)送出去。而其它客戶端只需往該目錄寫入文本信息即可。思路定下來后就讓我們開始吧!
    先交待一下開發(fā)平臺:
    Windows 2000 Advance Server操作系統(tǒng)
    Visual Studio .net
    Oxygen Sms ActiveX Control V2.3 (Share Ware)
    Nokia 3210手機(jī)通過數(shù)據(jù)線接在COM1上。
    運(yùn)行Visual Studio .Net,新建一個(gè)C#的項(xiàng)目,選擇“Windows Server”類型的項(xiàng)目,命名為“SmsServer”。在Server1的設(shè)計(jì)畫面,將“ServerName”命名為“SmsServer”。點(diǎn)擊“視圖設(shè)計(jì)器按鈕”切換到設(shè)計(jì)畫面,在“Windows Forms”工具箱中拖一時(shí)鐘控件,命名為“SmsTimer”,在“Components”工具箱中拖一“EventLog”控件。命名為“eventLog1”。在“項(xiàng)目”菜單中點(diǎn)擊“添加引用”,選擇“COM”頁,瀏覽到安裝Oxygen Sms ActiveX Control V2.3程序的目錄,找到SMSControl.ocx添加到“選定的組件”中。
    將Server1.cs代碼替換為
    在 Server1.cs切換設(shè)計(jì)畫面,在屬性窗口下點(diǎn)擊“Add Installer”,系統(tǒng)自動增加ProjectInstaller.cs文件,點(diǎn)擊serviceInstaller1,設(shè)置“Server Name”設(shè)置為“SmsServer”,點(diǎn)擊“serviceProcessInstaller1”,設(shè)置Account為“LocalSystem”。
    選擇菜單“生成”中的“生成SmsServer”,改正可能有的錯(cuò)誤。進(jìn)行DOS命令行,進(jìn)行項(xiàng)目目錄的\bin\debug目錄下,執(zhí)行“installutil SmsServer”,如果找不到installutil程序,就先Path一下。這時(shí),在管理工具的“服務(wù)”下可以找到“SmsServer”服務(wù)了。啟動該服務(wù)。這里默認(rèn)源為目錄F:\Sms\Data\FileToSend,如果這個(gè)目錄有.SMS文件,就讀取其第一行為發(fā)送的手機(jī)號碼,第二行到文本結(jié)束為短信息內(nèi)容,然后發(fā)送短信息,再將文本備份到F:\Sms\Data\HadBeenSend\。