var hCommFile : THandle; procedure TForm1.Button1Click(Sender: TObject); var PhoneNumber : string; CommPort : string; NumberWritten : LongInt; begin PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10; CommPort := 'COM2'; {Open the comm port} hCommFile := CreateFile(PChar(CommPort), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if hCommFile=INVALID_HANDLE_VALUE then begin ShowMessage('Unable to open '+ CommPort); exit; end; {Dial the phone} NumberWritten:=0; if WriteFile(hCommFile, PChar(PhoneNumber)^, Length(PhoneNumber), NumberWritten, nil) = false then begin ShowMessage('Unable to write to ' + CommPort); end; end; procedure TForm1.Button2Click(Sender: TObject); begin {Close the port} CloseHandle(hCommFile); end;
还有一个通过RAS拨号的例子function MyDial(FEntryName: String; FPhoneNumber: String; FCallbackNumber: String; FUserName: String; FPassword: String; FDomain: String; FHRasConn: THRasConn): Longint; var DialParams: TRasDialParams; lpfPassword: LongBool; begin if FHRasConn > 0 then HangUp; FillChar(DialParams, SizeOf(TRasDialParams), #0); with DialParams do begin dwSize:=Sizeof(TRasDialParams); StrPCopy(szEntryName, FEntryName); end; if FEntryName <> '' then begin Result := RasGetEntryDialParams(nil, DialParams, lpfPassWord); if Result <> 0 then Exit; end else with DialParams do begin dwSize := SizeOf(TRASDialParams); szEntryName := ''; UniqueString(FPhoneNumber); StrLCopy(szPhoneNumber, PChar(FPhoneNumber), RAS_MaxPhoneNumber); UniqueString(FCallBackNumber); UniqueString(FCallBackNumber); StrLCopy(szCallbackNumber, PChar((FCallBackNumber)), RAS_MaxCallbackNumber); UniqueString(FUserName); StrLCopy(szUserName,PChar((FUserName)) , UNLEN); UniqueString(fPassWord); StrLCopy(szPassword, PChar((fPassWord)), PWLEN); UniqueString(FDomain); StrLCopy(szDomain, Pchar(FDomain), DNLEN); end; FHRasConn := 0; Result := RasDial(nil, nil, DialParams, 0, nil, FHRasConn); end;
hCommFile : THandle; procedure TForm1.Button1Click(Sender: TObject);
var
PhoneNumber : string;
CommPort : string;
NumberWritten : LongInt;
begin
PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10;
CommPort := 'COM2';
{Open the comm port}
hCommFile := CreateFile(PChar(CommPort),
GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if hCommFile=INVALID_HANDLE_VALUE then
begin
ShowMessage('Unable to open '+ CommPort);
exit;
end; {Dial the phone}
NumberWritten:=0;
if WriteFile(hCommFile,
PChar(PhoneNumber)^,
Length(PhoneNumber),
NumberWritten,
nil) = false then begin
ShowMessage('Unable to write to ' + CommPort);
end;
end; procedure TForm1.Button2Click(Sender: TObject);
begin
{Close the port}
CloseHandle(hCommFile);
end;
FPhoneNumber: String;
FCallbackNumber: String;
FUserName: String;
FPassword: String;
FDomain: String;
FHRasConn: THRasConn): Longint;
var
DialParams: TRasDialParams;
lpfPassword: LongBool;
begin
if FHRasConn > 0 then HangUp; FillChar(DialParams, SizeOf(TRasDialParams), #0); with DialParams do
begin
dwSize:=Sizeof(TRasDialParams);
StrPCopy(szEntryName, FEntryName);
end; if FEntryName <> '' then
begin
Result := RasGetEntryDialParams(nil, DialParams, lpfPassWord);
if Result <> 0 then Exit;
end
else
with DialParams do
begin
dwSize := SizeOf(TRASDialParams);
szEntryName := '';
UniqueString(FPhoneNumber);
StrLCopy(szPhoneNumber, PChar(FPhoneNumber), RAS_MaxPhoneNumber);
UniqueString(FCallBackNumber);
UniqueString(FCallBackNumber);
StrLCopy(szCallbackNumber, PChar((FCallBackNumber)), RAS_MaxCallbackNumber);
UniqueString(FUserName);
StrLCopy(szUserName,PChar((FUserName)) , UNLEN);
UniqueString(fPassWord);
StrLCopy(szPassword, PChar((fPassWord)), PWLEN);
UniqueString(FDomain);
StrLCopy(szDomain, Pchar(FDomain), DNLEN);
end; FHRasConn := 0; Result := RasDial(nil, nil, DialParams, 0, nil, FHRasConn);
end;
怎样能做成服务,在启动时没有登陆就运行?