پاسخ : آشنایی با RAS API و WinInet API چگونگی declare کردن تابع : Public Declare Function InternetAutodialHangup Lib “wininet.dll” (ByVal dwReserved As Long) As Long 3 – تابع InternetDial : یک اتصال به اینترنت را با استفاده از یک ارتباط مودم مقداردهی اولیه می کند . پارامترهای ورودی آن عبارتند از : hwndParent : هندل مربوط به پنجره parent lpszConnectoid : نام ارتباط dial-up مورد استفاده dwFlags : فلگ کنترل اتصال که یکی از مقادیر زیر را می تواند داشته باشد : - INTERNET_AUTODIAL_FORCE_ONLINE - INTERNET_AUTODIAL_FORCE_UNATTENDED - INTERNET_DIAL_UNATTENDED : اتصال به اینترنت از طریق مودم بدون نمایش واسط کاربر lpdwConnection : آدرس داده ای که شامل عدد متناظر با اتصال است . dwReserved : پارامتری رزرو شده است و بایستی صفر باشد
پاسخ : آشنایی با RAS API و WinInet API چگونگی declare کردن تابع : Public Declare Function InternetDial Lib “wininet.dll” (ByVal hwndParent As Long, ByVal lpszConnectoid As String, ByVal dwFlags As Long, lpdwConnection As Long, ByVal dwReserved As Long) As Long 4 – تابع InternetGetConnectedState : این تابع وضعیت اتصال جاری به اینترنت را بر می گرداند . اگر اتصال برقرار باشد تابع مقدار true و در غیر اینصورت false برمی گرداند . پارامترهای ورودی تابع عبارتند از : lpdwFlags : توصیف وضعیت اتصال . این پارامتر یکی از مقادیر زیر را می تواند داشته باشد : - INTERNET_CONNECTION_MODEM - INTERNET_CONNECTION_LAN - INTERNET_CONNECTION_PROXY - INTERNET_CONNECTION_MODEM_BUSY dwReserved : پارامتری رزرو شده است و بایستی صفر باشد .
پاسخ : آشنایی با RAS API و WinInet API چگونگی declare کردن تابع : Public Declare Function InternetGetConnectedState Lib “wininet.dll” (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long 5 – تابع InternetGoOnline : پیغامی به کاربر برای دادن مجوز برای مقداردهی اولیه اتصال به یک URL را می دهد . اگر اینکار موفقیت آمیز باشد مقدار true و در غیر اینصورت false برمی گرداند . پارامترهای ورودی تابع عبارتند از : lpszURL : URL وب سایت مورد نظر برای اتصال hwndParent : هندل پنجره parent dwReserved : پارامتری رزرو شده است و بایستی صفر باشد .
پاسخ : آشنایی با RAS API و WinInet API چگونگی declare کردن تابع : Public Declare Function InternetGoOnline Lib “wininet.dll” (ByVal lpszURL As String, ByVal hwndParent As Long, ByVal dwReserved As Long) As Long 6 – تابع InyernetHangUp : به مودم می گوید که اتصال به اینترنت را قطع کند . پارامترهای این تابع عبارتند از : dwConnection : شماره مربوط به اتصالی که می خواهیم آنرا قطع کنیم . dwReserved : پارامتری رزرو شده است و بایستی صفر باشد .
پاسخ : آشنایی با RAS API و WinInet API چگونگی declare کردن تابع : Public Declare Function InternetHangUp Lib “wininet.dll” (ByVal dwConnection As Long, ByVal dwReserved As Long) As Long 7 – تابع InternetSetDialState : تنظیم نمودن وضعیت شماره گیری مودم . اگر تنظیم با موفقیت انجام شود تابع true و در غیراینصورت false برمی گرداند . پارامترهای ورودی تابع عبارتند از : lpszConnectoid : نام اتصال dial-up dwState : وضعیت مربوط به اتصال dial-up . در حال حاضر این پارامتر تنها مقدار INTERNET_DIALSTATE_DISCONNECTED را می تواند داشته باشد . dwReserved : پارامتری رزرو شده است و بایستی صفر باشد .
پاسخ : آشنایی با RAS API و WinInet API چگونگی declare کردن تابع : Public Declare Function InternetSetDialState Lib “wininet.dll” (ByVal lpszConnectoid As String, ByVal dwState As Long, ByVal dwReserved As Long) As Long
پاسخ : آشنایی با RAS API و WinInet API بررسی فلگهای مورد استفاده در توابع dial-up : 1 – فلگهای تابع InternetDial : Public Const INTERNET_DIAL_UNATTENDED = &H8000& ’۰×۸۰۰۰ Public Const INTERENT_GOONLINE_REFRESH = &H1 ’۰×۰۰۰۰۰۰۰۱ Public Const INTERENT_GOONLINE_MASK = &H1 ’۰×۰۰۰۰۰۰۰۱ ۲ – فلگهای تابع InternetAutoDial : Public Const INTERNET_AUTODIAL_FORCE_ONLINE = 1 Public Const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2 Public Const INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4 3 – فلگهای تابع InternetGetConnectedState : Public Const INTERNET_CONNECTION_MODEM = 1 Public Const INTERNET_CONNECTION_LAN = 2 Public Const INTERNET_CONNECTION_PROXY = 4 Public Const INTERNET_CONNECTION_MODEM_BUSY = 8 4 – فلگهای مربوط به dial handler اختصاصی : Public Const INTERNET_CUSTOMDIAL_CONNECT = 0 Public Const INTERNET_CUSTOMDIAL_UNATTENDED = 1 Public Const INTERNET_CUSTOMDIAL_DISCONNECT = 2 5 – فلگهای عملیاتی پشتیبانی شده برای dial handler اختصاصی : Public Const INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED = 1 Public Const INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE = 2 Public Const INTERNET_CUSTOMDIAL_CAN_HANGUP = 4 6 – وضعیتهای مربوط به InternetSetDialState : Public Const INTERNET_DIALSTATE_DISCONNECTED = 1
پاسخ : آشنایی با RAS API و WinInet API در این بخش که آخرین بخش از مباحث WinInet API است برنامه ای نمونه برای کار با توابع مودمی این کتابخانه ارائه خواهیم داد : برای نوشتن برنامه ای که بتوان از طریق آن با استفاده از مودم به اینترنت متصل شد بصورت زیر عمل می کنیم : در ابتدا بایستی تابع InternetDial را Declare کنیم : Private Declare Function InternetDial Lib “wininet.dll” Alias “InternetDialA” (ByVal hwndParent As Long, ByVal lpszConnectoid As String, ByVal dwFlags As Long, lpdwConnection As Long, ByVal dwReserved As Long) As Long سپس وضعیت شماره گیری را در متغیری به اسم lOption قرار می دهیم . این متغیر می تواند مقادیر زیر را داشته باشد : - DF_FORCE_ONLINE - DF_FORCE_UNATTENDED - DF_DIAL_FORCE_PROMPT - DF_DIAL_UNATTENDED حال نام اتصالی را که می خواهیم از آن استفاده شود در متغیری به اسم ConnectionName قرار می دهیم . همچنین دو متغیر به اسم ConnectionID و RetVal را از نوع long تعریف می کنیم .
پاسخ : آشنایی با RAS API و WinInet API حال تابع InternetDial را بصورت زیر صدا می کنیم : RetVal = InternetDial(Me.hwnd, ConnectionName, lOption, ConnectionID, 0) اگر RetVal مخالف صفر باشد عمل Dial بدرستی انجام شده است . برای قطع اتصال فوق بایستی از تابع InternetHangUp استفاده کنیم . برای اینکار ابتدا تابع فوق را Declare می کنیم : Private Declare Function InternetHangUp Lib “wininet.dll” (ByVal dwConnection As Long, ByVal dwReserved As Long) As Long سپس این تابع را بصورت زیر فراخوانی می کنیم : RetVal = InternetHangUp(ConnectionID, 0) برای اینکه مودم را مجبور کنیم تا بطور اتوماتیک از اتصال پیش فرض سیستم برای شماره گیری استفاده کند از تابع InternetAutodial استفاده می کنیم . برای اینکار ابتدا تابع را Declare می کنیم : Private Declare Function InternetAutodial Lib “wininet.dll” (ByVal dwFlags As Long, ByVal hwndParent As Long) As Long سپس تابع را بصورت زیر فراخوانی می کنیم : RetVal = InternetAutodial(ADF_FORCE_UNATTENDED, Me.hwnd) اگر RetVal مخالف صفر باشد عمل AutoDial بدرستی انجام شده است . برای قطع اتصالی که توسط AutoDial ایجاد شده از تابع InternetAutodialHangup استفاده می کنیم . ابتدا این تابع را Declare می کنیم : Private Declare Function InternetAutodialHangup Lib “wininet.dll” (ByVal dwReserved As Long) As Long فراخوانی این تابع بصورت زیر است : Call InternetAutodialHangup(0)
پاسخ : آشنایی با RAS API و WinInet API برای اینکه بفهیم آیا اتصال به اینترنت وجود دارد یا نه از تابع InternetGetConnectedStateEx استفاده می کنیم . برای اینکار ابتدا تابع را Declare می کنیم : Private Declare Function InternetGetConnectedStateEx Lib “wininet.dll” Alias “InternetGetConnectedStateExA” (lpdwFlags As Long, lpszConnectionName As Long, dwNameLen As Long, ByVal dwReserved As Long) As Long سپس تابع را بصورت زیر فراخوانی می کنیم : strConnectionName = Space(256) lNameLen = 256 lPtr = StrPtr(strConnectionName) lNameLenPtr = VarPtr(lNameLen) RetVal = InternetGetConnectedStateEx(lConnectionFlags, ByVal lPtr, ByVal lNameLen, 0) که strConnectionName از نوع String و بقیه متغیرها از نوع Long هستند . اگر RetVal مخالف صفر باشد اتصال برقرار است . ثابتهایی که در کدهای فوق استفاده شده عبارتند از : Private Const INTERNET_AUTODIAL_FORCE_ONLINE = 1& Private Const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2& Private Const INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4& Private Const INTERNET_DIAL_FORCE_PROMPT = &H2000 Private Const INTERNET_DIAL_SHOW_OFFLINE = &H4000 Private Const INTERNET_DIAL_UNATTENDED = &H8000