📄 umain.pas
字号:
Gauge2.MaxValue:=MyQUery.RecordCount;
Gauge2.Progress:=0;
MyQUery.first;
while not MyQUery.Eof do
begin
i_imsi:=trim(MyQuery.fieldbyname('imsi').asstring);
label4.Caption:='正在关闭短信功能 IMSI:'+i_imsi;
application.ProcessMessages;
cancelT22(i_imsi);
sleep(200);
Gauge2.Progress:=Gauge2.Progress+1;
MyQUery.next;
end;
//////////// HLR62
label4.Caption:='正在关闭短信功能 -HLR62';
application.ProcessMessages;
if IdTelnet1.Connected then
IdTelnet1.Disconnect;
IdTelnet1.Connect;
sleep(600);
IdTelnet1.Write(LOGINPWD+#13);
LOGINHLR61;
//获取IMSI号
//Hlr61
MyQuery.close;
MyQUery.sql.clear;
MyQUery.SQL.add('select * from T_msisdn where HLR=''HLR62'' and (not finshed)');
MyQUery.open;
Gauge2.MaxValue:=MyQUery.RecordCount;
Gauge2.Progress:=0;
MyQUery.first;
while not MyQUery.Eof do
begin
i_imsi:=trim(MyQuery.fieldbyname('imsi').asstring);
label4.Caption:='正在关闭短信功能 IMSI:'+i_imsi;
application.ProcessMessages;
cancelT22(i_imsi);
sleep(200);
Gauge2.Progress:=Gauge2.Progress+1;
MyQUery.next;
end;
HMQU.close;
HMQU.Open;
HMQU.first;
end;
procedure Tamain.execimsi;
begin
czlx:=1;
label4.Caption:='正在查找号码的IMSI号 HLR61';
application.ProcessMessages;
if IdTelnet1.Connected then
IdTelnet1.Disconnect;
IdTelnet1.Connect;
sleep(600);
IdTelnet1.Write(LOGINPWD+#13);
LOGINHLR61;
//获取IMSI号
//Hlr61
MyQuery.close;
MyQUery.sql.clear;
MyQUery.SQL.add('select * from T_msisdn where HLR=''HLR61'' and (not finshed)');
MyQUery.open;
Gauge2.MaxValue:=MyQUery.RecordCount;
Gauge2.Progress:=0;
MyQUery.first;
while not MyQUery.Eof do
begin
findlist(trim(MyQUery.fieldbyname('msisdn').asstring));
application.ProcessMessages;
sleep(200);
Gauge2.Progress:=Gauge2.Progress+1;
MyQUery.next;
end;
//////////// HLR62
label4.Caption:='正在查找号码的IMSI号 HLR62';
application.ProcessMessages;
if IdTelnet1.Connected then
IdTelnet1.Disconnect;
IdTelnet1.Connect;
IdTelnet1.Write(LOGINPWD+#13);
LOGINHLR62;
MyQuery.close;
MyQUery.sql.clear;
MyQUery.SQL.add('select * from T_msisdn where HLR=''HLR62'' and (not finshed)');
MyQUery.open;
Gauge2.MaxValue:=MyQUery.RecordCount;
Gauge2.Progress:=0;
MyQUery.first;
while not MyQUery.Eof do
begin
findlist(trim(MyQUery.fieldbyname('msisdn').asstring));
application.ProcessMessages;
sleep(200);
Gauge2.Progress:=Gauge2.Progress+1;
MyQUery.next;
end;
HMQU.close;
HMQU.Open;
HMQU.first;
end;
procedure Tamain.BitBtn3Click(Sender: TObject);
begin
if messagedlg('是否立即进行短信功能关闭操作?',mtinformation,[mbYes,mbNo],0)=mrYes then
begin
GroupBox3.Visible:=true;
execimsi;
execcanel;
GroupBox3.Visible:=false;
messagedlg('操作完成!',mtinformation,[mbOk],0);
end;
end;
procedure Tamain.BitBtn4Click(Sender: TObject);
begin
IdTelnet1.Disconnect;
end;
procedure Tamain.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if IdTelnet1.Connected then
IdTelnet1.SendCh(Key);
Key := #0;
end;
procedure Tamain.IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: String);
const
CR = #13;
LF = #10;
var
Start, Stop,YZ: Integer;
imsi,msisdn:string;
begin
if czlx=1 then
begin
if Memo1.Lines.Count = 0 then Memo1.Lines.Add('');
Start := 1;
/////////
yz:=POS('SUBSCRIBER INFORMATION',Buffer);
if yz>0 then
BufStr:=Buffer
else
BufStr:=BufStr+Buffer;
yz:=POS('COMMAND EXECUTED',Buffer);
if yz>0 then
begin
YZ:=POS('INTERNATIONAL MOBILE SUBSCRIBER IDENTITY',BufStr);
if yz>0 then
imsi:=trim(copy(BufStr,yz+45,15));
yz:=pos('MOBILE STATION ISDN NUMBER',BufStr);
if yz>0 then
begin
msisdn:=trim(copy(BufStr,yz+47,15));
MyQuery.Edit;
MyQUery.fieldbyname('imsi').asstring:=imsi;
sleep(200);
end;
end;
Stop := Pos(CR, Buffer);
if Stop = 0 then
Stop := Length(Buffer) + 1;
while Start <= Length(Buffer) do
begin
Memo1.Lines.Strings[Memo1.Lines.Count - 1] := Memo1.Lines.Strings[Memo1.Lines.Count - 1] +Copy(Buffer, Start, Stop - Start);
if Buffer[Stop] = CR then
begin
Memo1.Lines.Add('');
{$IFNDEF Linux}
SendMessage(Memo1.Handle, WM_KEYDOWN, VK_UP, 1);
{$ENDIF}
end;
Start := Stop + 1;
if Start > Length(Buffer) then
Break;
if Buffer[Start] = LF then
Start := Start + 1;
Stop := Start;
while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
Stop := Stop + 1;
end;
end;
if czlx=2 then
begin
if Memo1.Lines.Count = 0 then Memo1.Lines.Add('');
Start := 1;
/////////
yz:=POS('COMMAND EXECUTION FAILED',Buffer);
if yz>0 then
begin
MyQuery.Edit;
MyQUery.fieldbyname('node').asstring:='关闭失败';
sleep(200);
end
else
begin
yz:=POS('PARAMETER',Buffer);
if yz>0 then
begin
MyQuery.Edit;
MyQUery.fieldbyname('node').asstring:='该号码不存在T22功能';
sleep(200);
end
else
begin
MyQuery.Edit;
MyQUery.fieldbyname('finsh_time').asdatetime:=now;
MyQUery.fieldbyname('finshed').asboolean:=true;
MyQUery.fieldbyname('node').asstring:='关闭成功';
sleep(200);
end;
end;
Stop := Pos(CR, Buffer);
if Stop = 0 then
Stop := Length(Buffer) + 1;
while Start <= Length(Buffer) do
begin
Memo1.Lines.Strings[Memo1.Lines.Count - 1] := Memo1.Lines.Strings[Memo1.Lines.Count - 1] +Copy(Buffer, Start, Stop - Start);
if Buffer[Stop] = CR then
begin
Memo1.Lines.Add('');
{$IFNDEF Linux}
SendMessage(Memo1.Handle, WM_KEYDOWN, VK_UP, 1);
{$ENDIF}
end;
Start := Stop + 1;
if Start > Length(Buffer) then
Break;
if Buffer[Start] = LF then
Start := Start + 1;
Stop := Start;
while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
Stop := Stop + 1;
end;
end;
end;
procedure Tamain.IdTelnet1Connect(Sender: TObject);
begin
StatusBar1.SimpleText:='连接远程计算机!';
end;
procedure Tamain.loginHLR61;
begin
// IdTelnet1.Write('Z;');
// IdTelnet1.Write('Z;');
IdTelnet1.Write('HLR61'+#13);
SLEEP(300);
IdTelnet1.Write(USERNAME+#13);
SLEEP(100);
IdTelnet1.Write(PWD+#13);
end;
procedure Tamain.loginHLR62;
begin
// IdTelnet1.Write('Z;');
// IdTelnet1.Write('Z;');
IdTelnet1.Write('HLR62'+#13);
SLEEP(300);
IdTelnet1.Write(USERNAME+#13);
SLEEP(100);
IdTelnet1.Write(PWD+#13);
end;
procedure Tamain.IdTelnet1Connected(Sender: TObject);
begin
StatusBar1.SimpleText:='远程计算机连接成功!';
end;
procedure Tamain.IdTelnet1Disconnected(Sender: TObject);
begin
StatusBar1.SimpleText:='远程计算机已断开!';
end;
procedure Tamain.cancelT22(imsi:string);
begin
memo1.clear;
IdTelnet1.Write('ZMBD:IMSI='+IMSI+',BSERV=T22:;'+#13);
sleep(600);
end;
procedure Tamain.findlist(msisdn:string);
begin
memo1.clear;
IdTelnet1.Write('ZMIO:MSISDN=86'+msisdn+';'+#13);
sleep(600);
end;
procedure Tamain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
MyQuery.close;
MyQUery.Free;
end;
procedure Tamain.N2Click(Sender: TObject);
var i_msisdn :string;
begin
if inputQuery('查找手机号码','号码 ',i_msisdn) then
begin
HMQU.Locate('msisdn',i_msisdn,[loPartialKey])
end;
end;
procedure Tamain.BitBtn5Click(Sender: TObject);
begin
HMQu.First;
extractfile('短信关闭号码清单',HMQU);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -