Delphi - Glasovno telefoniranje
U sledećem primeru ćemo videti kako da iz naše Delphi aplikacije biramo telefonske brojeve za glasovnu komunikaciju, nešto slično Windows-ovom "Phone Dialer"-u. Sve se ovo odvija preko poziva funkcija u biblioteci "TAPI32.dll". Pokrenite Delphi i kreirajte novi projekt, a zatim posle svih deklaracija dodajte sledeće konstante i funkcije:
Code:
{tapi Errors}
const TAPIERR_CONNECTED = 0;
const TAPIERR_DROPPED = -1;
const TAPIERR_NOREQUESTRECIPIENT = -2;
const TAPIERR_REQUESTQUEUEFULL = -3;
const TAPIERR_INVALDESTADDRESS = -4;
const TAPIERR_INVALWINDOWHANDLE = -5;
const TAPIERR_INVALDEVICECLASS = -6;
const TAPIERR_INVALDEVICEID = -7;
const TAPIERR_DEVICECLASSUNAVAIL = -8;
const TAPIERR_DEVICEIDUNAVAIL = -9;
const TAPIERR_DEVICEINUSE = -10;
const TAPIERR_DESTBUSY = -11;
const TAPIERR_DESTNOANSWER = -12;
const TAPIERR_DESTUNAVAIL = -13;
const TAPIERR_UNKNOWNWINHANDLE = -14;
const TAPIERR_UNKNOWNREQUESTID = -15;
const TAPIERR_REQUESTFAILED = -16;
const TAPIERR_REQUESTCANCELLED = -17;
const TAPIERR_INVALPOINTER = -18;
{tapi size constants}
const TAPIMAXTelBrojSIZE = 80;
const TAPIMAXAPPNAMESIZE = 40;
const TAPIMAXPozivUpucenSIZE = 40;
const TAPIMAXKomentarSIZE = 80;
const TAPIMAXDEVICECLASSSIZE = 40;
const TAPIMAXDEVICEIDSIZE = 40;
function tapiRequestMakeCallA(TelBroj : PAnsiChar;
AppName : PAnsiChar;
PozivUpucen : PAnsiChar;
Komentar : PAnsiChar) : LongInt;
stdcall; external 'TAPI32.DLL';
function tapiRequestMakeCallW(TelBroj : PWideChar;
AppName : PWideChar;
PozivUpucen : PWideChar;
Komentar : PWideChar) : LongInt;
stdcall; external 'TAPI32.DLL';
function tapiRequestMakeCall(TelBroj : PChar;
AppName : PChar;
PozivUpucen : PChar;
Komentar : PChar) : LongInt;
stdcall; external 'TAPI32.DLL';
Potom dodajte na formu jedno komandno dugme, i u događaj "Button Click" smestite sledeći kod:
procedure TForm1.Button1Click(Sender: TObject);
var
TelBroj : string;
PozivUpucen : string;
Komentar : string;
begin
TelBroj := '011-111111'; // broj telefona
PozivUpucen := 'Ime'; // onaj koga pozivamo
Komentar := 'Poziv upicen...'; // neki komentar
tapiRequestMakeCall(pChar(TelBroj),
PChar(Application.Title),
PChar(PozivUpucen),
PChar(Komentar));
end;
{tapi Errors}
const TAPIERR_CONNECTED = 0;
const TAPIERR_DROPPED = -1;
const TAPIERR_NOREQUESTRECIPIENT = -2;
const TAPIERR_REQUESTQUEUEFULL = -3;
const TAPIERR_INVALDESTADDRESS = -4;
const TAPIERR_INVALWINDOWHANDLE = -5;
const TAPIERR_INVALDEVICECLASS = -6;
const TAPIERR_INVALDEVICEID = -7;
const TAPIERR_DEVICECLASSUNAVAIL = -8;
const TAPIERR_DEVICEIDUNAVAIL = -9;
const TAPIERR_DEVICEINUSE = -10;
const TAPIERR_DESTBUSY = -11;
const TAPIERR_DESTNOANSWER = -12;
const TAPIERR_DESTUNAVAIL = -13;
const TAPIERR_UNKNOWNWINHANDLE = -14;
const TAPIERR_UNKNOWNREQUESTID = -15;
const TAPIERR_REQUESTFAILED = -16;
const TAPIERR_REQUESTCANCELLED = -17;
const TAPIERR_INVALPOINTER = -18;
{tapi size constants}
const TAPIMAXTelBrojSIZE = 80;
const TAPIMAXAPPNAMESIZE = 40;
const TAPIMAXPozivUpucenSIZE = 40;
const TAPIMAXKomentarSIZE = 80;
const TAPIMAXDEVICECLASSSIZE = 40;
const TAPIMAXDEVICEIDSIZE = 40;
function tapiRequestMakeCallA(TelBroj : PAnsiChar;
AppName : PAnsiChar;
PozivUpucen : PAnsiChar;
Komentar : PAnsiChar) : LongInt;
stdcall; external 'TAPI32.DLL';
function tapiRequestMakeCallW(TelBroj : PWideChar;
AppName : PWideChar;
PozivUpucen : PWideChar;
Komentar : PWideChar) : LongInt;
stdcall; external 'TAPI32.DLL';
function tapiRequestMakeCall(TelBroj : PChar;
AppName : PChar;
PozivUpucen : PChar;
Komentar : PChar) : LongInt;
stdcall; external 'TAPI32.DLL';
Potom dodajte na formu jedno komandno dugme, i u događaj "Button Click" smestite sledeći kod:
procedure TForm1.Button1Click(Sender: TObject);
var
TelBroj : string;
PozivUpucen : string;
Komentar : string;
begin
TelBroj := '011-111111'; // broj telefona
PozivUpucen := 'Ime'; // onaj koga pozivamo
Komentar := 'Poziv upicen...'; // neki komentar
tapiRequestMakeCall(pChar(TelBroj),
PChar(Application.Title),
PChar(PozivUpucen),
PChar(Komentar));
end;
Kada pokrenete aplikaciju i kliknete na dugme, automatski će se birati broj naveden u varijabli "TelBroj". Na ovaj način možete na napravite program - Telefonski imenik, koji će odmah birati upisane brojeve.
Htio sam to podijeliti sa Vama, jer da je netko drugi to napravio nebi ja toliko dugo to trazio :-).
[Ovu poruku je menjao savkic dana 25.07.2009. u 13:35 GMT+1]