نمایش پست تنها
  #7  
قدیمی 10-14-2009
sheida.m آواتار ها
sheida.m sheida.m آنلاین نیست.
کاربر خيلی فعال
 
تاریخ عضویت: Jul 2009
محل سکونت: TeHrAn
نوشته ها: 1,485
سپاسها: : 1

54 سپاس در 24 نوشته ایشان در یکماه اخیر
sheida.m به Yahoo ارسال پیام فرستادن پیام با Skype به sheida.m
پیش فرض شماره گیری Dial up با ++C

برنامه ی ساده ای که یوزر و پسورد رو از شما میگیره و خودش به اینترنت وصل میشه ...

اول که باید یه پروژه جدید بسازید و ۳ تا 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;
با این ۲ تابع ساده میتونید به اینترنت متصل شید. اما نکاتی که هست اینه که :
اولا اصلا کانکشن ویندوزی ساخته نمیشه.
دوماً اینکه ایکون اتصال هم نمایش داده نمیشه و دست شمارو باز میگذاره که هرجور دوست دارید اعمال سلیقه کنید.
__________________

♥SheidA♥


تو همان مهربانی هستی؟! یا مهربانی همان توست؟!
نمی دانم … می دانم بی شک با هم نسبت نزدیکی دارید
!! آسمونـــ ــ منـــ ــ همیشهـــ ــ !! ابریـــ ــ !! چترتو با خودتــ ــ آوردیـــ ــ !!

پاسخ با نقل قول
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید