📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, registry, TAPILine;
const
CM_DIAL=WM_USER+1;
type
TformMain = class(TForm)
TAPILine: TTAPILine;
Label1: TLabel;
Label2: TLabel;
PhoneNumber: TEdit;
SelectedLine: TComboBox;
Bevel1: TBevel;
DialButton: TBitBtn;
PhoneImage: TImage;
procedure FormCreate(Sender: TObject);
procedure TAPILineDropCall(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DialButtonClick(Sender: TObject);
procedure SelectedLineChange(Sender: TObject);
private
{ Private declarations }
WasParam: boolean;
procedure Dial(Var Message: TMessage); message CM_DIAL;
public
{ Public declarations }
Procedure ReadSettings;
Procedure WriteSettings;
end;
var
formMain: TformMain;
AppName: string;
implementation
{$R *.DFM}
procedure TformMain.FormCreate(Sender: TObject);
Var
i: integer;
s: string;
begin
AppName:='PFDialer 1.03';
Caption:=AppName;
TAPILine.FillTAPILine(SelectedLine.Items);
ReadSettings;
// to draw Modem icon
SelectedLineChange(nil);
// take program parametrs:
// AutoDialer /Dial:7179328
WasParam:=False;
for i:=0 to ParamCount do
Begin
s:=ParamStr(i);
if Pos('/DIAL:', UpperCase(ParamStr(i)))<>0 Then
Begin
WasParam:=True;
PhoneNumber.Text:=Copy(s, Pos(':', s)+1, Length(s));
PostMessage(handle, CM_DIAL, 0, 0);
End;
End;
end;
procedure TformMain.TAPILineDropCall(Sender: TObject);
begin
TAPILine.Close;
end;
procedure TformMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WriteSettings;
end;
Procedure TformMain.ReadSettings;
Var
RegKey: TRegistry;
Begin
RegKey := TRegistry.Create;
RegKey.RootKey := HKEY_LOCAL_MACHINE;
RegKey.OpenKey('Software', True);
RegKey.OpenKey('PROFOUND', True);
RegKey.OpenKey('AutoDialer', True);
if RegKey.ValueExists('SelectedLine') then
SelectedLine.ItemIndex:=SelectedLine.Items.IndexOf(RegKey.ReadString('SelectedLine'));
if RegKey.ValueExists('PhoneNumber') then
PhoneNumber.Text:=RegKey.ReadString('PhoneNumber');
RegKey.CloseKey;
RegKey.Free;
End;
Procedure TformMain.WriteSettings;
Var
RegKey: TRegistry;
Begin
RegKey := TRegistry.Create;
RegKey.RootKey := HKEY_LOCAL_MACHINE;
RegKey.OpenKey('Software', True);
RegKey.OpenKey('PROFOUND', True);
RegKey.OpenKey('AutoDialer', True);
if SelectedLine.Text<>'' Then
RegKey.WriteString('SelectedLine', SelectedLine.Text);
if PhoneNumber.Text<>'' Then
RegKey.WriteString('PhoneNumber', PhoneNumber.Text);
RegKey.CloseKey;
RegKey.Free;
End;
procedure TformMain.DialButtonClick(Sender: TObject);
begin
if SelectedLine.ItemIndex=-1 Then
raise Exception.Create('You have to choose line to dial.');
if PhoneNumber.Text='' Then
raise Exception.Create('You have to enter number to dial.');
try
TAPILine.DevIdToInitialize:=SelectedLine.ItemIndex;
TAPILine.Open;
try
// try to make voice outbound call...
TAPILine.MediaModes := [lmmInteractiveVoice];
TAPILine.MakeCall(PhoneNumber.Text);
except
// if problems, last try with DataModem...
TAPILine.MediaModes := [lmmDataModem];
TAPILine.MakeCall(PhoneNumber.Text);
end;
except
On E:Exception do
MessageBox(handle, PChar('Modem returned error: '+E.Message), PChar(AppName), MB_OK or MB_ICONEXCLAMATION);
end;
end;
procedure TformMain.SelectedLineChange(Sender: TObject);
begin
try
PhoneImage.Picture.Icon.Handle:=TAPILine.GetIcon(SelectedLine.ItemIndex);
except
end;
end;
procedure TformMain.Dial(Var Message: TMessage);
Begin
DialButton.Click;
End;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -