⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 Fontes e exemplos CALLER ID DELPHI
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, micDTMFBox, ExtCtrls,IniFiles, CJVCriptografa;

type
  TFormTexto = class(TForm)
    CJVCriptografa1: TCJVCriptografa;
    SaveDialog1: TSaveDialog;
    btShow: TButton;
    Timer1: TTimer;
    Panel2: TPanel;
    Panel1: TPanel;
    btDesativar: TButton;
    micDTMFBox1: TmicDTMFBox;
    btAtive: TButton;
    btConfig: TButton;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    EditArq: TEdit;
    Button6: TButton;
    btHide: TButton;
    btSav: TButton;
    MemoBINA: TMemo;
    btClear: TButton;
    Label2: TLabel;
    Edit3: TEdit;
    Button5: TButton;
    TimerSalvaTexto: TTimer;
    Edit2: TEdit;
    Edit1: TEdit;
    Label1: TLabel;
    Label5: TLabel;
    EditDDD: TEdit;
    CheckBox1: TCheckBox;
    MemoLOG: TMemo;
    Label6: TLabel;
    procedure btAtiveClick(Sender: TObject);
    procedure btDesativarClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btConfigClick(Sender: TObject);
    procedure btSavClick(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure btShowClick(Sender: TObject);
    procedure btHideClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure micDTMFBox1a8MicAPIConect(Sender: TObject;
      PlugInHandle: Integer);
    procedure micDTMFBox1a3FormatPhone(Sender: TObject; Tipo, DDD, Fone,
      IndexPhone: String);
    procedure btClearClick(Sender: TObject);
    procedure TimerSalvaTextoTimer(Sender: TObject);
  private
    ArqIni : TIniFile;
    StrIni, Root, rFone,ArqTextoBINA : string;
    TextoSalvo : Boolean;
    PlugInHnd:Integer;
  public
  protected
    procedure WMQueryEndSession(var Msg : TWMQueryEndSession); message WM_QueryEndSession;


  end;

var
  FormTexto: TFormTexto;
  Senha : string;


implementation

uses Unit2, UnitMestre;

{$R *.dfm}
//------------------------------------------------------------------------
{Detectar Finaliza玢o do Windows e "matar" o processo do PlugIn}
procedure TFormTexto.WMQueryEndSession(var Msg : TWMQueryEndSession);
 const
 PROCESS_TERMINATE = $0001;
 var
 ProcessHandle : THandle;
 ProcessID: Integer;
begin

(*
  {Detetar Finaliza玢o do Windows}
  protected
    procedure WMQueryEndSession(var Msg : TWMQueryEndSession); message WM_QueryEndSession;

*)
 if(PlugInHnd>0)then begin
   {Pega processo do PlugIn}
   GetWindowThreadProcessID(PlugInHnd, @ProcessID);
   ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
   TerminateProcess(ProcessHandle,4);
   {Seta Handle do PlugIn para 'zero'}
   PlugInHnd:=0;

   {Pega Processo deste aplicativo}
   GetWindowThreadProcessID(Handle, @ProcessID);
   ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
   TerminateProcess(ProcessHandle,4);
   
   {Libera finaliza玢o do Windows}
   Msg.Result := 1;
 end;
end;
//-----------------------------------------------------------------------


procedure TFormTexto.btAtiveClick(Sender: TObject);
begin
 micDTMFBox1.a4PlugInRegistry := Edit1.Text;

 if not(micDTMFBox1.a1Active)then begin
    micDTMFBox1.micDTMFactive;
    FormMestre.HIDE;
    Timer1.Enabled :=TRUE;
 end;



end;

procedure TFormTexto.btDesativarClick(Sender: TObject);
begin
micDTMFBox1.Stop;
Application.Terminate;
end;

procedure TFormTexto.FormCreate(Sender: TObject);
var
LOG:string;
begin
 {Limpa criptografia}
 CJVCriptografa1.Key := 26;
 CJVCriptografa1.StrNormal :='';
 CJVCriptografa1.StrEncrypt:='';

 {Cria o arquivo de configura玢o}
 Root:=ExtractFilePath(Application.ExeName);
 StrIni := Root+'Config.ini';
 ArqIni :=  TIniFile.Create(StrIni);

 {Pega numero do registro}
 CJVCriptografa1.StrEncrypt := ArqIni.ReadString('CONFIG','SENHA','');
 Edit2.Text := CJVCriptografa1.StrNormal;
 senha:= CJVCriptografa1.StrNormal;
 if(trim(Edit2.Text)='')then senha:='sibel2008';
 Edit2.Text:=senha;

 EditArq.Text:= ArqIni.ReadString('CONFIG','ARQUIVO', ExtractFileDrive(ParamStr(0))+'\WAG');
 EditDDD.Text := ArqIni.ReadString('CONFIG','DDDLocal','00');
 Edit1.Text := ArqIni.ReadString('CONFIG','REGISTRO','DEMO31D');
 CheckBox1.Checked:=ArqIni.ReadBool('CONFIG','LOG', TRUE);

 micDTMFBox1.a2DDDLocal := EditDDD.Text;
 micDTMFBox1.a4PlugInRegistry := Edit1.Text; 
 micDTMFBox1.a3RootPlugIn := Root+'PlugIn\PlugInMicDTMF.exe';

 ArqTextoBINA := EditArq.Text;
 LOG:= ChangeFileExt(ArqTextoBINA,'.LOG');
 if(FileExists(LOG))then memoLOG.Lines.LoadFromFile(LOG);

 btAtiveClick(Self);


end;

procedure TFormTexto.btConfigClick(Sender: TObject);
begin
micDTMFBox1.ShowDlg;
end;

procedure TFormTexto.btSavClick(Sender: TObject);
var lg:string;
begin
   ArqIni.WriteString('CONFIG','ARQUIVO',EditArq.Text);
   ArqIni.WriteString('CONFIG','DDDLocal',EditDDD.Text);
   ArqIni.WriteString('CONFIG','REGISTRO',Edit1.Text);
   ArqIni.WriteBool('CONFIG','LOG', CheckBox1.Checked);
   ArqIni.UpdateFile;
   memoBINA.Lines.SaveToFile(EditArq.Text);
   lg:=ChangeFileExt(EditArq.Text,'.LOG');
   if(CheckBox1.Checked)then
     memoLOG.Lines.SaveToFile(lg);

end;

procedure TFormTexto.Button5Click(Sender: TObject);
begin
 Form2.Edit1.Clear;
 Form2.Edit2.Clear;
 Form2.Edit3.Clear;

 Form2.ShowModal;
 {Salvar senha}
 if(Form2.ModalResult=mrOk)then begin
   Edit2.Text := Form2.Edit3.Text;
   senha:=Edit2.Text;
   CJVCriptografa1.StrNormal :='';
   CJVCriptografa1.StrEncrypt:='';
   CJVCriptografa1.StrNormal:= Edit2.Text;
   ArqIni.WriteString('CONFIG','SENHA',CJVCriptografa1.StrEncrypt);
   ArqIni.UpdateFile;
 end;

end;

procedure TFormTexto.Edit3Change(Sender: TObject);
begin
if(trim(Edit3.Text)<>'')then begin
  Button5.Enabled := Edit3.Text = senha;
  GroupBox1.visible := Edit3.Text = senha;
  btDesativar.Enabled := Edit3.Text = senha;
  btConfig.Enabled := Edit3.Text = senha;
  Edit1.Visible := Edit3.Text = senha;
  Label1.Visible := Edit3.Text = senha;
end;
end;

procedure TFormTexto.Button6Click(Sender: TObject);
begin
SaveDialog1.Title :='Gerar arquivo texto em:';
if(SaveDialog1.Execute)then begin
  EditArq.Text := SaveDialog1.FileName;
  ArqTextoBINA:= EditArq.Text;
end;

end;

procedure TFormTexto.btShowClick(Sender: TObject);
begin
 FormTexto.Show;
end;

procedure TFormTexto.btHideClick(Sender: TObject);
begin
 btSavClick(Self);
 Edit3.Clear;
 Button5.Enabled := Edit3.Text = senha;
 GroupBox1.visible := Edit3.Text = senha;
 btDesativar.Enabled := Edit3.Text = senha;
 btConfig.Enabled := Edit3.Text = senha;
 Edit1.Visible := Edit3.Text = senha;
 Label1.Visible := Edit3.Text = senha;

 CLOSE;
end;

procedure TFormTexto.Timer1Timer(Sender: TObject);
begin
if not(micDTMFBox1.a1Active)then EXIT;

  Timer1.Enabled :=FALSE;
  micDTMFBox1.HideDlg;
  btHideClick(self);
 

end;

procedure TFormTexto.micDTMFBox1a8MicAPIConect(Sender: TObject;
  PlugInHandle: Integer);
begin
PlugInHnd:=PlugInHandle;
CLOSE;
end;

procedure TFormTexto.micDTMFBox1a3FormatPhone(Sender: TObject; Tipo, DDD,
  Fone, IndexPhone: String);
var
sd,s,sT:string;
begin

 S:=IndexPhone;
 sT:=IndexPhone;
 sD:='';

 if(Length(s)>8)then begin
   sT:=Copy(s,3,length(s));
   sd:=Copy(S,1,2);
 end;

 if(Trim(sD)=Trim(EditDDD.Text))then sD:='';

 TextoSalvo:=FALSE;
 
 memoBINA.Lines.Add(sD+sT);

 if(CheckBox1.Checked)then
    memoLOG.Lines.Add(DateTimeToStr(Now)+ ' | '+ sD+sT);

 TimerSalvaTexto.Enabled := TRUE;
end;

procedure TFormTexto.btClearClick(Sender: TObject);
var
log:string;
begin
 memoBINA.Clear;
 memoLOG.Clear;
 if(ArqTextoBINA<>'')then
   memoBINA.Lines.SaveToFile(ArqTextoBINA);

 LOG:= ChangeFileExt(ArqTextoBINA,'.LOG');
 if(LOG<>'')then
   memoBINA.Lines.SaveToFile(LOG);



end;

procedure TFormTexto.TimerSalvaTextoTimer(Sender: TObject);
var
log:string;
begin
 TimerSalvaTexto.Enabled := FALSE;
 try
  TimerSalvaTexto.Enabled := FALSE;
  TextoSalvo:=TRUE;
  memoBINA.Lines.SaveToFile(ArqTextoBINA);
  LOG:= ChangeFileExt(ArqTextoBINA,'.LOG');

  if(CheckBox1.Checked)then
     memoLOG.Lines.SaveToFile(LOG);

  memoBINA.Clear;
 except
  TextoSalvo:=FALSE;
  TimerSalvaTexto.Enabled := TRUE;
 end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -