Dato che questo problemino potrebbe essere frequente, con l’aiuto del link di Alka creo un piccolo tutorial.
Per disconnettersi è necessario il comando (provatelo dal prompt di Dos):
rasdial “NomeConnessione” /disconnect
Tradotto in Delphi, significa che se colleghiamo il tutto alla pressione di un tasto diventa:
codice:
procedure TForm1.Button2Click(Sender: TObject);
var
cmd, par, fil, dir: PChar;
begin
// disconnect the connection to the Internet
// Verbindung zum Internet abbrechen
cmd := 'open';
fil := 'rasdial.exe';
par := PChar(edtEntry.Text + ' /DISCONNECT');
dir := 'C:';
ShellExecute(Self.Handle, cmd, fil, par, dir, SW_SHOWMINNOACTIVE);
end;
Per la connessione, la sintassi è la seguente (tutte le info le trovate alla guida di windows):
rasdial NomeConnessione [NomeUtente [{Password|*}]] [/phone:NumeroTelefono]
In Delphi ,(attenzione la procedura dell’esempio è stata modificata, mancava il numero di telefono da comporre):
codice:
procedure TForm1.Button1Click(Sender: TObject);
var
cmd, par, fil, dir: PChar;
begin
// establish the connection
// die Verbindung aufbauen
// rasdial.exe entryname username password
cmd := 'open';
fil := 'rasdial.exe';
par := PChar(edtEntry.Text + ' ' + edtUser.Text + ' ' + edtPass.Text + ' ' + '/phone:000000 ' ); //dove 000000 è il numero da comporre per connettersi
dir := 'C:';
// call rasdial.exe with Shellexecute
// rasdial mit Shellexecute aufrufen
ShellExecute(Self.Handle, cmd, fil, par, dir, SW_SHOWMINNOACTIVE);
end;
Direi che seguendo il link di Alka e queste istruzioni non ci dovrebbero essere problemi.
P.S Attenzione all’uso di ShellApi nella sezione Implementation. Conviene vedere la guida “Windows SDK”.
Ciao