📄 rasdial1.pas
字号:
AutoFlag := IniFile.ReadString('Last', 'AutoConnect', '0');
ConfigureAutoForm.AutoConnect := (AutoFlag <> '0');
AutoFlag := IniFile.ReadString('Last', 'AutoExecuteBrowser', '0');
ConfigureAutoForm.AutoExecuteBrowser := (AutoFlag <> '0');
AutoFlag := IniFile.ReadString('Last', 'AutoExecuteMail', '0');
ConfigureAutoForm.AutoExecuteMail := (AutoFlag <> '0');
AutoFlag := IniFile.ReadString('Last', 'AutoExecuteNews', '0');
ConfigureAutoForm.AutoExecuteNews := (AutoFlag <> '0');
AutoFlag := IniFile.ReadString('Last', 'MonthlyDuration', '1');
ConfigureAutoForm.MonthlyDuration := (AutoFlag <> '0');
ConfigureAutoForm.BrowserExe := IniFile.ReadString('Last', 'BrowserExe',
'C:\Program Files\Plus!\Microsoft Internet\IEXPLORE.EXE');
ConfigureAutoForm.MailExe := IniFile.ReadString('Last', 'MailExe',
'C:\WINDOWS\EXPLORER.EXE /root,C:\WINDOWS\Internet Mail.' +
'{89292102-4755-11cf-9DC2-00AA006C2B84}');
ConfigureAutoForm.NewsExe := IniFile.ReadString('Last', 'NewsExe',
'C:\WINDOWS\EXPLORER.EXE /root,C:\WINDOWS\Internet News.' +
'{89292103-4755-11cf-9DC2-00AA006C2B84}');
ConfigureAutoForm.BrowserDir := IniFile.ReadString('Last', 'BrowserDir', '');
ConfigureAutoForm.MailDir := IniFile.ReadString('Last', 'MailDir', '');
ConfigureAutoForm.NewsDir := IniFile.ReadString('Last', 'NewsDir', '');
SavePW := IniFile.ReadString('Last', 'Password', '');
if SavePW <> '' then
PasswordEdit.Text := DeCrypt(SavePW)
else
PasswordEdit.Text := '';
SavePW := IniFile.ReadString('Last', 'SavePW', '0');
SavePWCheckBox.Checked := (SavePW = '1');
IniFile.Free;
CancelButton.Enabled := FALSE;
ConnectButton.Enabled := TRUE;
GetActiveConn;
DisplayActiveConn;
GetDuration;
TimeAutoForm.Section := 'RAS_ENTRY_' + CrunchName(EntryNameComboBox.Text);
TimeAutoForm.LoadFromIniFile;
if ConfigureAutoForm.AutoConnect then
PostMessage(Handle, WM_AUTOCONNECT, 0, 0);
end;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.FormResize(Sender: TObject);
begin
inherited;
InfoListBox.Height := ClientHeight - InfoListBox.Top;
InfoListBox.Width := ClientWidth;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function CrunchName(S : String) : String;
var
I : Integer;
begin
Result := '';
for I := 1 to Length(S) do begin
case S[I] of
' ' : Result := Result + '_';
'=' : Result := Result + '\-';
'@' : Result := Result + '\A';
'_' : Result := Result + '\_';
'\' : Result := Result + '\\';
else
Result := Result + S[I];
end;
end;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.SelectPhoneBookEntry(EntryName : String);
var
I : Integer;
begin
for I := 0 to EntryNameComboBox.Items.Count - 1 do begin
if EntryNameComboBox.Items[I] = EntryName then begin
EntryNameComboBox.ItemIndex := I;
Exit;
end;
end;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.LoadPhoneBook;
var
Entries : array [0..15] of TRASENTRYNAME;
cb : DWORD;
cEntries : DWORD;
dwRet : DWORD;
Buf : array [0..127] of char;
I : Integer;
begin
FillChar(Entries, SizeOf(Entries), 0);
Entries[0].dwSize := SizeOf(TRASENTRYNAME);
cb := SizeOf(Entries);
cEntries := 0;
dwRet := RasEnumEntriesA(NIL, NIL, @Entries[0], @cb, @cEntries);
if dwRet <> 0 then begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
LogMessage(Buf);
end;
EntryNameComboBox.Items.Clear;
for I := 0 to cEntries - 1 do
EntryNameComboBox.Items.Add(Entries[I].szEntryName);
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.GetUserPassword;
var
IniFile : TIniFile;
Password : String;
EntryName : String;
UserName : String;
begin
if not ConfigureAutoForm.AutoPassword then
Exit;
IniFile := TIniFile.Create(FIniFileName);
EntryName := CrunchName(Trim(EntryNameComboBox.Text));
UserName := CrunchName(Trim(UserNameComboBox.Text));
Password := IniFile.ReadString('RAS_ENTRY_' + EntryName,
'USER_' + UserName, '*');
IniFile.Free;
if Password <> '*' then
PasswordEdit.Text := DeCrypt(Password)
else
PasswordEdit.Text := '';
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.GetUserNameList;
var
IniFile : TIniFile;
List : TStringList;
I : Integer;
Buffer : String;
begin
if not ConfigureAutoForm.AutoUserName then
Exit;
List := TStringList.Create;
IniFile := TIniFile.Create(FIniFileName);
IniFile.ReadSection('RAS_ENTRY_' + CrunchName(Trim(EntryNameComboBox.Text)),
List);
UserNameComboBox.Items.Clear;
if List.Count > 0 then begin
for I := 0 to List.Count - 1 do begin
Buffer := List.Strings[I];
if Copy(Buffer, 1, 5) = 'USER_' then
UserNameComboBox.Items.Add(Copy(Buffer, 6, 100));
end;
if UserNameComboBox.Items.Count > 0 then
UserNameComboBox.Text := UserNameComboBox.Items[0];
end;
IniFile.Free;
List.DEstroy;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.EntryNameComboBoxChange(Sender: TObject);
begin
GetDuration;
GetUserNameList;
GetUserPassword;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.UserNameComboBoxChange(Sender: TObject);
begin
GetUserPassword;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.DoProperties;
var
dwRet : DWORD;
Buf : Array [0..127] of char;
begin
dwRet := RasEditPhonebookEntryA(Handle, nil, PChar(EntryNameComboBox.Text));
if dwRet <> 0 then begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
LogMessage(Buf);
end;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.DoNew;
var
EntryName : String;
dwRet : DWORD;
Buf : Array [0..127] of char;
begin
dwRet := RasCreatePhonebookEntryA(Handle, nil);
if dwRet <> 0 then begin
RasGetErrorStringA(dwRet, @Buf[0], SizeOf(Buf));
LogMessage(Buf);
end
else begin
EntryName := EntryNameCombobox.Text;
LoadPhoneBook;
SelectPhoneBookEntry(EntryName);
end;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.MnuQuitClick(Sender: TObject);
begin
Close;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.MnuConnectClick(Sender: TObject);
begin
DoConnect;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.MnuPropertiesClick(Sender: TObject);
begin
DoProperties;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.MnuNewClick(Sender: TObject);
begin
DoNew;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.MnuAboutClick(Sender: TObject);
begin
AboutForm.ShowModal;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.MnuCancelClick(Sender: TObject);
begin
DoCancel;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.MnuConfigureClick(Sender: TObject);
begin
DoConfigure;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.DoConfigure;
begin
ConfigureAutoForm.Configure;
GetDuration;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.RunInternetNewsReader1Click(Sender: TObject);
begin
ConfigureAutoForm.ExecuteNews;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.RunInternetBrowser1Click(Sender: TObject);
begin
ConfigureAutoForm.ExecuteBrowser;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.RunInternetMailReader1Click(Sender: TObject);
begin
ConfigureAutoForm.ExecuteMail;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.TimeRestrictions1Click(Sender: TObject);
begin
inherited;
with TimeAutoForm do begin
Section := 'RAS_ENTRY_' + CrunchName(EntryNameComboBox.Text);
Execute;
end;
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRasDialerForm.IPButtonClick(Sender: TObject);
var
IPAddr : String;
begin
IPAddr := RasGetIPAddress;
if IPAddr > '' then
InfoListBox.Items.Add('IP=' + IPAddr)
else
InfoListBox.Items.Add('IP unknown');
end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
end.
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -