Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.pngimage, Vcl.ExtCtrls,
Vcl.StdCtrls, IniFiles, StrUtils, ShellAPI, Vcl.Mask,System.IOUtils,Unit2;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Panel1: TPanel;
Timer1: TTimer;
MaskEdit1: TMaskEdit;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Edit2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
function LoadSettings: Boolean;
procedure ReadSettingsFromIniFile;
public
{ Public declarations }
end;
var
Form1: TForm1;
analink: String;
IPBase: String;
IPAddition: Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
if not LoadSettings then
begin
// Ayarlar yüklenirken bir hata oluştu veya dosya bulunamadı gibi durumlarda buraya gelebilirsiniz.
// Burada varsayılan değerleri atayabilir veya gerekli işlemleri gerçekleştirebilirsiniz.
IPBase := '10.45.12.';
IPAddition := 10;
end;
end;
procedure TForm1.ReadSettingsFromIniFile;
var
IniFile: TIniFile;
begin
IniFile := TIniFile.Create('C:\Users\IT GETUCON\Documents\Embarcadero\Studio\Joint_To_Script\Win64\Debug\settings.ini');
try
IPBase := IniFile.ReadString('ConnectionSettings', 'IPBase', '10.45.12.');
IPAddition := IniFile.ReadInteger('ConnectionSettings', 'IPAddition', 10);
finally
IniFile.Free;
end;
end;
function IsValidEntry(s:String):Boolean;
begin
Result := Length(s) >= 4;
end;
function TForm1.LoadSettings: Boolean;
var
IniFilePath: string;
IniFile: TIniFile;
begin
Result := False;
try
// INI dosyasının yolu oluşturuluyor
IniFilePath := TPath.Combine(TPath.GetHomePath, 'C:\Users\IT GETUCON\Documents\Embarcadero\Studio\Joint_To_Script\Win64\Debug\settings.ini');
// INI dosyasını okumak için TIniFile nesnesi oluşturuluyor
IniFile := TIniFile.Create(IniFilePath);
try
// INI dosyasından değerler okunuyor
IPBase := IniFile.ReadString('ConnectionSettings', 'IPBase', '10.45.12.');
IPAddition := IniFile.ReadInteger('ConnectionSettings', 'IPAddition', 10);
Result := True; // Ayarlar başarıyla yüklendiğinde Result değerini True yap
finally
IniFile.Free; // TIniFile nesnesini serbest bırak
end;
except
on E: Exception do
ShowMessage('Ayarlar yüklenirken bir hata oluştu: ' + E.Message);
end;
end;
procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
var
TextInMaskEdit: string;
CursorPos: Integer;
begin
TextInMaskEdit := MaskEdit1.Text;
CursorPos := MaskEdit1.SelStart;
if Key = #8 then // Eğer Backspace tuşuna basıldıysa
begin
if (CursorPos >= 1) and (Copy(TextInMaskEdit, CursorPos, 2) = 'MC') then
begin
// Eğer imleç "MC" metninin içindeyse, silmeyi engelle
Key := #0;
end;
end;
end;
procedure ExecuteRemoteDesktop(const username, password, link: string);
begin
ShellExecute(0, 'open', PChar('cmdkey'), PChar('/add:'+link+' /user:'+username+' /pass:'+password), '', SW_SHOWNORMAL);
ShellExecute(0, 'open', PChar('mstsc'), PChar('/v:'+link+' /f'), '', SW_SHOWNORMAL);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
username: string;
password: string;
link: string;
begin
if (IsValidEntry(MaskEdit1.Text) and IsValidEntry(Edit2.Text)) then
begin
username := 'mc\' + MaskEdit1.Text;
password := Trim(Edit2.Text);
link := IPBase + IntToStr(StrToInt(AnsiRightStr(Trim(username), 2)) + IPAddition);
analink := link;
ExecuteRemoteDesktop(username, password, link);
Timer1.Interval := 15000;
Timer1.Enabled := True;
Form1.Visible := False;
Application.Terminate;
end
else
ShowMessage('Benutzername und Passwort dürfen nicht leer sein.');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ConfirmExit: Integer;
begin
ConfirmExit := MessageDlg('Möchten Sie wirklich beenden?', mtConfirmation, [mbYes, mbNo], 0);
if ConfirmExit = mrYes then
Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.Show;
Form1.Hide;
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
TextInEdit: string;
begin
if Key = VK_BACK then // Eğer Backspace tuşuna basıldıysa
begin
TextInEdit := MaskEdit1.Text;
// Eğer "MC" metni Edit1 içinde mevcutsa ve seçili bölge "MC" metnini içeriyorsa
if (Pos('MC', TextInEdit) > 0) and
((MaskEdit1.SelStart <= Pos('MC', TextInEdit)) and
(MaskEdit1.SelStart + MaskEdit1.SelLength >= Pos('MC', TextInEdit) + Length('MC'))) then
begin
// Silme işlemini engelle
Key := 0;
end;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
TextInEdit: string;
MCPos, SelectionStart, SelectionEnd: Integer;
begin
if Key = #8 then // Eğer Backspace tuşuna basıldıysa
begin
TextInEdit := MaskEdit1.Text;
MCPos := Pos('MC', TextInEdit);
SelectionStart := MaskEdit1.SelStart + 1; // Seçimin başlangıç pozisyonu
SelectionEnd := SelectionStart + MaskEdit1.SelLength; // Seçimin bitiş pozisyonu
// Eğer "MC" metni Edit1 içinde mevcutsa ve seçili bölge "MC" metnini içeriyorsa
if (MCPos > 0) and (SelectionStart <= MCPos) and (SelectionEnd >= MCPos + Length('MC')) then
begin
Key := #0; // Backspace tuşunu engelle
end;
end;
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
Edit2.PasswordChar := '*';
end;
procedure TForm1.Edit2Click(Sender: TObject);
begin
Edit2.Text:='';
end;
procedure ExecuteDeleteCommand(const link: string);
begin
ShellExecute(0, 'open', 'cmdkey', PChar('/delete:' + link), nil, SW_HIDE);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ExecuteDeleteCommand(analink);
end;
end.
Kod: Tümünü seç
[
[ConnectionSettings]
IPBase=10.45.13.
IPAddition=12
/code]