|
آموزش برنامه نویسی
|
||
|
آموزش ویژوال بیسیک و ... برای دیدن تمامی مطالب به آرشیو ماهانه مراجعه کنید |
با سلام.
من حسین دوست آقا علی هستم. بنده هم از این به بعد توی این وبلاگ آموزش برنامه نویسی رو شروع میکنم.
امروز هم برای اولین پستم، اینجا، آموزش ساخت یک Activex یا کامپوننت خیلی خیلی ساده رو که خودم ساختم میذارم، البته توی این آموزش فقط میخوام بگم که شما خودتون هم خیلی راحت میتونین با VB ، کامپوننت و Activex مورد نیازتون رو بسازین و هیچ ارزش دیگه ای نداره
.
توی این تمرین ما قرار هست که یک به اصطلاح کنترل یا همون کامپوننت که ساعت رو به ما نشون میده و ما میتونیم در زمان اجرا با کلیک راست روی اون، رنگ پشت زمینه، نوع قلم و رنگ قلم رو تغییر بدیم، بسازیم.
برای دیدن تمرین روی ادامه مطلب کلیک کنین.
به وبلاگ خودم هم یه سری بزنین. آموزش فتوشاپ، فلش، مایا، VB و غیره.
با نظراتون به بهتر شدن وبلاگ کمک کنید.
در ضمن پست های پاین رو آپدیت کردم.
نظرتون رو را جع به پست پایین بگین.
اول از همه یه فایل OCX برای دانلود براتون گذاشتم که خیلی به کارتون میاد. کار این فایل OCX اینه که شما میتوانید با اون برنامه های خودتون رو با ظاهری بسیار زیبا درست کنین.
اینم لینک دانلودش >> بفرماید دانلود کنید
معرفی یه تابع API کاربردی:
این تابع در هنگام بارگذاری فرم شما برنامه شما را به صورت انیمیشن باز میکنه که خیلی جالبه.!!
برای مثال در قسمت جنرال پنجره کدها کدهای زیر رو بنویسید:
Private Declare Function AnimateWindow Lib "User32.dll"(ByVal hWnd as Long ,ByVal_
dwTime As Long , Byval dwFlags as Long) as Boolean
Private Const AW_HOR_POSITIVE = &H1
Private Const AW_HOR_NEGATIVE = &H2
Private Const AW_VER_POSITIVE = &H4
Private Const AW_VER_NEGATIVE = &H8
Private Const AW_CENTER = &H10
Private Const AW_HIDE = &H10000
Private Const AW_ACTIVATE = &H20000
Private Const AW_SLIDE = &H40000
Private Const AW_BLEND = &H80000
حالا در روال Form_Load کدهای زیر رو بنویسید.
Private Sub Form_Load
AnimateWindow Me.hWnd , 1000 , AW_CENTER
Me.Cls
End Sub
حالا یک دکمه فرمان(Command1) روی فرم خودتون قرار بدین سپس کدهای زیر رو بنویسید.
Private Sub Command1_Click
AnimateWindow Me.hwnd , 1000 , AW_CENTER OR AW_HIDE
End
End Sub
حالا برنامتون رو اجرا کنین و حالشو ببرین.
بستن یک پنجره خاص با ویژوال بیسیک مثلا My Computer.
برنامه ویژوال بیسیک رو باز کنید . سپس روی فرم خودتون یک جعبه متن (TextBox) و یک تایمر(Timer1) ویک عدد دکمه فرمان(Command1) قرار دهید. خالا از منوی Project گزینه ViewCode را بزنید تا پنجره کدها باز شود. در قسمت جنرال کدهای زیر را بنویسید:
Private Declare Function FindWindowA Lib "User32.dll"(ByVal lpClassName as String , ByVal lpWinowName as String ) as Long
Private Declare Function SetForegroundWindow Lib "User32.dll"(byVal hWnd as Long)as Long
خوب حالا روی دکمه فرمان (Command1) دوبار کلیک کنید و کدهای زیر رو بنویسید:
Private Sub Command1_Click
Timer1.Interval = 250
End Sub
خوب حالا روی تایمر دوبار کلیک کنید و قطعه کد زیر رو بنویسید:
Private Sub Timer1_Timer
Temp = FindWindowA(vbNullString , Text1.Text) 'X
If Temp <> 0 Then
SetForegroundWindow Temp
SendKeys "%{F4}" 'X
End If
Timer1.Interval = 0
End Sub
خوب میدونید که ما در ابتدا دو تا تابع API رو معرفی کردیم که کار این توابع به این صورته:
تابع FindWindowA همان طور که از شکل و قیافش معلومه نام و عنوان یک پنجره (Window) رو میگیره و در عوضش هندل اون پنجره که یک عدد صحیح است رو به ما میده.
تابع SetforegroundWindow هندل یک پنجره رو میگیره و در عوض اون پنجره رو برای ما فعال میکنه.
شاید شما با تابع SendKeys آشنا نباشید ( مقدماتی ها). این تابع مانند صفحه کلید عمل میکنه به طوری که در مثال بالا علامت % به جای کلید Alt فشرده میشه و {F4} هم کلید F4 رو میزنه که نتیجه بسته شدن پنجره فعال است.![]()
امید وارم با این توضیحات درهم برهم من مطلب و فهمیده باشین!!!![]()
![]()
حالا برنمتون رو اجرا کنید و در جعبه متن عبارت My Computer رو وارد کنید . حالا یک پنجره از My Computer رو باز کنید . روی دکمه فرمان برنامتون کلیک کنید و حالشو ببرید.
دوباره میریم سراغ FileSystemObject یا همون FSO :
در پست های قبلی یه مقدار درباره شئ FSO صحبت کردم اما دراینجا دو تا موضوع دیگه رو میگم که قبلا نگفته بودم.!!![]()
موضوع اول: چگونگی به دست آوردن مسیرهای Windows , Temp , System32 به کمک شئ FSO . شما اگه پست قبلی من رو خونده باشید میدونید که چطور میشه از امکانات (FSO(FileSystemObject استفاده کرد اما من در اینجا با ذکر یک مثال به شما آموزش میدم که چطور از امکانات FSO استفاده کنید.
ویژوال بیسیک رو باز کنید و یک پروژه جدید از نوع استاندارد درست کنید. حالا یک یک دکمه فرمان(Command1) روی فرم قرار دهید و بعد از دوبار کلیک کردن بر روی دکمه فرمان قطعه کد زیر رو بنویسید:
Private Sub Command1_Click
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject") 'X
MsgBox FSO.GetSpecialFolder(0) 'X
Set FSO = Nothing
End Sub
همون طور که می بینید در خط دوم یک متغیر به نام FSO تعریف کردیم . در خط سوم با کمک تابع CreateObject شئ FSO را برای دسترسی به امکاناتش فراخوانی کردیم. در خط چهارم با کمک جعبه پیام مسیر پوشه های مهم سیستم عامل را به نمایش گذاشتیم.در خط آخر نیز فضای اختصاص داده شده به شئ FSO را آزاد کردیم.
توجه: همان طور که در قطعه کد بالا مشاهده می کنید در خط MsgBox FSO.GetSpecialFolder عدد صفر(0) را با یک رنگ دیگر نوشتم . شما می توانید اعداد ۱ و ۲ را نیز امتحان کنید و حالشو ببرید.
موضوع دوم : پاک کردن فایل ها و فولدر ها به کمک شئ FSO که در ادامه توضیح خواهم داد.
۱ - پاک کردن فایل ها :
برای اینکه شما بتوانید با کمک شئ FSO فایلی را پاک کنید باید به این صورت عمل کنید:
یک TextBOX و یک Command روی فرم خود قرار دهید سپس بعد از دوبار کلیک کردن بر روی دکمه فرمان کدهای زیر رو به پروژه تون اضافه کنید:
Private Sub Command1_Click
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject") 'X
FSO.DeleteFile Text1.Text
set FSo = Nothing
End Sub
حالا برنامتون رو اجرا کنین و با وارد کردن مسیر یک فایل در تکست بوکسی که در روی فرمتون قرار داره و بازدن دکمه فرمان اون فایل رو از روی هارد دیسکتون محو نابود کنید.!!!![]()
بازم توجه: مسیر فایلی که در TextBox می نویسید باید مثل این باشد: C:\Ali.txt یعنی حروف بزرگ و کوچک رعایت شود و فرمت نیز ذکر شود.
بازم یه کار جالب دیگه:
عوض کردن تصویر پشت زمینه با ویژوال بیسیک:
در اینجا ما به کمک یک تابع API به نام SystemParametersInfo تصویر پشت زمینه(یا همون Desktop )رو عوض میکنیم. خوب برای این کار به این صورت پیش برید:
ابتدا به پروژه جدید از نوع استاندارد باز کنید . یک عدد تکست بوکس (Text1) و یک عدد دکمه فرمان(Command1) به فرم خود اضافه کنید سپس کدهای زیر رو در پنجره کدها(منوی Project > ViewCode ) بنویسید:
Private Declare Function SystemParametersInfo Lib "User32" Alias "SystemParametersInfoA"(ByVal uAction As Long, ByVal uParam As Long , ByVal lpvParam as Any , ByVal fuWinIni as Long) as Long
Private Const SPI_SETDESKWALLPAPER = 20
Private Const SPIF_UPDATEINIFILE = &H1
Private Sub Command1_Click
If Text1.Text <> "" Then
SystemParametersInfo SPI_SETDESKWALLPAPER , 0 , Text1.Text , SPIF_UPDATEINIFILE
Else
MsgBox "Error" , vbCritical + vbOkOnly
End If
End Sub
خوب حالا برنامتون رو اجرا کنید. در تکست بوکس (Text1) روی فرم بنویسید:
C:\Windows\Web\Wallpaper\Bliss.bmp
و بعد دکمه فرمان (Command1) را کلیک کنید تا تصویر پشت زمینه (DeskTop) عوض بشه.
خوب چطور بود...![]()
هی تو دلت نگو در قسمت نظرات وبلاگ بگو!!![]()
پاک کردن سطل آشغال :
خوب در اینجا ما به کمک یه تابع API سطل زباله رو پاک میکنیم . نام تابع API تابع SHEmptyRecycleBin هست که جزء توابع کتابخانه قدرتمند Shell می باشد.
ابتدا یک پروژه حدید از نوع استاندارد باز کنید . حالا یک عدد دکمه فرمان (Command1)روی فرم خود قرار دهید سپس کدهای زیر رو در داخل پنجره کدها(View Code ) بنویسید.
Private Declare Function SHEmptyRecycleBin Lib "Shell32.dll" Alias "SHEmptyRecycleBinA"(Byval hWnd as Long , ByVal pszRootPath as String,ByVal dwFlags as Long) as Long
Private Sub Command1_Click
On Error Resume Next
SHEmptyRecycleBin 0 , "" , &H2
End Sub
حالا برنامه را اجرا کنید . بعد از زدن دکمه فرمان(Comand1) اخطار آیا مطمئن هستید فایل ها پاک شوند به شما نمایش داده میشود .
ساده ترین راه برای Always on Top ( فرم برنامه همیشه فعال باشد) کردن فرم برنامه:
در اینجا ما به کمک تنها یک خط کد فرم خود را در حالت Always On Top قرار می دهیم البته به غیر از تعریف تابع میشه یک خط!!
نام تابع هست :>:> BringWindowToTop که از جمله توابع کتابخانه User32 است.
برای این کار در روی فرم خود یک عدد تایمر قرار بدید و خاصیت Interval تایمر رو برابر ۵۰ کنید. حالا کدهای زیر رو در پنجره کدها بنویسید:
Private Declare Function BringWindowToTop Lib "User32.dll"(ByVal hWnd as Long)as Long
Private Sub Timer1_Timer
BringWindowToTop Form1.hWnd
End Sub
حال کردین ها !!![]()
![]()
حال نکردین؟؟![]()
![]()
![]()
|
|