1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط hector2141 ‏10/9/12 در انجمن Visual Basic

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    ساختن جدول در بانک اطلاعاتی

    از منوی project گزینه refrences رو انتخاب کنید - بعد اونجا گزینه Microsoft ActiveX Data Objects 2.0 library پيدا کنيدو تيک بزنيد - Adodc مورد نظرتون رو هم با دیتابیس set کنید - بعد :

    Dim db_file As String
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim NumRec As Integer

    Set conn = New ADODB.Connection
    conn.ConnectionString = Adodc1.ConnectionString
    conn.Open

    On Error Resume Next
    conn.Execute "DROP TABLE Jadid"
    On Error GoTo 0

    conn.Execute "CREATE TABLE Jadid(" & "One INTEGER NOT NULL," & "Two VARCHAR(40) NOT NULL," & "Three VARCHAR(40) NOT NULL)"

    conn.Execute "INSERT INTO Jadid VALUES (1,'4','7')"
    conn.Execute "INSERT INTO Jadid VALUES (2,'5','8')"
    conn.Execute "INSERT INTO Jadid VALUES (3,'6','9')"

    Set rs = conn.Execute("SELECT COUNT (*) FROM Jadid")
    NumRec = rs.Fields(0)

    conn.Close

    MsgBox "Created ... "
     
  2. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    یک کار جالب با موس

    فقط یک تایمر با زمان 500 روی فرم قرار بدین و این کدها رو داخلش کپی کنید
    Dim farzadvb
    Dim bestforvb6
    Dim temp
    Randomize 1000

    farzadvb = Rnd(10) * 1000

    bestforvb6 = Rnd(10) * 1000

    temp = SetCursorPos(farzadvb, bestforvb6)
     
  3. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    ضبط صدا به فرمت دلخواه با ویژوال بیسیک

    با این برنامه‌ به فرمت دلخواه صدا را ضبط کنید. آن هم به شکلی خیلی ساده.
    راه‌های زیادی برای رسیدن به ضبط صدا هست! اما هدف من در اینجا ضبط صدا به فرمت دلخواه است، مثلا mp3 و بدون استفاده از ابزارهای برنامه‌نویسی نظیر ActiveX و ...
    ما می‌خواهیم با استفاده از توابع API‌ به این هدف برسیم. توابع در دسترس برای پخش و ضبط صدا عبارتند از mciSendString، mciSendCommand و mciExecute. (برای آشنا شدن با این توابع می‌توانید به سراغ MSDN بروید.)
    این توابع هر کدام پیچیدگی خاص خودشان را دارند. مخصوصا اگر قصد ضبط صدا را داشته باشید که باید پارامترهای زیادی را تنظیم کنید که نرخ‌نمونه برداری، تعداد کانال صوتی، بافر و ... را شامل میشوند.
    من قصد دارم شما را با تابع mciSendCommand آشنا کنم که با وجود پیچیدگی بیش از حد، استفاده راحت‌تری از آن هم میسر هست و البته به طریقی که آموزش می‌دهم.
    بهتر هست با یک مثال شروع کنیم:
    شکل کلی این تابع این چنین هست:

    Public Declare Function mciSendCommand Lib "winmm.dll" _
    Alias "mciSendCommandA" (ByVal wDeviceID As Long, _
    ByVal uMessage As Long, _
    ByVal dwParam1 As Long, _
    ByVal dwParam2 As Any) As Long

    پخش فایل صوتی شامل چند مرحله است:
    1- باز کردن فایل صوتی
    2- دستور پخش
    3- بستن فایل (که حتما باید انجام بشه)
    باز کردن فایل صوتی خود شامل پارامترهایی است که در ساختار زیر مشخص میشود:

    Private Type MCI_OPEN_PARMS
    dwCallback As Long
    wDeviceID As Long
    lpstrDeviceType As String
    lpstrElementName As String
    lpstrAlias As String
    End Type

    البته باید ذکر کنم که برخی پارامترها در شرایط خاصی مقدار دهی می‌شوند تا کار مشخصی را انجام دهند (پارامتر سوم، بعدا مثال میآرم)
    کد زیر یک فایل صوتی را باز می‌کند و هندل آن را در صورت موفقیت جایی نگه می‌داریم، چون از این به بعد ما با این هندل خیلی کار داریم.
    پارامتر آخر از تابع mciSendCommand حاوی ساختار مرتبط با نحوه عمل است.

    Dim dwReturn As Long
    Dim mciOpenParms As MCI_OPEN_PARMS
    'Open a waveform-audio device with filename for play.
    mciOpenParms.lpstrDeviceType = "WaveAudio"
    mciOpenParms.lpstrElementName = filename dwReturn = mciSendCommand(0, MCI_OPEN, _
    MCI_OPEN_ELEMENT Or MCI_OPEN_TYPE, _
    mciOpenParms)
    If dwReturn Then
    MsgBox "Failed to open device; don't close it, just return error."
    Exit Sub
    End If 'The device opened successfully; get the device ID.
    wDeviceID = mciOpenParms.wDeviceID

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

    dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, 0, vbNull)
    If dwReturn Then
    mciSendCommand wDeviceID, MCI_Close, 0, vbNull
    MsgBox "MCI_PLAY not succed!"
    Exit Sub
    End If

    اگر دقت کنید پارامتر سوم مقدار صفر را داراست. این پارامتر می‌تواند به نحوی مشخص شود که با اجرای دستور پخش، کنترل به برنامه داده شود یا تا زمانی که پخش به اتمام نرسیده برنامه منتظر بماند. و مشخه‌های دیگر.
    چون ذکر نکردیم پس کنترل برنامه را در حین پخش در دست می‌گیریم.
    و سرانجام با این کد فایل را می‌بندیم:

    Dim dwReturn As Long dwReturn = mciSendCommand(wDeviceID, MCI_Close, MCI_WAIT, vbNull)
    If dwReturn Then
    mciSendCommand wDeviceID, MCI_Close, 0, vbNull
    MsgBox "MCI_Close not succed!"
    Exit Sub
    End If

    و اما ضبط صدا. برای ضبط باید از ساختار پیچیده زیر استفاده کنیم:

    Private Type MCI_WAVE_SET_PARMS
    dwCallback As Long
    dwTimeFormat As Long
    dwAudio As Long
    wInput As Long
    wOutput As Long
    wFormatTag As Integer
    wReserved2 As Integer
    nChannels As Integer
    wReserved3 As Integer
    nSamplesPerSec As Long
    nAvgBytesPerSec As Long
    nBlockAlign As Integer
    wReserved4 As Integer
    wBitsPerSample As Integer
    wReserved5 As Integer
    End Type

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

    .:: CODEC ::.
    این کلمه مخفف واژه‌های COmpress/DECompress هست و به زبان ساده‌تر درایوری است که عمل کدسازی و دیکودسازی اطلاعات را انجام می‌دهد، البته برای کاربر محسوس نیست و به نوعی در پشت پرده انجام می‌گیرد.
    وقتی شما فایلهای wav را در سیستم پخش می‌کنید، باید codec فایلهای wav در سیستم نصب شده باشد وگرنه قادر به پخش نیستید که البته بهمراه ویندوز این درایورها نصب میشوند.
    برای فایلهای mp3 نیز همین قضیه صادق هست و غیره.
    برای اینکه بدانید بر روی سیستم شما چه codecهایی نصب شده مراحل زیر را دنبال کنید:

    Control Panel -> Sound & Audio Device -> Hardware -> select Audio Codec from list -> click on Properties.

    با این توضیحاتی که آمد می‌خواهیم بر اساس یکی از codecهای نصب شده اقدام به ضبط صدا کنیم.
    لازم به ذکر است که برخی codecها فقط حاوی بخش پخش هستند و امکان ضبط رو ندارند!
    برسیم به هدف اصلی از این صحبت‌ها.

    1- Sound Recorder ویندوز رو باز کنید و سپس از منوی File گزینه Save As...‌ را انتخاب کنید.
    2- دکمه Change را کلیک کنید تا لیست codec ها ظاهر شود.
    3- گزینه Format را با codecی که می‌خواهید تنظیم کنید.
    4- OK کنید و بعد نام فایل را مشخص کنید و Save‌ نمائید.

    با طی این 4 مرحله شما یک فایل صوتی ساختید که فقط حاوی تنظمیات صدا است. یعنی تمام پارامترهای ساختار MCI_WAVE_SET_PARMS

    حالا اگر با تابع mciSendCommand‌ این فایل را باز کنید و اقدام به ضبط صدا نمائید، در واقع دارید به فرمتی که می‌خواهید صدا را ضبط می‌کنید و درگیر تنظیمات خاصی نیستید.
    سورسی را که مربوط به همین بخش است، این صحبت‌ها را پیاده‌سازی کرده و نمونه کاملی از ضبط و پخش به فرمت دلخواه را انجام می‌دهد.
    و این نکته که دو فایل با پسوند mrf در کنار برنامه هست، در واقع فایل‌های حاوی ساختار هستند(wav)‌ که پسوندشان عوض شده.

    برنامه ابتدا لیست تمام فایلهای با پسوند mrf‌ را لیست می‌کند و در هنگام ضبط به همان فرمتی که انتخاب می‌کنید اقدام به ضبط می‌کند.
    شما می‌توانید هر ساختاری را که دوست داشتید با Sound Recorder بسازید و با پسوند mrf در کنار برنامه ذخیره کنید و از نزدیک با چگونگی عمل ضبط آشنا شوید.
     
  4. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    چگونه وقفه ايجاد کنيم : مثلا برای بارگذاری فرم

    Sub Pause(interval)
    Dim Current
    Current = Timer
    Do While Timer - Current < Val(interval)
    DoEvents
    Loop
    End Sub

    *******************************
    بيل گيتس : جهاني فكر كنيد؟ محلي عمل كنيد!
     
  5. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    برنامه خاموش کردن Windows با يک کليک
    در اين برنامه يک پروژه ساده رو به شما معرفی ميکنم که در اون با يک کليک ساده دکمه ميتوانيد ويندوز رو
    خاموش کنيد . برای ساخت اين پروژه مراحل زير را طی کنيد :
    ۱ - ويژوال بيسيک را باز کنيد
    ۲ - يک فرم جديد ايجاد کنيد
    ۳ - از جعبه ابزار ويژوال يک دکمه روی فرم قرار دهيد
    ۴ - روی دکمه دو بار کليک کرده و دستور زير را در رويداد کليک دکمه تایپ کنيد

    Shell ("Shutdown ") ' Shuts computer down

    همانطور که ديده ميشود در صورت اجرای و فشار دکمه ويندوز خاموش ميشود.
    اين دستور دارای سويچ های خاص ميباشد که ميتوانيد در برنامه خود استفاده کنيد . در زير اين
    سويچ ها ارائه شده اند :

    ' Switches:
    l Log off profile
    s Shut down computer
    r Restart computer
    f Force applications to close
    t Set a timeout for shutdown
    m \\computer name Shut down remote computer
    i Show the Shutdown GUI

    مثال :

    Shell ("Shutdown -s -t 5") ' Shuts computer down after timeout of 5

    بعنوان مثال در صورت استفاده از فرمان فوق سيستم بعد از 5 ثانيه خاموش ميشود. دقيقا مطابق کدی
    که در ويروس ام اس بلستر استفاده شده با اين تفاوت که مدت انتظار برای خاموش شدن سيستم در
    اين ويروس 30 ثانيه است
     
  6. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    یه ترفند جالب در visual Basic 6

    ابتدا از منوی
    View گزینه Toolbar و سپس customaize رو انتخاب کنید

    سپس تب
    commands رو انتخاب کنید و از لیست زیرین Help رو انتخاب کنید و سپس از لیست روبرو گزینه About microsoft visual basic رو

    درگ کنید روی تولبار اصلی برنامه و رهاش کنید و سپس روی او راست کلیک کنید و در قسمت نام عبارت
    Show VB Credits را وارد کنید و بعد

    پنجره
    customaize رو ببندید و و روی دکمه کلیک کنید و لذت ببرید
     
  7. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    با کد زیر می تونید ماوس و کیبورد را به مدت 10 ثانیه قفل کنید .

    کد زیر را در یک فرم کپی کنید.
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [/TD]
    [TD="class: code"]Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Private Sub Form_Activate()

    DoEvents
    'block the mouse and keyboard input
    BlockInput True
    'wait 10 seconds before unblocking it
    Sleep 10000
    'unblock the mouse and keyboard input
    BlockInput False
    End Sub

    [/TD]
    [/TR]
    [/TABLE]
     
  8. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    با کد زیر دیگه نیاز نیست یه عالمه API به برنامه اضافه فقط کافی نام API را بلد باشید به کد زیر یک نگاه بندازید!
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    [/TD]
    [TD="class: code"]Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long


    Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long


    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long


    Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long


    Private Sub Form_Load()

    Dim Libary As Long
    Dim PrcAdress As Long
    On Error Goto NoApi
    'Load the Libary
    Libary = LoadLibrary("user32")
    'Find the procedure we want
    Procadress = GetProcAddress(Libary, "MessageBoxA")
    'Call the Api
    CallWindowProc Procadress, Me.hWnd, "My Message", "Api without Declare", &H0&
    'Unload the libary
    FreeLibrary Libary
    NoApi:
    End Sub

    [/TD]
    [/TR]
    [/TABLE]
     
  9. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    با کد زیر می تونید رنگهای RGB را به Hex تبدیل کنید و Hex را به رنگ. این کد بدرد کسانی می خوره که از برنامه های یاهو استفاده می کنند. چون رنگ های موجود در یاهو به صورت HEX هست.
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    [/TD]
    [TD="class: code"]Public Function rgbtohex(r As Byte, g As Byte, b As Byte)
    'input format = 255,255,255
    'get the r value
    If r < 16 Then
    hex1 = 0 & Hex(r)
    Else
    hex1 = Hex(r)
    End If

    'get the g value
    If r < 16 Then
    hex2 = 0 & Hex(g)
    Else
    hex2 = Hex(g)
    End If

    'get the b value
    If b < 16 Then
    hex3 = 0 & Hex(b)
    Else
    hex3 = Hex(b)
    End If

    rgbtohex = "#" & hex1 & hex2 & hex3
    End Function


    Public Function RGBtoColor(r As Byte, g As Byte, b As Byte)
    RGBtoColor = r + (g * 256) + (b * 65536)
    End Function


    Public Function colortorgb(color As Long)
    Dim r, g, b As Byte
    r = color And 255
    g = (color \ 256) And 255
    b = (color \ 65536) And 255
    colortorgb = r & "," & g & "," & b
    End Function

    [/TD]
    [/TR]
    [/TABLE]
     
  10. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : یه سری آموزش های فوق العاده جالب برای دوستان عزیز

    اینم از کد برای چک کردن فولدر ها امیدوارم نهایت لذت رو برده باشید.
    یک Command1 به فرم اضافه کنید.
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    2
    3
    4
    5
    6
    7
    8
    9
    [/TD]
    [TD="class: code"]Sub Command1_Click ()
    f$ = "C:\WINDOWS"
    dirFolder = Dir(f$, vbDirectory)


    If dirFolder <> "" Then
    strmsg = MsgBox("This folder already exists.", vbCritical):goto optout
    End IF
    End Sub

    [/TD]
    [/TR]
    [/TABLE]