亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usms.~pas

?? 通達OA短信程序 通達OA短信程序
?? ~PAS
?? 第 1 頁 / 共 2 頁
字號:
unit USMS;

interface

uses
    Windows,Forms,Messages,Dialogs,SysUtils,USComm;

type
  TSMSSet = record
    ChkNewMsg:boolean;
    ChkEnCode:boolean;
    ChkMsgDelay:word;
    SMSCenter:string;
    SMSMode:string;
  end;

type
  TRxMsg = record
    Index:string;
    Mobile:string;
    Date:string;
    SMSMsg:string;
  end;
type
  Strings=array of string;
 const
  WM_DIP_MSG = WM_USER + 1024;
  lenSmsInfo = '00';
  firstOctet = '11';
  TPMessageReference = '00';
  TPValidityPeriod = '01'; //aa is 4 day
  TypeOfAddress = '91';
  TpId = '00';
  TpDcs	= '08';//"00" is 7 bitencode "08" is 8 bit encode;

type
  TSMSControl = Class
  private
    function SendInEncodeText(SMSData:string;Mobile:string):boolean;
    function SendInEncodePdu(SMSData:string;Mobile:string):boolean;
    function ExchangeCode(SmobNO:string):string;
    function EnCodeGB(var s:widestring):string;
    function DeCodeUnicode(var s:string):string;
    function SEncodeMobNO(SmobNO: string): string;//將手機號碼進行PDU編碼
    function MakePDU(DestNumber: PChar; Content: PChar):String;
    function SMSEncode(S: WideString; Result_Code: PChar): Boolean;
    function CheckInPdu:boolean;
    function CheckInText:boolean;
//    function EnCodeEn(s:string):string;                                       //7Bit編碼方式
  public
    SMSSet:TSMSSet;
    RxMsg:TRxMsg;
    ErrMsg:integer;
    area:string;
    Busy:boolean;
    SComm:TSComm;
    Constructor Create;
  published
    function SendSMS(var strSMS:string;Mobile:string):boolean;                  //發送短消息
    function CheckNewSMS:boolean;                                               //接收短消息
    function IniSMS:integer;
  end;

var
  SMS:TSMSControl;



implementation

uses
  UFConfig;


constructor TSMSControl.Create;
begin
  inherited Create;
  SMSSet.ChkNewMsg := TRUE;
  SMSSet.ChkEnCode := FALSE;
  SMSSet.ChkMsgDelay := 5;
  SMSSet.SMSCenter := '';
  SMSSet.SMSMode := 'PDU';
  ErrMsg := 0;
  RxMsg.Index := '';
  RxMsg.Mobile := '';
  RxMsg.Date := '';
  RxMsg.SMSMsg := '';
  SComm := TSComm.Create;
end;

function IntToHexStr(mInt:integer):string;
var
  H,L:integer;
begin
  H := mInt div 16;
  if H < 10 then H:=H+48 else H:=H+55;
  L := mInt mod 16;
  if L < 10 then L:=L+48 else L:=L+55;
  result := chr(H) + chr(L);
end;

function HexStrToInt(mStr:string):integer;
var
  H,L:integer;
begin
  H := ord(mStr[1]);
  if H >= 65 then H:=H - 55 else H:=H - 48;
  L := ord(mStr[2]);
  if L >= 65 then L:=L - 55 else L:=L - 48;
  result := H*16 + L;
end;

function TSMSControl.IniSMS:integer;
var
  parBuffer:array[1..20] of char;
  RunDir:string;
  SendData:string;
  ReceData:string;
  //  strTmp:Pchar;
  iNum:integer;
begin
  result := 0;
  RunDir := ExtractFileDir(Application.ExeName);

  GetPrivateProfileString('System','DelayTime','5',PChar(@parBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  self.SMSSet.ChkMsgDelay := StrToInt(Copy(parBuffer,1,strlen(@parBuffer[1])));

  GetPrivateProfileString('System','ChkNewMsg','1',PChar(@parBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  if Copy(parBuffer,1,strlen(@parBuffer[1])) = '1' then self.SMSSet.ChkNewMsg := TRUE else self.SMSSet.ChkNewMsg := FALSE;

  GetPrivateProfileString('System','ChkEnCode','1',PChar(@parBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  if Copy(parBuffer,1,strlen(@parBuffer[1])) = '1' then self.SMSSet.ChkEnCode := TRUE else self.SMSSet.ChkEnCode := FALSE;

  GetPrivateProfileString('SMS','SMSCenter','',PChar(@parBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  self.SMSSet.SMSCenter := Copy(parBuffer,1,strlen(@parBuffer[1]));

  GetPrivateProfileString('SMS','SMSMode','PDU',PChar(@parBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  self.SMSSet.SMSMode := Copy(parBuffer,1,strlen(@parBuffer[1]));

  GetPrivateProfileString('Serial','Area','',PChar(@parBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  self.area := Copy(parBuffer,1,strlen(@parBuffer[1]));

  SComm.purgeReadWrite(0);                                                      //清接收緩沖區
  SComm.purgeReadWrite(1);                                                      //清發送緩沖區
  SendData := 'ATE0'+chr(13);                                                   //關閉回顯
  SComm.WriteCom(SendData,0,TRUE,500);
  SComm.ReadCom(ReceData,iNum,6,FALSE,1000);                                    //延時并清接收緩沖區
  if (copy(ReceData,1,4) <> 'ATE0') and (copy(ReceData,3,2) <> 'OK') then
  begin
    result := -1;
    exit;
  end;

  SComm.ReadCom(ReceData,iNum,500,FALSE,100);                                   //先清接收緩沖區
  SendData := 'AT+CSCS="GSM"'+chr(13);                                          //設置命令參數輸入編碼方式,選擇"UCS2"方式時,設置短消息中心時應使用PDU的UCS2編碼方式,否則ERROR!
  SComm.WriteCom(SendData,0,FALSE,200);
  SComm.ReadCom(ReceData,iNum,10,FALSE,200);                                    //延時并清接收緩沖區
  if (copy(ReceData,3,2) <> 'OK') then
  begin
    result := -4;
    exit;
  end;
  if(self.SMSSet.SMSCenter<>'') then
  begin
  SendData := 'AT+CSCA="+'+self.SMSSet.SMSCenter+'"'+chr(13);                   //設置短消息中心
  SComm.WriteCom(SendData,0,FALSE,200);
  SComm.ReadCom(ReceData,iNum,6,FALSE,500);                                     //延時并清接收緩沖區
  if (copy(ReceData,3,2) <> 'OK') then
  begin
    SComm.ReadCom(ReceData,iNum,3,FALSE,200);                                   //接收剩余字節
    result := -5;
    exit;
  end;
  end;
  if self.SMSSet.SMSMode = 'Text' then
  begin
    SendData := 'AT+CMGF=1'+chr(13);                                            //Text模式
    SComm.WriteCom(SendData,0,FALSE,200);
    SComm.ReadCom(ReceData,iNum,6,FALSE,500);                                   //延時并清接收緩沖區
    if (copy(ReceData,3,2) <> 'OK') then
    begin
      SComm.ReadCom(ReceData,iNum,3,FALSE,200);                                 //接收剩余字節
      result := -6;
      exit;
    end;

  end else
  begin
    SendData := 'AT+CMGF=0'+chr(13);                                            //PDU模式
    SComm.WriteCom(SendData,0,FALSE,200);
    SComm.ReadCom(ReceData,iNum,6,FALSE,500);                                   //延時并清接收緩沖區
    if (copy(ReceData,3,2) <> 'OK') then
    begin
      SComm.ReadCom(ReceData,iNum,3,FALSE,200);                                 //接收剩余字節
      result := -7;
      exit
    end;

    SendData := 'AT+CSCS="UCS2"'+chr(13);                                       //設置命令參數輸入編碼方式,選擇"UCS2"方式時,設置短消息中心時應使用PDU的UCS2編碼方式,否則ERROR!
    SComm.WriteCom(SendData,0,FALSE,200);
    SComm.ReadCom(ReceData,iNum,6,FALSE,500);                                   //延時并清接收緩沖區
    if (copy(ReceData,3,2) <> 'OK') then
    begin
      SComm.ReadCom(ReceData,iNum,3,FALSE,200);                                 //接收剩余字節
      result := -8;
      exit;
    end;

  end;
end;

function TSMSControl.SendInEncodeText(SMSData:string;Mobile:string):boolean;
var
  SendData:string;
  ReceData:string;
  iNum:integer;
begin
  result := FALSE;
  SComm.ReadCom(ReceData,iNum,0,TRUE,0);                                        //先清接收緩沖區
  SendData := 'AT+CMGS="'+(Mobile)+'"'+chr(13);
  SComm.WriteCom(SendData,0,FALSE,200);
  SComm.ReadCom(ReceData,iNum,3,FALSE,500);                                     //延時100ms
  if (copy(ReceData,3,1) <> '>') then
  begin
    result := FALSE;
    exit;
  end;

  SendData := SMSData + chr(26);                                                //chr(26)為ctrl+z
  SComm.WriteCom(SendData,0,FALSE,200);
  SComm.ReadCom(ReceData,iNum,9,FALSE,6000);                                    //延時100ms
  //#$D#$A'+CMGS: 14'#$D#$A#$D#$A'OK'#$D#$A     OK   時返回19個字節
  //#$D#$A'ERROR'#$D#$A                         Error時返回 9個字節
  if copy(ReceData,4,5) = '+CMGS' then
  begin
    SComm.ReadCom(ReceData,iNum,10,FALSE,200);                                  //延時100ms
    result := TRUE;
  end
end;
 {
function TSMSControl.EnCodeEn(s:String):String;                                //7Bit編碼方式
var
  i,j,len:Integer;                                                              //j 用于移位計數
  cur:Integer;
  t:String;
begin
  Result := '';
  len := Length(s);
  i := 1;
  j := 0;
  while i<=len do
  begin
    if i<len then                                                               //數據變換
    begin
      cur := (ord(s[i]) shr j) or ((ord(s[i+1]) shl (7-j)) and $FF)
    end else
    begin
      cur:=(ord(s[i]) shr j) and $7F;
    end;
    FmtStr(t,'%2.2X',[cur]);
    Result:=Result+t;
    inc(i);
    j:=(j+1) mod 7;if j=0 then inc(i);                                          //移位計數達到7位的特別處理
  end;
end;
}
function TSMSControl.EnCodeGB(var s:widestring):string;
var
  sLen:integer;
  cur:integer;
  i:integer;
  strTmp:string;
begin
  result := '';
  sLen := length(s);
  i := 1;
  while i <= sLen do
  begin
    cur := ord(s[i]);                                                           //先返回序數值
    FmtStr(strTmp,'%4.4X',[cur]);                                               //格式化序數值(BCD轉換)
    result := result + strTmp;
    inc(i);
  end;
end;

function TSMSControl.DeCodeUnicode(var s:String):String;
var
Buf:array[0..100] of widechar;     //[1..70]
len,i:integer;
begin
  len := round(Length(s)/4)-1;
  for i:=0 to Len do
  begin
    buf[i] := widechar(StrToint('$'+copy(s,4*i+1,4)));
  end;
  buf[Len+1] := #0;
  result := WideCharToString(Buf);
end;

function TSMSControl.ExchangeCode(SmobNO:string):string;
var
  TempPchar: Pchar;
  i: integer;
  Str: string;
begin
  if (copy(smobno, 1, 1) = '+') then //判斷是否包含國家編碼
    SmobNO := copy(smobno, 2, length(smobno) - 1); //去掉手機號碼中的'+'

  if ((length(SmobNO) mod 2) = 1) then
    SmobNO := SmobNO + 'F';

  TempPchar := Pchar(SmobNO); //將字符串 Char數組化

  i := 0;
  Str := '';
  while i < length(TempPchar) do begin
    Str := Str + TempPchar[i + 1] + TempPchar[i];
    i := i + 2;
  end;
  ExchangeCode := Str;
end;
{
function TSMSControl.ExchangeCode(src:string):string;
var
  strTmp:string;
  srcLen:integer;
  i:integer;
begin
  strTmp := '';
  srcLen := length(src);
  {if (srcLen <> 11) and (srcLen <> 13) then
  begin
    ExchangeCode := '';
    exit;
  end;}
  {
  src := src+'F';
  i := 1;
  while i<= srcLen do
  begin
    strTmp := strTmp + src[i+1]+src[i];
    inc(i,2);
  end;
  ExchangeCode := strTmp;
end;
 }
 {
function TSMSControl.SendInEncodePdu(SMSData:string;Mobile:string):boolean;
var
  Widesms:widestring;
  SendData:string;
  HeadData:string;
  ReceData:string;
  strTmp:string;
  strlen:integer;
  iNum:integer;
begin
  result := FALSE;
  SendData := '0891';
  strTmp := ExchangeCode(SMS.SMSSet.SMSCenter);
  SendData := SendData + strTmp;
  SendData := SendData + '11000D91';
  strTmp := ExchangeCode(mobile);
  SendData := SendData + strTmp;
  SendData := SendData + '0008A7';
  Widesms := widestring(SMSData);
  strTmp := EnCodeGB(Widesms);
  strlen := length(strTmp) div 2;
  SendData := SendData + IntToHexStr(strlen)+strTmp;                            //16進制數
  strlen := (length(SendData) -18) div 2;                                       //不包括開頭前9個字節
  HeadData := 'AT+CMGC='+IntToStr(strlen)+chr(13);                              //10進制數
  SendData := SendData + chr(26);

  SComm.ReadCom(ReceData,iNum,0,TRUE,0);                                        //先清接收緩沖區
  SComm.WriteCom(HeadData,0,FALSE,500);
  SComm.ReadCom(ReceData,iNum,3,FALSE,500);                                     //延時100ms
  if (copy(ReceData,3,1) <> '>') then
  begin
    result := FALSE;
    exit;
  end;

  SComm.WriteCom(SendData,0,FALSE,500);
  SComm.ReadCom(ReceData,iNum,10,FALSE,6000);                                   //延時100ms

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区中文字幕| 欧美日韩免费视频| 91国偷自产一区二区三区成为亚洲经典| 欧美日韩大陆一区二区| 国产精品嫩草影院av蜜臀| 免费人成在线不卡| 在线精品视频一区二区三四| 五月开心婷婷久久| 99精品欧美一区二区三区小说 | 国产午夜一区二区三区| 午夜欧美在线一二页| a4yy欧美一区二区三区| 精品国产免费一区二区三区四区| 一区二区三区欧美在线观看| 成人精品视频一区二区三区尤物| 制服丝袜亚洲精品中文字幕| 亚洲免费观看高清完整版在线| 国产成人av影院| 国产网红主播福利一区二区| 久久99久久久久久久久久久| 欧美精品电影在线播放| 亚洲综合一区在线| 91在线视频免费观看| 国产精品色眯眯| 成人免费视频一区| 欧美一区二区三区四区五区| 五月天亚洲婷婷| 欧美日韩www| 男女男精品网站| 日韩无一区二区| 蜜臀av一级做a爰片久久| 777精品伊人久久久久大香线蕉| 婷婷六月综合亚洲| 欧美一区二区在线不卡| 免费成人深夜小野草| 精品欧美一区二区三区精品久久| 蜜乳av一区二区| 久久老女人爱爱| 国产成人鲁色资源国产91色综| 国产欧美中文在线| 成人黄色片在线观看| 国产精品久久久久四虎| 99精品在线观看视频| 亚洲欧洲美洲综合色网| 国产亚洲精品中文字幕| 国v精品久久久网| 国产精品视频一二三| av一区二区三区在线| 亚洲视频一区在线| 欧美日韩在线亚洲一区蜜芽| 日韩精品亚洲专区| 久久品道一品道久久精品| 丁香桃色午夜亚洲一区二区三区| 国产精品国产三级国产三级人妇| 色香色香欲天天天影视综合网| 亚洲国产综合在线| 久久―日本道色综合久久| 99re亚洲国产精品| 亚洲bdsm女犯bdsm网站| 欧美成人a在线| 91网站在线播放| 午夜精品久久久久久久久| 精品成人在线观看| 色婷婷综合激情| 久久成人综合网| 亚洲乱码国产乱码精品精小说| 欧美精品久久一区| 大尺度一区二区| 亚洲va天堂va国产va久| 久久一区二区视频| 欧美综合色免费| 国产激情视频一区二区在线观看| 亚洲免费观看高清完整版在线观看| 在线综合亚洲欧美在线视频| 国产精品乡下勾搭老头1| 一级精品视频在线观看宜春院| 日韩欧美中文一区二区| 91蜜桃视频在线| 精品亚洲免费视频| 亚洲图片一区二区| 国产精品久久毛片a| 色婷婷精品大视频在线蜜桃视频 | 日韩精品福利网| 国产夜色精品一区二区av| 日本道在线观看一区二区| 韩国三级在线一区| 久久99深爱久久99精品| 丁香六月综合激情| 国产精品每日更新在线播放网址| 欧美一区二区三区日韩| 一区二区三区四区蜜桃 | 成人精品国产一区二区4080| 香蕉av福利精品导航| 中文字幕精品—区二区四季| 国产日产亚洲精品系列| 欧美大片免费久久精品三p| 欧美日韩国产精品自在自线| 91在线国产观看| 国产99久久久国产精品潘金网站| 欧美一级日韩一级| 久久99精品久久久久久| 亚洲激情欧美激情| 精品福利视频一区二区三区| 91日韩在线专区| 国产成人免费视频网站| 久久国产婷婷国产香蕉| 亚洲va天堂va国产va久| 一区二区三区高清在线| 国产精品理论片| 26uuu精品一区二区| 欧洲国内综合视频| 99国产精品99久久久久久| 国产91精品精华液一区二区三区| 国产一区二三区| 久久久电影一区二区三区| 麻豆久久一区二区| 成人网页在线观看| 国产精品一二三在| 在线播放一区二区三区| 欧美一区二区三级| 自拍偷拍欧美精品| 久久网站热最新地址| 精品国产乱码91久久久久久网站| 国产精品69毛片高清亚洲| 蜜桃久久久久久久| 色综合天天综合狠狠| 成人久久视频在线观看| 亚洲成人精品一区二区| 色婷婷精品大在线视频 | 久久久www成人免费无遮挡大片| 99精品视频一区| 日本韩国一区二区三区视频| 69av一区二区三区| 国产精品看片你懂得| 韩国女主播一区| 欧美日韩高清影院| 91精品婷婷国产综合久久竹菊| 欧美探花视频资源| 91啦中文在线观看| 欧美日韩mp4| 不卡电影免费在线播放一区| 亚洲人成7777| 国产精品你懂的| 久久久久久久综合| 欧美精品乱码久久久久久按摩 | 6080亚洲精品一区二区| 日韩天堂在线观看| 日韩欧美高清在线| 亚洲视频一二三区| 欧美日韩国产综合草草| 欧美亚一区二区| 欧美伦理影视网| 精品欧美乱码久久久久久1区2区| 国产网站一区二区| 亚洲国产精品自拍| 美女视频网站久久| 99精品黄色片免费大全| 337p亚洲精品色噜噜| 国产欧美一区二区精品性色超碰| 亚洲精品久久7777| 韩国三级电影一区二区| 在线视频你懂得一区二区三区| 精品久久久影院| 伊人开心综合网| 国产剧情一区在线| 9191久久久久久久久久久| 国产婷婷色一区二区三区| 亚洲在线免费播放| 国产在线精品不卡| 欧美视频在线观看一区| 国产欧美一区二区在线| 日本不卡视频一二三区| 91国产视频在线观看| 国产日韩精品一区二区三区| 久久精品国内一区二区三区| 在线免费精品视频| 国产精品免费人成网站| 捆绑紧缚一区二区三区视频| 欧美色中文字幕| 中文字幕视频一区二区三区久| 久久精品国产在热久久| 欧美精品99久久久**| 17c精品麻豆一区二区免费| 久久成人久久鬼色| 91精品国产91综合久久蜜臀| 亚洲精品国产高清久久伦理二区| 国产在线一区二区| 日韩写真欧美这视频| 亚洲亚洲人成综合网络| 成+人+亚洲+综合天堂| 久久精品人人做人人综合| 美国十次综合导航| 欧美一区二区播放| 免费在线观看一区二区三区| 56国语精品自产拍在线观看| 亚洲成人午夜影院| 欧美色欧美亚洲另类二区| 亚洲h精品动漫在线观看| 91福利在线播放| 亚洲综合999|