وبلاگ تخصصي برنامه نويسي با VB

توضيحات


+ بخش چهارم آموزش TAPI را در زير بخوانيد .

+ سال جديد رو به همه دوستان تبريک می گم . اميدوارم سال جديد سالی مملو از موفقيت و کاميابی برای شما باشه .

+ خدا نگهدار تا ۵ فروردين ۱۳۸۲ . . .

+ حامد شیدائیان ; ۱٠:٤٠ ‎ق.ظ ; چهارشنبه ٢۸ اسفند ،۱۳۸۱
comment نظرات ()

TAPI در ويژوال بيسيک - بخش چهارم


انتخاب يک آدرس :
کد زير نشان می دهد که چگونه می توان با استفاده از شی TAPI در ويژوال بيسيک منابع تلفنی در دسترس را برای يک آدرس که بتواند يک مجموعه مشخص از نيازها را مديريت کند ، بررسی کرد .
توجه داشته باشيد که قبل از انجام اين کار بايستی عمل مقداردهی اوليه TAPI را که در بخش قبل ررسی شد ، انجام دهيد .

نکته : در کد زير عمل error checking انجام نگرفته است و برای استفاده از کد زير در برنامه های واقعی بايستی بخش بررسی خطا را به آن اضافه کنيد .
۱ - تعريف يک شی آدرس و يک شی مجموعه آدرس :

Dim gobjAddress As ITAddress
Dim objCollAddresses As ITCollection


۲ - تنظيم شی objCollAddress بعنوان يک مجموعه آدرس از شی objTapi :

Set objCollAddresses = objTapi.Addresses


۳ - پيدا کردن آدرسی که بتواند از واسط مورد نظر ما پشتيبانی کند :

bFound = False
For indexAddr = 1 To objCollAddresses.Count
Set objCrtAddress = objCollAddresses.Item(indexAddr)x
Set objMediaSupport = objCrtAddress
Set objAddressCapabilities = objCrtAddress

If objMediaSupport.QueryMediaType( nSelectedType ) x
bFound = True
End If

Set objAddressCapabilities = Nothing
Set objMediaSupport = Nothing
Set objCrtAddress = Nothing

If bFound = True Then Exit For
Next indexAddr



در صورتيکه آدرس مورد نظزر پيدا شود برنامه از حلقه خارج شده و gobjAddress يک آدرس قابل استفاده خواهد بود :

Set gobjAddress = objcollAddresses.Item(indexAddr)x




+ حامد شیدائیان ; ۱٠:۳۳ ‎ق.ظ ; چهارشنبه ٢۸ اسفند ،۱۳۸۱
comment نظرات ()

TAPI در ويژوال بيسيک - بخش سوم


مقداردهی اوليه TAPI در ويژوال بيسيک :

از منوی Project گزينه References را انتخاب کرده و از ليست مربوطه مورد Microsoft TAPI 3.0 Type Library را انتخاب کنيد .
حال وارد بخش کد نويسی فرمتان شويد و متغير objTAPI را بصورت زير تعريف کنيد :

Dim objTapi As TAPI


سپس در بخش مربوط به Form Load شی objTAPI را بصورت زير ايجاد می کنيم :

Set objTapi = New TAPI


همانطور که در بخشهای قبلی گفته شد ، قبل از فراخوانی هر تابع TAPI ابتدا بايستی آنرا مقداردهی اوليه کنيم . برای مقداردهی اوليه کردن شی TAPI عبارت زير را بنويسيد :

Call objTapi.Initialize



+ حامد شیدائیان ; ۱۱:۳٤ ‎ق.ظ ; یکشنبه ٢٥ اسفند ،۱۳۸۱
comment نظرات ()

TAPI در ويژوال بيسيک - بخش دوم


مقداردهی اوليه TAPI :

عملکرد درست اجزای TAPI نياز به برپاسازی محيط ارتباطی روی کامپيوتر مورد نظر دارد . مراحل اين امر عبارتند از :

۱ - نصب TAPI : زمانيکه سخت افزار و يا نرم افزار برای اولين بار به کامپيوتر اضافه می شود انجام می گيرد . جزئيات کار به سيستم عامل و نرم افزار بستگی دارد .

۲ - مقداردهی ابتدائی : ساخت اشيا و مسيرهای ارتباطی

۳ - مذاکره در مورد ورژن TAPI : برای اطمينان از اينکه اجزای TAPI قادر به تبادل داده ها باشند .

۴ - استخراج اطلاعات منابع : بدست آوردن اطلاعاتی در مورد دستگاهی که می توان از آن در برنامه TAPI مورد نظرمان استفاده نمود .

۵ - Event notification : برپاسازی سيستم اطلاع رسانی event


+ حامد شیدائیان ; ٦:٥٧ ‎ب.ظ ; سه‌شنبه ٢٠ اسفند ،۱۳۸۱
comment نظرات ()

TAPI در ويژوال بيسيک - بخش اول


مروری بر Microsoft Telephony :

Telephony امکان مجتمع سازی کامپيوترها با دستگاههای ارتباطی و شبکه ها را فراهم نموده است . معمولاً دستگاه ارتباطی يک مودم و خط ارتباطی نيز شبکه PSTN ( شبکه عمومی تلفن سوئيچينگ ) می باشد . برخی از کاربردهای Telephony عبارتند از :

۱ - کنفرانسهای مالتی مديا بصورت Multicast
۲ - VoIP
۳ - مرکز پاسخ گويي اتوماتيک
۴ - تماس تلفنی از طريق کامپيوتر روی شبکه PSTN

دياگرام زير معماری Microsoft Telephony را نشان می دهد :


برنامه های TAPI :

برای نوشتن برنامه های کاربردی با استفاده از TAPI بايستی ابتدا در مورد سطح سرويسی که می خواهيم ارائه دهيم تصميم گيری کنيم . برای مثال برای نوشتن يک برنامه شماره گير تلفن نياز به استفاده کامل از TAPI نيست و می توان از قابليتهای خود ويندوز در اين زمينه استفاده کرد ( Assisted Telephony ) . در بخشهای بعدی در مورد سطوح مختلف سرويس در TAPI بيشتر صحبت خواهم کرد .
دومين مطلبی که بايد مورد توجه قرار داد اينست که می خواهيم از TAPI 2.x استفاده کنيم يا از TAPI 3.x . تفاوت ايندو آنست که TAPI ورژن ۲ يک API برمبنای C است در حاليکه ورژن ۳ آن بر مبنای تکنولوژی COM می باشد . در بخشهای بعدی مطالب بيشتری در مورد تفاوتهای اين دو نسخه بيان خواهم کرد .
بخشهای اصلی يک برنامه کامل TAPI عبارتند از :

۱ - TAPI Initialization : شامل load کردن TAPI dll ، اتصال به TAPI Server ، مذاکره در مورد ورژن TAPI و برپاسازی سيستم اطلاع رسانی event می باشد .

۲ - Session Control : مقداردهی اوليه ، دريافت و کنترل تماسها

۳ - Device Control : دريافت و تنظيم اطلاعات دستگاه

۴ - Media Control : تشخيص و يا توليد تونها و ارقام ، کنترل stream

۵ - TAPI Shutdown : آزاد سازی منابع

دياگرام زير اين مراحل را بهتر نشان می دهد :



در بخشهای بعدی در مورد هر يک از اين مراحل بيشتر صحبت خواهم کرد .



+ حامد شیدائیان ; ۱٠:۱٩ ‎ق.ظ ; یکشنبه ۱۸ اسفند ،۱۳۸۱
comment نظرات ()

معرفی سايت




سايت برنامه نويسی حرفه ای ويژوال یيسيک : در اين سايت برخی از نکات آموزشی MSDN بصورت ترجمه شده به فارسی و با فرمت PDF قرار داده شده است .

برخی از مباحث اين سايت :

۱ - برنامه نويسی API در ويژوال بيسيک
۲ - کار با فايلها در ويژوال بيسيک
۳ - کار با پنجره در ويژوال بيسيک
۴ - کار با منو در ويژوال بيسيک
۵ - مالتی مديا
۶ - چاپ
۷ - ساخت برنامه های کاربردی
۸ - ساخت کنترلهای ActiveX
۹ - مباحث پيشرفته در مورد کنترل TextBox
۱۰ - استفاده از امکانات C در ويژوال بيسيک

+ حامد شیدائیان ; ۱٠:٠۸ ‎ق.ظ ; سه‌شنبه ۱۳ اسفند ،۱۳۸۱
comment نظرات ()

TAPI در ويژوال بيسيک - مقدمه


TAPI چيست ؟

TAPI يا Telephony API يک کتابخانه استاندارد برای کار با مودم و نوشتن برنامه های تلفنی می باشد . برای نمونه می توان از برنامه های Phone Dialer ( شماره گير تلفن ) ، برنامه شبکه سازی تلفنی ( Dialup Networking ) ، برنامه تشخيص پالس مودم برای ضبط اطلاعات وارد شده از طرف کاربران و کاربردهای ديگر در اين زمينه نام برد . اين کتابخانه به شما کمک کمک می کند تا بدون درگير شدن با برنامه نويسی سخت افزار مودم و درايور آن بطور مستقيم بتوانيد برنامه های کاربردیي در اين زمينه بنويسيد .

در اين سلسه مقالات سعی می کنم تا مفاهيم TAPI و چگونگی استفاده از آنرا در ويژوال بيسيک آموزش بدهم .

+ حامد شیدائیان ; ۳:۱٢ ‎ب.ظ ; یکشنبه ۱۱ اسفند ،۱۳۸۱
comment نظرات ()

فضای مجانی



+ مثال اينکه سايت Netfirms امکان Remote Linking فضايي رو که من اونجا رجيستر کرده بودم بدون هيچ گونه اطلاعی بسته . البته اينو حدس می زدم چون بقيه دوستان هم با اين مشکل مواجه بودند .
آيا کسی سايتی سراغ داره که يه فضای مجانی با امکان Remote Linking بده ؟



+ حامد شیدائیان ; ۱:۳۱ ‎ب.ظ ; سه‌شنبه ٦ اسفند ،۱۳۸۱
comment نظرات ()

کار با فايل در ويژوال بيسيک - بخش سوم

ساير عمليات کار با فايل :

۱ - حذف فايل : برای حذف يک يا چند فايل از دستور Kill استفاده می شود :
Kill "C:\Temp\MyFile.txt"x
Kill "C:\Temp\*.txt"x

۲ - انتقال فايل : برای انتقال يک فايل از يک دايرکتوری به دايرکتوری ديگر از دستور Name استفاده می شود . مبدا و مقصد بايستی روی يک درايو باشند . اگر دايرکتوری مبدا و مقصد يکی باشد فايل تغيير نام داده می شود :
Name "C:\Temp\File1.txt" To "C:\Temp2\File2.txt"x

۳ - کپی کردن فايل : برای کپی کردن يک فايل از يک دايرکتوری به دايرکتوری ديگر از دستور FileCopy استفاده می شود :
FileCopy "\File1.txt\ To "C:\Temp\File2.txt"x

۴ - بدست آوردن تاريخ و زمان آخرين تغيير فايل و يا زمان ايجاد فايل : برای اين کار از دستور FileDateTime استفاده می شود . ابتدا بايستی يک متغير از نوع Variant تعريف کرده و سپس توسط اين دستور تاريخ و زمان موردنظر را استخراج کنيم :
Dim FileInfo As Variant
FileInfo=FileDateTime("C:\Temp\MyFile.txt")x

۵ - استخراج طول فايل : برای بدست آوردن طول يک فايل بر حسب بايت از دستور FileLen استفاده می شود :
FileSize=FileLen("C:\MyFile.txt")x

۶ - تغيير صفت يک فايل : برای تغيير صفت يک فايل از دستور SetAttr استفاده می شود . پارامترهای اين دستور عبارتند از :
0 : فايل معمولی
2 : فايل مخفی
4 : فايل سيستمی

SetAttr FileNumber,FileAttrib

مقابله با خطاهای کار با فايل :

در زمان کار با فايلهای احتمال زيادی وجود دارد که خطا بوجود آيد . بنابراين بايستی در زمان کار با فايلها در صورت ممکن از روتينهای مقابله با خطا استفاده کنيم . شايع ترين خطاهای کار با فايل عبارتند از :

۵۲ : شماره يا نام فايل صحيح نيست
۵۳ : فايل پيدا نشد
۵۴ : حالت فايل صحيح نيست
۵۵ : فايل قبلاً باز شده
۵۸ : فايل از قبل وجود دارد
۵۹ : طول رکورد صحيح نيست
۶۱ : ديسک پر است
۶۲ : عبور از انتهای فايل
۶۳ : شماره رکورد صحيح نيست
۷۰ : دسترسی ممنوع است
۷۱ : ديسک آماده نيست
۷۶ : مسير پيدا نشد

در هنگام مقابله با خطا بهتراست از يک ساختار Select-Case استفاده کنيد :
Select Case Err
Case 71
MsgBox "Drive is Not Ready"x
.
.
.
End Select

+ حامد شیدائیان ; ۱:٥۳ ‎ب.ظ ; دوشنبه ٥ اسفند ،۱۳۸۱
comment نظرات ()

توضيحات


+ قسمت سوم کار با فايل در ويژوال بيسيک را فردا بخوانيد .

+ موضوع مقالات بعدی : استفاده از امکانات TAPI در ويژوال بيسيک

+ حامد شیدائیان ; ٥:٢٧ ‎ب.ظ ; یکشنبه ٤ اسفند ،۱۳۸۱
comment نظرات ()