کاربران تگ شده

+ پاسخ به موضوع
نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع:
اتصال اتوماتیک به اینترنت با c++

  1. #1


    محل سکونت
    اینجا
    رشته تحصیلی
    نرم افزار
    نوشته ها
    1,210
    پسندیده
    2,426
    تشکر شده
    1,693 بار در 816 پست
    Mention شده
    در 0 پست
    تگ شده
    در 0 تاپیک

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

    ویرایش توسط IMAN : 02-07-2011 در ساعت 12:30 PM

  2. 3 کاربر از WIN32 به خاطر این پست مفید تشکر کرده اند:

    IMAN (02-06-2011), mohsen.hasani (02-07-2011), ZIZO (02-17-2011)

  3. #2


    رشته تحصیلی
    مهندسی نرم افزار
    نوشته ها
    1,994
    پسندیده
    1,002
    تشکر شده
    3,197 بار در 1,334 پست
    Mention شده
    در 2 پست
    تگ شده
    در 5 تاپیک
    کامپایلرش هم میگفتی بد نبود







    بی دین شدی و گنه نکردی مردی
    ور نه همه از گناه بی دین شده اند






  4. #3


    محل سکونت
    اینجا
    رشته تحصیلی
    نرم افزار
    نوشته ها
    1,210
    پسندیده
    2,426
    تشکر شده
    1,693 بار در 816 پست
    Mention شده
    در 0 پست
    تگ شده
    در 0 تاپیک
    نقل قول نوشته اصلی توسط ziXet نمایش پست ها
    کامپایلرش هم میگفتی بد نبود
    ویژوال سی پلاس پلاس

  5. کاربر زیر به خاطر این پست مفید از WIN32 تشکر کرده است:

    ZIZO (02-17-2011)

+ پاسخ به موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید