📄 unit1.~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 + -