我现在只能采用AT+CMGL=0的方式,每隔半分钟读一次串口,如果有未读短信则提示。虽然可以不过不好,我贴出我的代码,请高人帮我修改一下。另外我对于线程了解很低,能否帮忙改为线程的方式,谢谢。
function checknewsms(hcomm:thandle;smstext:string):string;
var temp,str:string;
lrc:longword;
begin
result:='';
if (not active )and(issend) then exit;
str:=readcom(hcomm);
if pos('+CLIP:',str)>0 then begin
str:=copy(str,pos('+CLIP:',str)+8,11);
smstext:=smstext+#13+datetimetostr(now)+#13+'有新来电:'+str;
result:=smstext;
end;
temp:='AT+CMGL=0'+#13;
writefile(hcomm,pchar(temp)^,length(temp),lrc,nil);
delaytimems(1000);
str:=readcom(hcomm);
if (pos('+CMGL:',str)>0) then begin
str:=getsms(str,'+CMGL:');
smstext:=smstext+#13+str;
result:=result+#13+smstext;
end;
end;