DialUp
امروز ميخوايم يه برنامه ساده بنويسيم که يوزر و پسورد و
شماره تلفن بگيره و خودش شروع کنه به اينترنت وصل بشه.
اول که بايد يه پروژه جديد بسازيد و ۳ تا edit box برای اطلاعات يوزر و پسورد و شماره تلفن.
اولين کاری که بايد کنيد اينه که ۱-۲ کلاس رو به پروژه اضافه
کنيد که با ۲خط زير انجام ميديد:
#include "ras.h"
#include "raserror.h"
حالا ۲ تا دکمه بگذاريد برای وصل شدن
و قطع ارتباط.
برای وصل شدن از چند خط ساده زير استفاده کنيد که هر خط
رو جداگانه توضيح ميدم:
RASDIALPARAMS rdParams;// متغييری(شئی)
است برای دادن اطلاعات مورد نياز
برای کانکت به اينترنت
rdParams.dwSize = sizeof(RASDIALPARAMS);
rdParams.szEntryName[0] = '\0';
lstrcpy( rdParams.szPhoneNumber,
m_strPhoneNumber );//در اين قسمت شماره تلفن را مقدار
دهی ميکنيم
rdParams.szCallbackNumber[0] = '\0';
lstrcpy( rdParams.szUserName,
m_strUserName );//در اين قسمت يوزررا مقدار
دهی ميکنيم
lstrcpy( rdParams.szPassword,
m_strPassword );//در اين قسمت پسورد را مقدار دهی ميکنيم
rdParams.szDomain[0] = '\0';
HRASCONN hRasConn = NULL;//اين متغيير برای نسبت دادن يک هندل به اين کانکشن در صورت موفقيت خوهد
بود که بتوان در آينده از آن استفاده کرد مثلا
آنرا قطع کرد
DWORD dwRet = RasDial(
NULL, NULL, &rdParams, 0L, NULL, &hRasConn );//در اين قسمت شروع به شماره
گيری ميکند و نتيجه شماره گيری
بازگردانده می شود که در صورت موفقيت صفر و در غير اين صورت شماره خطلا خواهد بود
if ( dwRet == 0 ) return
true;
char szBuf[256];
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )//اگر منجر به خطا
شد با استفاده از شماره خطا متن خطا را بدست آمرده نمايش می دهيم و کانکشن را می بنديم
wsprintf( (LPSTR)szBuf,
"Undefined RAS Dial Error (%ld).", dwRet );
RasHangUp( hRasConn
);
MessageBox( (LPSTR)szBuf,
"Error", MB_OK | MB_ICONSTOP );
return false;
تا ايجا نحوه خيلی
ساده اتصال رو ديديم. حالا بايد در صورت نياز امکان قطع کردن رو هم فراهم کنيم که
اونم به سادگی کد زير هستش:
RASCONN ras[20];
DWORD dSize, dNumber;
char szBuf[256];
connected=false;
ras[0].dwSize = sizeof( RASCONN );
dSize = sizeof( ras ); // Get active RAS - Connection
DWORD dwRet = RasEnumConnections(
ras, &dSize, &dNumber );
if ( dwRet != 0 )
{
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS Enum
Connections error (%ld).", dwRet );
MessageBox( (LPSTR)szBuf,
"RasHangUp", MB_OK | MB_ICONSTOP );
return false;
}
bool bOK = true;
for( DWORD dCount = 0; dCount < dNumber; dCount++ )
{ // Hang up that connection
HRASCONN hRasConn = ras[dCount].hrasconn;
DWORD dwRet = RasHangUp(
hRasConn );
if ( dwRet != 0 )
{
char szBuf[256];
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS HangUp
Error (%ld).", dwRet );
MessageBox( (LPSTR)szBuf, "RasHangUp",
MB_OK | MB_ICONSTOP );
bOK = false;
}
}
return bOK;
با اين ۲ تابع ساده ميتونيد به اينترنت متصل شيد.
اما نکاتی که هست اينه که :
اولا اصلا کانکشن ويندوزی ساخته نميشه.
دوماً اينکه ايکون اتصال هم نمايش داده نميشه و دست شمارو باز
ميگذاره که هرجور دوست داريد اعمال سليقه کنيد.
بازگشت به فهرست
بازگشت به صفحه نخست