var MainForm: TMainForm;
WHandle,ListBoxHandle:Hwnd;
YHDM:String;
GZSJ:Integer;
GZLX:String;
implementation
{$R *.DFM}
procedure TMainForm.Timer1Timer(Sender: TObject);
Var Stemp,LastLine,SecondLine:PChar;
LineCount,I,N, X,Y:Integer;
DM:String;
begin
Shape1.Brush.Color:=clRed;
Shape2.Brush.Color:=clRed;
Shape3.Brush.Color:=clRed;
WHandle:=FindWindow(PChar('V6W'),Nil);
If WHandle<=0 Then
Begin
WinExec('V6W.EXE',0);
Exit;
End;
ShowWindow(WHandle,SW_HIDE);
Shape1.Brush.Color:=clGreen;
ListBoxHandle:=FindWindowEx(WHandle,0,Nil,Nil)+4;
LineCount:=SendMessage(ListBoxHandle,LB_GETCOUNT,0,0);
If LineCount<=0 Then
Begin
SendMessage(WHandle,WM_Close,0,0);
Exit;
End;
If LineCount>0 Then
SendMessage(ListBoxHandle,LB_GETTEXT,0,Longint(LastLine));
If LineCount>1 Then
SendMessage(ListBoxHandle,LB_GETTEXT,0,Longint(SecondLine));
N:=0;
For I:=0 To Memo1.Lines.Count-2 Do
If ((Memo1.Lines[I]=LastLine) AND (Memo1.Lines[I]=SecondLine)) Then
Begin
N:=I;
Break;
End;
For I:=ABS(N-Memo1.Lines.Count) To LineCount-1 Do
Begin
SendMessage(ListBoxHandle,LB_GETTEXT,I,Longint(Stemp));
If Length(Stemp)>0 Then
Begin
Memo1.Lines.Add(Stemp);
If Pos('DM:=[',Stemp)>0 Then
Begin
//1 不同于YHDM 则保存原故障信息 记录用户代码
X:=Pos('DM:=[',Stemp);
Y:=Pos(']',Stemp);
DM:=Copy(Stemp,X+5,Y-X-5);
If DM<>YHDM Then
Begin
//保存投诉信息
YHDM:=DM;
GZSJ:=0;
End;
End;
If Pos('GZ:=[',Stemp)>0 Then
Begin
//2 记录故障代码
X:=Pos('GZ:=[',Stemp);
Y:=Pos(']',Stemp);