كنترل پنل             جستجو               پرسشهای متداول            .:: آخرین پست‌های انجمن ::.            لیست اعضا            مدیران سایت             درجات        ورود
فهرست انجمن‌ها -> عمومي برنامه‌نويسي -> ويژوال بيسيك VB
پاسخ دادن به این موضوع رفتن به صفحه قبلی  1, 2, 3, 4, 5, 6, 7, 8, 9  بعدی
آموزش گام به گام ویژوال بیسیک 6
پست تاریخ: یکشنبه 4 دی 1384 - 05:51    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

ادامه قسمت دوم
انواع داده ها در ویژال بیسیک؟
قواعد اولیه:
وقتی می خواهیم با کد کا کنیم لازم است که چند نکته مقدماتی را بدانیم.مثلا اینکه کدها به فرم ها و کنترل های برنامه متصل می شوند. در ابتدا بخاطر داشته باشید. که از طریق پنجره project می توانید برنامه های خود را سازماندهی کنید و همه فایلهای مرتبط با برنامه را مشاهده نمایید با وجودی که روالها رویداد را درون پنجره code می نویسید اما اینها به فایل های خاص برای خودشان نیاز ندارند. بلکه همراه با کنترل های مربوط در یک جا قرار می گیرند.بعنوان مثال پروژههای که تا به اینجات کار کردیم فقط شامل یک فرم بود و آن فرم کنترلها و روال های رویداد مربوط به آن کنترل ها را حفظ می کند.
همانطوریکه خواهید دید یک فرم می تواند کدی را نگه دارد که لوزما کد روال رویداد نیست بلکه یک کد چند منظوره است.
بعضی پروژه ها انواع دیگری از کدها را حفظ می کنند.در فصل قبل یاد گرفتید که همه کد درون روال ها ظاهر می شود و ویژال بیسیک از سابروتین و تابع پشتیبانی می کند.روالهای رویداد در گروه سابروتین قرار می گیرند اما در طول کتاب با نحوه نوشتن توابع نیز آشنا می شوید.چنانچه یک روال رویداد مربوط یک کنترل خاص نباشد می توانید در یک مدول کد جدا گانه ظاهر شود پنجره project فهرست مدولها را هم نشان می دهند.
پنجره project properties را باز کرده از داخل منو project
Project type= این قسمت مخصوص انتخاب نوع form می باشد.form activex……
Startup object= این قسمن مشخص می کنید که در موقع اجراع برنامه کدام یک از فرم های شما اجرا شود.اگر که یک عدد فورم داشته باشید که همان یک عدد فورم ظاهر می شود ولی اگر تعداد فرم های شما از 2 عدد بیشتر باشد امکان انتخاب یکی ز این فرم ها امکان پذیر است.
پنجره کد نویسی دارای چندین قسمت است.
قسمت اعلان
روالها عمومی
شروع رواهای یک رویداد.
داده ها در ویژوال بیسیک:
برای انجام محاسبات در ویژال بیسیک لازم است چند نوع داده را پردازش کنید . مثلا با نام ها نشانی ها مقادیر پولی اعداد بزرگ و کوچک و داده های منطقی کار کنید.داده های منطقی می توانند درست یا غلط باشند. ویژال بیسیک از بسیاری از انواع داده ها پشتیبانی می کند لذا همه نیازهای برنامه نویسی را می تواند بپوشاند.
قبل از اینکه با یک داده کار کنید لازم است به ویژوال بیسیک اعلام کنید که نوع این داده چیست .

داه های عددی
بطور کلی همه داده های عددی در دو گروه قرار می گیرند:
اعداد صحیحintegers=اعداد کامل بدون ممیز اعشاری می باشند مثل 614.934-و938.3.918
اعداد صحیح نشان دهنده سن . تعداد . سال و غیره می باشند.
اعداد اعشاری decimals:اعداد دارای ممیز اعشاری می باشند که مقادیر کسری را نشان می دهند مثل
8.709.0.005و-402.35534اعداد اعشاری که گاهی اعداد با ممیز شناور floating point
نیز نامیده می شوند نشان دهنده درجه حرارت نرخ بهره و غیره می باشند. در کلیه اعداد اعشاری باید ممیز اعشاری را قرار دهید حتی اگر قسمت کسری سمت راست ممیز مساوی صفر باشند.
هفت نوع داده عددی که ویژوال بیسیک از آنها پشتیبانی می کند.

نوع حافظه مورد نیاز محدوده مقادیر
Byte یک بایت 0تا 255
Integer دوبایت -32.768تا32.767
Long چهار بایت -2.147,483,648 تا 2,147,483,647
Single چهار بایت ||مقادیر منفی از3.402823e+38 تا -1.401298e-45 مقادیر مثبت از1.401298e-45 تا 3.402823e+38
Double هشت بایت ||مقادیر منفی از -1.79769313486232e+308 تا-4.9406565841247e-324مقادیر مثبت از 4.9406545841247e-324 تا 1.79769313486232e+308
Currency هشت بایت -922,337,203,685,477,5808 تا 922,337,203, 685, 477,5807
دقت بیشتر باعث می شود که محاسبات پولی تا دو رقمی اعشاری درست باشند.
Decimal دوازده بایت اگر از عداد اعشاری استفاده نکنید +/-79,228,162,514,264,337,593,543,950,335 و برای 28 رقم اعشاری استفاده نکنید +/-7.9228162514264337593543950335نوع داده decimalهنوز بطور کامل در ویژوال بیسیک پشتیبانی نمی شود اما در نگارش جدید هست.
کاراکترهای پسوند ویژوال بیسیک برای مقادیر صریح
پسوند نوع داده
& long
! single
# double
@ currency
ویژوال بیسیک از چند نوع داده عددی پشتیبانی می کند.
نوع حافظه مورد نیازش محدوده مقادیر
Stringطول ثابت طول رشته 1تا 56.400 کاراکتر
Stringطول متغیر طول رشته بعلاوه 10 بایت صفر تا دو میلیارد کارا کاتور
Date 8 بایت اول ژانویه 100 تا 31 دسامبر 9999
Boolean 2 بایت true یا false
Object 4 بایت هر شی پنهان شده
Variantعددی 16 بایت همه مقادیر مشابه double
Variantمتنی طول متن بعلاوه 22 بایت مشبه string با طول متغیر
پیشوند نام متغیرها که نوع داده را نشان می دهند
پیشوند نوع داده مثال
Bln Boolean blnbuttonenabled
Byt byte bytlength
Cur currency cursales98
Dte date dteoverdue
Dbl double dblscientificamt
Int integer intyera1998
Ing long ingweatherdistance
Obj object objworksheetacct99
Sng single sngsales1stqte
Str string strfirstname
Vnt variant vntvalue
مثال
در اینجا بعضی از علان ها مجاز با استفاده از dim را می بینید.
Dim inttotal as integer
Dim cursales99 as currency
عملگرهای رایج محاسبات و دستکاری داده ها.
عملگر هدف مثال نتیجه
^ توان 2^3 8
* ضرب 2*3 6
/ تقسیم 2/6 3
+ جمع 3+5 8
- تفریق 6-3 3
Mod باقیمانده 11mode 3 2
\ |تقسیم عدد صحیح 11\3 3
+یا& ترکیب رشته ای "hi,"bay" "hi, bay"
ویژوال بیسیک برای محاسبات عبارت های ریاضی از ترتیب زیر برای عملگرها تبعیت می کند
ترتیب عملگر مثال نتیجه
1 پرانتزها() (3+2)*7 35
2 ^ 2^3+1 9
3 mod,\,\.* 2+3*7 43
4 -,+ 10-4*2+1 3
پایان قسمت دوم

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:52    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

خوب تا به اینجا که آموزش دیدین بعضی از این قسمت ها متفرقه بود برای آشناایی .
و حدود یه 10 عدد تایپک الی بیشتر در همین زمینه متفرقه آماده است برای گزاشتن.
تا جایی که اعلام کنم زنگ تفریح یا متفرقه است

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:53    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

مقدمه : کنترل Internet Transfer نسبت به کنترل WebBrowser که در روزهاي قبلي معرفي شد در سطح پايينتري قرار دارد . اين کنترل با استفاده از دو پروتکل HTTP و FTP مي تواند داده ها را منتقل کند . اين کنترل زمانيکه از پروتکل HTTP استفاده مي کند با همان روش کنترل WebBrowser به سرويس دهنده صفحات وب متصل مي شود اما بجاي آنکه صفحه وب را نمايش دهد متن Html صفحه را بازيابي مي کند . همچنين زمانيکه اين کنترل از پروتکل FTP استفاده مي کند قادرست فايلها را بين کامپيوترهاي روي شبکه منتقل سازد .
اتصالات HTTP : همانطور که مي دانيد ، پروتکل HTTP استاندارد وب مي باشد . صفحات وب با زبان Html نوشته مي شوند و انتقال آنها از server به client توسط پروتکل HTTP صورت مي گيرد .
متد OpenURL : ساده ترين راه استفاده از کنترل IT متد OpenURL است . شکل کلي اين متد بصورت زير است :

Inet.OpenURL(url,DataType)x

که url آدرس صفحه وب و DataType نوع داده بازيابي شونده است و دو مقدار icString ( داده متني ) يا icByteArray ( داده باينري ) را مي گيرد . مقدار بازگشتي اين متد ، داده هاي منتقل شده است .
اين متد بصورت سنکرون کار مي کند يعني در تمام مدت کار آن برنامه نمي تواند کار ديگري انجام دهد . اگر از icByteArray استفاده کنيد بايد مقدار بازگشتي آنرا در يک ارايه بايت قرار دهيد .
مثال 1 : از بخش Component در منوي Project مورد Microsoft Internet Transfer Control 6.0 را به toolbar خود اضافه کنيد . سپس يک کنترل IT روي فرم قرار دهيد و همچنين يک Rich Textbox و يک دکمه روي فرم قرار دهيد و کد زير را براي event مربوط به کليک دکمه بنويسيد :

TextBox.text=Inet.OpenURL(“www.microsoft.com”,icString)x

مثال 2 : کد زير داده هاي باينري را از اينترنت خوانده و آنها را در يک فايل ذخيره مي کند :

Dim b() as byte
B()=Inet.OpenURL(ftp://ftp.microsoft.com/test.zip,icByteArray)x
Open App.path & “\test.zip” For Access Write As #1
Put #1,b()x
Close #1


رويداد StateChanged : کنترل IT فقط يک event دارد که StateChanged مي باشد . اين event زماني روي مي دهد که State کنترل تغيير کند . State هر اتفاقي است که برنامه بايد از آن مطلع شود . تعريف کلي اين event بصورت زير است :

Inet_StateChanged(ByVal NewState As Integer)x

که NewState مقداري است که حالت جديد را بيان مي کند . مقادير ممکن اين پارامتر عبارتند از :
icNone : حالت تغيير نکرده است .
icResolvingHost : در حال جستجوي آدرس IP کامپيوتر موردنظر .
icHostResolved : آدرس IP کامپيوتر موردنظر يافت شد .
icConnecting : در حال اتصال به کامپيوتر مقصد
icConnected : اتصال به کامپيوتر مقصد برقرار شد .
icRequesting : در حال ارسال درخواست به کامپيوتر مقصد
icRequestSent : درخواست به کامپيوتر مقصد ارسال شد .
icReceivingResponse : در حال دريافت پاسخ از کامپوتر مقصد .
icResponseReceived : پاسخ کامپيوتر مقصد دريافت شد .
icDisconnecting : در حال قطع اتصال با کامپيوتر مقصد .
icDisconnected : اتصال مقصد با موفقيت قطع شد .
icError : در ارتباط با کامپيوتر مقصد خطايي رخ داده است .
icResponseCompleted : تکميل پاسخ – تمام داده ها دريافت شد .
تشخيص خطا در عمليات انتقال داده اهميت بالايي دارد و StateChanged در صورت بروز هر خطايي مقدار icError را برمي گرداند و اطلاعات خطا را در دو خاصيت ResponseCode و ResponseInfo برمي گرداند .
انتقال داده بصورت آسنکرون : کنترل IT متدهاي انعطاف پذير ديگري هم دارد که آسنکرون هستند و اجازه مي دهند تا همزمان با عمليات انتقال داده ، برنامه به وظايف ديگري هم بپردازد . اين متدها با استفاده از Event Driven Model کار مي کنند . بدين معني که وقتي برنامه درخواست انتقال داده اي را مي دهد کنترل IT درخواست را در زمينه برنامه انجام مي دهد و برنامه ازاد است تا به کارهاي ديگرش بپردازد . زمانيکه داده ها بازيابي شود ، داده ها را از بافر داخلي کنترل IT مي خواند .
متد GetChunk : در عمليات انتقال آسنکرون ، بايستي داده را توسط اين متد از بافر داخلي کنترل IT بگيريم :

Inet.GetChunk(datasize[,datatype])x

که پارامتر datasize از نوع long بوده و تعيين مي کند چند بايت از بافر خوانده شود و پارامتر اختياري datatype نوع داده را مشخص مي کند و مي تواند مقادير icString و icByteArray را بگيرد .
زمانيکه StateChanged وارد حالتهاي icResponseReceived و يا icResponseCompleted شد بايد از GetChunk استفاده کنيد . بدين صورت که از يک حلقه استفاده مي کنيم تا کل بافر را بخوانيم :

Private Sub Inet_StateChanged(Byval State as Integer)x
Dim temp1,temp2
Select Case State
Case icResponseCompleted
temp1=””x
temp2=””x
Do
temp1=Inet.GetChunk(512,icString)x
temp2=temp2 & temp1
Loop Until temp1=””x
End Select
End Sub

براي بالابردن کارايي ، بهتر است از قطعات کوچک ( بين 512 تا 1024 بايتي ) استفاده کنيد .
متد Execute : و اما انعطاف پذيرترين متد کنترل IT ، متد Execute است . فرمت کلي اين متد بصورت زير است :

Inet.Execute(url,Command,Data,RequestHeaders)x

که url آدرس مقصد ، Command فرماني است که به کامپيوتر مقصد داده مي شود و Data و RequestHeaders اطلاعات اضافي لازم براي اجراي فرمان داده شده است . فرمانهاي Command همان فرمانهاي HTTP هستند که عبارتند از :
- GET : دريافت داده ها از کامپيوتر مقصد
- HEAD : دريافت اطلاعات header از کامپيوتر مقصد
- POST : ارسال اطلاعات لازم براي تکميل درخواست
- PUT : ارسال فايل براي کامپيوتر ميزبان ( upload )
فرمان GET پرکاربردترين فرمان متد Execute است و داده هاي خوانده شده را در بافر داخلي بافر کنترل IT قرار مي دهد تا بتوان با متد GetChunk آنها را بازيابي نمود .
مثال :

Inet.Execute http://www.microsoft.com,”GET”x

ساير خواص کنترلIT :
- AccessType : نوع دسترسي کنترل IT به اينترنت را مشخص مي کند و سه مقدار مي تواند بگيرد :
icUseDefault : استفاده از تنظيمات رجيستري براي دسترسي به اينترنت
icDirect : اتصال مستقيم کنترل IT به اينترنت
icNamedProxy : اتصال به اينترنت توسط پروکسي
- Document : نام صفحه پيش فرض که در متد Execute از آن استفاده مي شود . اگر به متد Execute پارامتر url را ندهيد از اين صفحه پيش فرض استفاده مي کند .
- Password : کلمه رمز عبور کامپيوتر ميزبان FTP
- Procotol : نوع پروتکل مورد استفاده در متد Execute را مشخص مي کند و 5 مقدار مي تواند بگيرد :
icUnknown : نامعلوم
icDefault : پروتکل پيش فرض
icFTP : پروتکل FTP
icHTTP : پروتکل HTTP
icHTTP : پروتکل حفاظت شده HTTP
- Proxy : نام ميزبان پروکسي
- RequestTimeOut : مدت زماني که کنترل IT صبر مي کند تا اطلاعات را دريافت کند . اگر اين خاصيت صفر باشد کنترل تا هر زمان که لازم باشد براي دريافت پاسخ صبر مي کند . در حالت سنکرون ( متد OpenURL ) بعد از سپري شدن اين مدت زمان ، يک خطا توليد مي شود و در حالت آسنکرون ( متد Execute ) رويداد StateChanged مقدار خطا را بر مي گرداند
- ResponseCode : بعد از بروز حالت icError اين خاصيت کد خطا را مي دهد .
- ResponseInfo : توضيحي درباره خطا
- StillExecuting : اگر True باشد يعني کنترل مشغول انجام کار است .
- URL : آدرس مقصد در متدهاي OpenURL و يا Execute
- UserName : نام کاربر براي ورود به کامپيوتر ميزبان FTP

نکته 1 : براي دريافت برنامه نمونه براي متد Execute با من تماس بگيريد .
نکته 2 : موضوع روزهاي بعد :
1 - اتصالات FTP با استفاده از کنترل IT
2 – آشنايي با تکنيک Collision Detection در ساخت بازيهاي دوبعدي
3 – آشنايي با کنترل WinSock
نکته 3 : شايد اين سوال پيش بيايد که چرا همزمان با آموزش Internet Programming ، آموزش Game Programming را نيز شروع کرده ام ؟ علت اش اينست که تصميم دارم پس از پايان يافتن اين دو مبحث ، روش ساخت يک بازي دوبعدي چند نفره تحت شبکه را برايتان آموزش دهم . نظري نداريد ؟

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:54    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

--------------------------------------------------------------------------------

FTP




پروتکل FTP علاوه بر نقل و انتقال فايل بين دو کامپيوتر ، مي تواند نوعي مديريت فايل ( مثل حذف فايل يا ايجاد پوشه ) روي کامپيوتر مقصد را انجام دهد . FTP در انتقال فايل بسيار قويتر از HTTP است ولي به مراتب پيچيده تر از HTTP مي باشد اما کنترل IT اين پيچيدگيها را از ديد برنامه نويس مخفي کرده است .
براي کار با سرورهاي FTP بايد به آنها Login نمود . نوع خاصي از Login به نام Anonymous Login ( ورود ناشناس ) وجود دارد که با آن کاربران مي توانند بدون محدوديت از سايت FTP استفاده کنند . توجه کنيد که حتي براي ورود ناشناس هم نياز به نام کاربر و کلمه عبور است . براي ارسال نام کاربر و کلمه عبور از خواص username و password کنترل IT استفاده مي شود . اگر خاصيت username خالي باشد ( blank ) ، کنترل IT بطور خودکار از anonymous استفاده مي کند و آدرس email کاربر بعنوان passowrd استفاده مي شود .
استفاده از متد OpenURL : متد OpenURL ساده ترين راه انجام عمليات FTP است . دستور زير از يک سايت FTP ليست مي گيرد :

Text.text=Inet.OpenURL("ftp://ftp.microsoft.com",icString)x

براي خواندن فايل از يک سايت FTP بايد در حالت باينري کار کرد :

b()=Inet.OpenURL("ftp://ftp.microsft.com/test.zip",icByteArray)x


استفاده از متد Execute : متد Execute قابليتهاي بيشتري دارد و اجرای آن در FTP نياز به دو پارامتر دارد :

Inet.Execute(url,operation)x


که url آدرس سايت FTP بهمراه نام و مسير فايل و پارامتر operation يک فرمان FTP است . کنترل IT با داده هاي خوانده شده FTP به دو طريق رفتار مي کند :
برخي از داده ها مثل پاسخ فرمان DIR در بافر کنترل IT قرار مي گيرد و بايد آنها را با متد GetChunk خواند .
برخي ديگر از داده ها مثل فايل خوانده شده با فرمان GET مستقيماً روي ديسک نوشته مي شوند و ديگر نيازي به استفاده از متد GetChunk نيست .
فرامين FTP بسيار قوي هستند و حتي به شما اين امکان را مي دهند که فايلها را به روي کامپيوتر مقصد کپي کنيد ، به پوشه هاي کامپيوتر مقصد برويد ، فايلها را حذف کنيد و يا تغيير نام دهيد . البته بايد توجه داشت که فرامين قابل اجرا به نوع ورود به سيستم FTP بستگي دارد . اگر با کاربر anonymous به يک سايت FTP وارد شويد تنها مي تواند فايلها را ببيند و آنها را download کنيد .
مهمترين فرامين FTP عبارتند از :
CD path : به دايرکتوري path مي رويد .
CDUP : به يک دايرکتوري بالاتر مي رود .
CLOSE : بستن اتصال FTP
DELETE file1 : حذف فايل file1
DIR file1 : جستجوي فايل file1 روي دايرکتوري جاري
MKDIR path : ايجاد يک دايرکتوري با نام path
PUT file1 file2 : فايل file1 را از کامپيوتر مبدا روي فايل file2 در کامپيوتر مقصد کپي مي کند .
PWD : نام دايرکتوري جاري در کامپيوتر مقصد را برمي گرداند .
QUIT : قطع اتصال FTP
GET file1 file2 : فايل file1 را از کامپيوتر مقصد روي فايل file2 در کامپيوتر مبدا کپي مي کند .
RENAME file1 file2 : تغيير نام فايل file1 به file2
RMDIR path : حذف دايرکتوري path در کامپيوتر مقصد
SIZE file1 : بدست آوردن تعداد بايتهاي فايل يا دايرکتوري file1
مثال :

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:55    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

مقدمه :

برای آشنايي با مبانی شبکه های TCP/IP به بحث مروری بر TCP/IP مراجعه کنيد .

معرفی :

کتابخانه WinPcap يک معماری برای استخراج Packet های TCP/IP و آناليز شبکه در محيطهای ۳۲ بيتی ويندوز می باشد . اين کتابخانه شامل سه بخش است :

۱ - يک فيلتر Packet در سطح هسته سيستم عامل ( Kernel )

۲ - يک کتابخانه dll سطح پايين ( low-level ) با نام packet.dll

۳ - يک کتابخانه مستقل از سيستم عامل و سطح بالا ( high-level ) با نام wpcap.dll

فيلتر packet يک درايور دستگاه ( device driver ) است که به ويندوزهای ۹۵ ، ۹۸ ، ME ، NT و ۲۰۰۰ قابليت استخراج و capture کردن و نيز ارسال داده خام ( raw data ) از يک کارت شبکه را می دهد . همچنين اين امکان را دارد که packet های capture شده را در يک بافر ذخيره کند و يا آنها را فيلتر نمايد .
packet.dll يک API است که بمنظور دسترسی مستقيم به عملکرد درايور packet استفاده می شود . بنابراين packet.dll يک واسط برنامه نويسی مستقل از سیستم عامل های مايکروسافت را مهيا می کند .
Wpcap.dll مجموعه ای از ابزارهای سطح بالای اصلی برای capture را مهيا می کند که اين توابع با کتابخانه libpcap ( کتابخانه capture در سيستم عامل UNIX ) سازگار می باشند . اين توابع اجازه capture کردن packet ها را با روشی مستقل از سخت افزار شبکه و مستقل از سيستم عامل مهيا می کنند .

دريافت کتابخانه WinPcap :

نسخه WinPcap 2.2 :
برای دريافت برنامه auto-installer ( شامل درايور و DLL های مربوطه ) برای سيستم هایWindows 95/98/ME/NT/2000 به آدرس زير مراجعه کنيد :
WinPcap auto-installer (driver +DLLs)
برای دريافت بسته توسعه دهنده اين کتابخانه که شامل برنامه های نمونه ايجاد شده توسط packet capture driver و packet.dll و libpcap است ، به آدرس زير مراجعه کنيد :
Developer's pack
برای دريافت source code کتابخانه WinPcap به آدرس زير مراجعه کنيد :
WinPcap source code

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:56    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

مقدمه

PacketX مجموعه ای از کلاسهای اکتيو ايکس است که امکانات WinPcap را در ويژوال بيسيک و هر زبان برنامه نويسی ديگری که از تکنولوژی Microsoft ActiveX پشتيبانی کند مهيا می کند .
بطور خلاصه PacketX از WinPcap برای capture کردن و فيلتر کردن packet های شبکه استفاده می کند . علاوه بر capture استاندارد ، شما می توانيد از PacketX برای گردآوری اطلاعات ترافيک شبکه و ارسال raw packet استفاده کنيد .

دريافت PacketX

برای دريافت نسخه 1.3 اين کتابخانه به آدرس زير مراجعه کنيد :
PacketX 1.3 Download
قبل از استفاده از PacketX بايستی WinPcap 2.3 را که آدرس آن در بخش قبل گفته شد دريافت و نصب نمائيد .

استفاده از PacketX

با يک مثال ساده سعی می کنم روش استفاده از اين کتابخانه را به شما آموزش دهم .
پس از نصب PacketX وارد محيط ويژوال بيسيک شده و از منوی Project مورد Components را انتخاب کنيد .




سپس مورد PacketX Type Library را انتخاب کنيد تا به ToolBar اضافه شود .




اين ActiveX را در فرمتان قرار دهيد و سپس در قسمت properties آن روی Custom کليک نموده و نوع آداپتور را مشخص نمائيد .




پس از انتخاب آداپتور با کليک روی دکمه Edit می توانيد اطلاعاتی از قبيل مد کاری و ساير بافر و نوع فيلترينگ را مشخص نمائيد .




نام اين شی را نيز PacketX1 می گذاريم .
در فرمتان دو دکمه به نامهای Start و Stop قرار دهيد . همچنين يک listBox با نام IPList در فرمتان قرار دهيد .
در کد مربوط به Form_load عبارت زير را بنويسيد :

PacketX1.Adapter.BPFilter = "port 80"x


عبارت فوق مشخص می کند که می خواهيم packet های پورت 80 را capture کنيم .
کد زير را برای event مربوط به کليک شدن دکمه Start بنويسيد :

PacketX1.start


کد زير را برای متد OnPacket مربوط به PacketX1 بنويسيد :

Private Sub PacketX1_OnPacket(ByVal pPacket As PACKETXLibCtl.IPktXPacket)x
IPList.AddItem (pPacket.DestIpAddress)x
End Sub


کد فوق آدرس IP مقصد packet ها را به يک ليست اضافه می کند . شما می توانيد اطلاعات ديگری از قبيل داده موجود در packet ، سايز داده ، آدرس مبدا ، تاريخ ارسال داده و غيره را استخراج کنيد .
کد زير را برای event مربوط به کليک شدن دکمه Stop بنويسيد :

PacketX1.stop



برای اينکه بتوانيد در يک مدت خاص وضعيت دريافت و ارسال packet را بدست آوريد بايد ابتدا توسط دستور زير مد آداپتور را در حالت Statistic قرار دهيد :

PacketX1.Adapter.Mode=PktXModeStatistics
PacketX1.Adapter.ReadTimeout=2000 '// 2 sec


سپس PacketX1 را start نموده و توسط متد OnStatistics اطلاعات مربوطه را استخراج کنيد .

اطلاعات بيشتر

برای مشاهده اطلاعات کامل در مورد ساختار PacketX و ماژولهای آن به آدرس زير مراجعه کنيد :
PacketX Documentation

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:56    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

رجيستري چيست ؟
سيستم عامل ويندوز تنظيمات سخت افزاري و نرم افزاري خود را بطور مرکزي در يک بانک اطلاعاتي با ساختار سلسله مراتبي ذخيره مي کند که رجيستري نام دارد . رجيستري جايگزيني براي بسياري از فايلهاي پيکربندي INI ، SYS و COM است که در نسخه هاي اوليه ويندوز موجود بود . رجيستري ، سيستم عامل را با مهيا کردن اطلاعات موردنيز براي اجراي برنامه ها و load شدن component ها ، کنترل مي کند .
رجيستري شامل انواع مختلفي از اطلاعات مي باشد مثل :
- اطلاعات سخت افزارهاي نصب شده روي سيستم
- اطلاعات درايورهاي نصب شده روي سيستم
- اطلاعات برنامه هاي نصب شده روي سيستم
- اطلاعات پروتکلهاي شبکه اي مورد استفاده در سيستم
ساختار رجيستري شامل چندين مجموعه رکورد است که داده هاي اين رکوردها توسط بسياري از برنامه ها و اجزاي سيستم عامل خوانده و يا نوشته مي شود .
اجزاي رجيستري
اجزاي تشکيل دهنده رجيستري عبارتند از :
1 – subtree : Subtree ها همانند folder هاي موجود در ريشه يک درايو هارد هستند . رجستری ويندوز داراي پنج subtree مي باشد :
- HKEY_LOCAL_MACHINE : شامل تمام داده هاي پيکربندي براي کامپيوتر مي باشد و شامل 5 key است :Hardware ، SAM ، Security ، Software و System
- HKEY_USERS : شامل داده هاي مربوط به تنظيمات سيستم عامل براي هر user است مثل تنظيمات desktop و محيط ويندوز
- HKEY_CURRENT_USER : شامل داده هاي کاربر فعلي سيستم
- HKEY_CLASSES_ROOT : شامل اطلاعات پيکربندي نرم افزار است مثل داده هاي OLE و داده هاي کلاسهاي متناظر با فايل
- HKEY_CURRENT_CONFIG : شامل اطلاعات مورد نياز براي تنظيمات داريورهاي سخت افزاري و غيره
2 – Key : key ها همانند folder ها و subfolder هاي روي هارد هستند . هر key متناظر با object هاي نرم افزاري يا سخت افزاري مي باشد . subkey ها key هايي هستند که درون يکسري key قراردارند .
3 – Entry : هر key داراي يک يا چند entry است . هر entry داراي سه بخش مي باشد :
- نام Name
- نوع داده اي Data Type : مقدار هر entry يکي از انواع داده هاي زير است :
REG_DWORD ، REG_SZ ، REG_EXPAND_SZ ، REG_BINARY ،
REG_MULTI_SZ ، REG_FULL_RESOURCE_DESCRIPTOT
- مقدار Value




نکته 1 : براي مشاهده رجيستري و اعمال تغييرات در آن ( لطفاً اگر هيچ تجربه اي در تنظيم کردن رجيستري نداريد اطلاعات آنرا تغيير ندهيد ) ، مي توانيد از برنامه regedit.exe و يا regedt32.exe موجود در ويندوز استفاده کنيد . براي اينکار کافيست نام برنامه را در کادر Run وارد کنيد .

نکته 2 : در قسمت دوم اين مقاله کلاسي براي خواندن و نوشتن از/به رجيستري در ويژوال بيسيک خواهم نوشت و سپس نمونه اي از کاربردهاي نوشتن يکسري اطلاعات خاص در رجيستري را خواهيم ديد .

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:57    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

ممنون
خوب حالا ادامه آموزش
قسمت سوم
کنترل برنامه ها
کنترل برنامه ها
عملگر های شرطی
مثالا می خواهید برنامه ای برایحساب پرداخت ها بنویسیم.این مقدار طلب هر فروشنده را که با آن معادله دارید محاسبه می کند و چک مربوط را چاپ می نماییم.حال اگر با یکی از فروشندگان مبادله نداشته باشد چه رخ می دهد.
می خواهیم یک چک به مبلغ صفر دلار چاپ کنیم؟؟؟ مطمئنا پاسخ منفی است. تا اینجا همه کد های که درون روال دیده ایددستور به دستور اجرا می شوند. اما به کمک عملگرهای شرطی و دستور های مر بوط می توانید. برنامه ای بنویسید. که اگر لازم بود ترتیب اجرای دستورات تغییر نکند. بنابراین برنامه شما می تواند فقط چکهایی را چاپ کند که به فروشندگان آنها مبلغیبدهکار هستند.
ویژال بیسیک از 6 عملگرها شرطی پشتیبانی می کند.
عملگرها:=|<|>|=<|=>|<>
توضیح:مساوی|بزرگتر از|کوچکتر از|بزرگتر یا مساوی|کوچکتر یا مساوی|نا مساوی
مثال:2=7|3<6|11>5|23=<23|21=>4|3<>3
نتیجه:غلط|درست|درست|درست|درؠ ?ت|غلط
داده های شرطی
همیشه دو مقدار را با هم مقایسه کنید که از یک نوع داده باشند. مثلا می توانید دو عدد از یک نوع را با هم مقایسه کنید تا ببینید کدام بزرگتر است. همچنین می توانید رشته های را با هم و انواع boolean را نیز با هم دیگه مقایسه کنید.
اما هیچ وقت سعی نکنید یک رشته را با یک عدد مقایسه کنید چون نتیجه معمولا اشتباه در می آید.

دستور if
یک از متد اول ترین فرمان های زبان ویژال بیسیک فرمان if است . فرمان if قسمتی از یک دستور چند خطی به نام دستور if می باشد که فرمت آن به شکل زیر می باشد:

If conditional then
Block of one or more visual basic statements
End if
Conditional عبارتی است که نتیجه آن true یا false می باشد. در نتیجه conditional می تواند یک متغیر بولی بشد.می تواند یک کنترل معادل با مقدار true یا false باشد یا حتی ممکن است یک عبارت طولانی تر باشد که شامل عملگرهای شرطی و امتحان یک یا چند عملگر منطقی است.
وقتی که ما از دستور if استفاده می کنید دستور اگر می باشد مثالا می گوییم اگر فلان چیز را زد یا ...
فلا چیز بعدی اجرا یا ... اعمال شود این دستور یکی از دستور های است که در اکثر زبان های دیگر کا می کند. و اگر از این دستور در ویبی نخواهید استفاده کنیم یه جای کار می لنگه.
بدنه یک دستور if باید بصورت تو رفته باشد تا بتواند با یک نگاه نقاط شروع و خاتمه این دستور را تشخیص دهید . کلیه دستورات if چند خطی دارای مجموعه متناظری از دستورات end if در جایی از برنامه می باشند . دستور end if همیشه با آخرین دستور if مرتبط است بدون توجه به اینکه چقدر تو رفته باشد.
مقایسه داده ها به وکمک if

If (cursales > cursalesgoal) then
Cursalarybonus=100.00
Lblsalesnote.caption="maji"
Lblsalesnote.backcolor=red
Lblsalesnote.fontbold=true
End if
تکمیل دستور if با لغت کلیدی else
در قسمت های بالا در مورد شکل دستور ifآشنا شدید. اما برنامه نویسان غالب اوقات از شکل توسعه یافته آن استفاده می کنند.
که فرمت زیر را دارد.

If conditional then
Block of one or more visual basic statements
Else
Block of one or more visual basic statements
End if
ادامه دارد

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:58    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

--------------------------------------------------------------------------------

ادامه قسمت سوم
در اینجا نیز مانند کلیه دستورهای چند خطی برای واضح شدن بدنه دستور بصورت تو رفته می باشد.
اما به خاطر داشته باشید. که این شیوه ضروری نیست. اولین فرمت if که قبلا دیدید کدی را نشان می داد که اگر شرط درست باشد این کد اجرا می شد.
در این فرمت اگر شرط غلط باشد کدی برای اجرا وجود نخواهد داشت. Else بدین منظور به کار می رود.
دستور if…elseاز آنکه if … else خاتمه یافت اجرای بقیه برنامه ادامه یافت پیدا می کند.
دستورات if تو در تو

If text.text="majid" then
If text.text="majid2" then
Text2.text="majid"
Else
Text2.text="majid3"
End if
End if
گاهی اوقات بر اساس داده های مختلف ممکن است بخواهد یک رویداد یا نوع از روال ها را زودتر از موعد مقرر خاتمه دهید. برای انجام این کار می توانید دستور if را با دستور exit ترکیب کنید.
Exit sub|function|do|for
استفاده از دستور exit sub برای ختم زودرس یک روال
دستورات if…elseتودرتو
چنمانچه بخواهیم یک دستور if…else را درون یک دستور دیگر if……else قرار دهید باید برای شروع دستور if تو در تو از elseif استفاده کنید.
Elseif کمک می کند تا دو یا چند دستور if….else تو در تو با هم ترکیب شوند.

If text1.text="majid" then
Text2.text="majidddddddd"
Elseif text12.text="majidddddddddd"
Text3.text="ddd"
End if
همانطور که دیدید ما در قسمت if می گفتیم اگر وelse را در بین if می گزاشتیم که اگر خواستیم بگویید ویا
حال دستور elseif می گوید ویا اگر که هم ویا است و هم اگر یعنی دستور ویا دستو استفاده می شود.
انتخاب از طریق دستور select case
مناسب ترین موقعیت برای استفاده ار دستور select case هنگام انتخاب با وجود چند شرط است . مسلما اگر بیشتر از سه یا چهار دستور if…else تودرتو داشته باشید نتیجه یک برنامه پیچیده خواهد بود.بعبارت دیگر وارد یک منطق در هم و برهم بصورت زیر می شوید : اگر این درست باشد. بعد اگر این درست باشد.
بعد اگر این هم درست باشد آنگاه کاری را انجام بده در غیر این صورت ... فرمت select case بصورت زیر است.

Select case expression
Case expressionmatch
Block of one or more visual basic statements
[ case expressionmatch1
Block of one or more visual basic statements]
[ case expressionmatch2
Block of one or more visual basic statements]
[ case expressionmatch3
Block of one or more visual basic statements]
End select
Select caseیک مورد را از میان چند مورد انتخاب می کند. تعداد شرایطی که امتحان می شوند به نیاز شما بستگی دارد. این شرایط بصورت[case expressionmatch#...] نشان داده می شوند. فرض کنید که هیچکدام از این شرایط بر قرار نباشند.علیرغم فرمت پیچیده استفاده از دستور select case ساده است. به مثال زیر توجه کنید.

Select case txtgrade.text
Case "a"
Lblannounce.caption="ma"
Case "b"
Lblannounce.caption="maa"
Case "c"
Lblannounce.caption="maj"
Case "d"
Lblannounce.caption="maji"
Case "f"
Lblannounce.caption="majid"
Case else
Lblannounce.caption="majid rahimy"
End select
__________________

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 4 دی 1384 - 05:59    
taknikbartar
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 106
عضو شده در: 22 آذر 1384
محل سکونت: ایران|آمریکا|دبی|اتحادیه صادر کننده نرم افزار بینل ملل


امتياز: 962

عنوان: خواندن مشخصات فردی ارسال پیام شخصی

ادامه قسمت سوم
اگر بنا به دلایلی حروفی غیز ازa|b|c|d|f درون متن ظاهر شود دستور case else اجرا شود و با تنظیم مقدار برچسب . خطایی را اعلام می کند.
بقیر از دستورات select case دستوراتی دیگر در مورد همین مانند محدودها و.... می باشد.
حلقه do
ویژوال بیسیک یک دستور چند خطی به نام حلقه do دارد. در اینجا نیز مانند دستور if دستورات حلقه do با فرمت های مختلفی می آیند.
Do while condition
Block of one or more visual basic statements
Loop
Do
Block of one or more visual basic statements
Loop while condition
Block of one or more visual basic statements
Loop
Do
Block of one or more visual basic statements
Loop while condition
منظور از condition در حلقه do یک عبارت کنترل یا مقدار بولی است که درست یا غلط می باشد. فرمتی را که انتخاب می کنید اصولا به سلیقه شما بستگی دارد. اما تفاوت هایی نیز بین آنها وجود دارد.
شما می توانید از هر شکل حلقه do استفاده کنید.
Do while intctr <=10
Lblout.caption=intctr
Intctr=intctr +1
Loop
این قسمت ادامه دارد
این قسمت ادامه دارد برای آموزش های دگر

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:


نمایش پستها:                 مشاهده موضوع قبلی :: مشاهده موضوع بعدی  
پاسخ دادن به این موضوع
 
رفتن به صفحه قبلی  1, 2, 3, 4, 5, 6, 7, 8, 9  بعدی
صفحه 3 از 9

تمام زمانها بر حسب GMT + 3.5 Hours می‌باشند
 Related Topics 


 information 

 

پرش به:  
شما نمی توانید در این بخش موضوع جدید پست کنید
شما نمی توانید در این بخش به موضوعها پاسخ دهید
شما نمی توانید موضوع های خودتان را در این بخش ویرایش کنید
شما نمی توانید موضوع های خودتان را در این بخش حذف کنید
شما نمی توانید در این بخش رای دهید


Copyright 2004-2024. All rights reserved.
© by Aftabgardan Cultural Center : Aftab.cc