صفحه 2 از 4 اولاول 1234 آخرآخر
نمایش نتایج 41 تا 80 از 139

نام تاپیک: فقط سورس دانلود کنید!

  1. #41
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 37
    فایل های ضمیمه فایل های ضمیمه

  2. #42
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 38
    فایل های ضمیمه فایل های ضمیمه

  3. #43
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست طلایی


    ScreenEffects - vbIconMaker - WallpaperMaster - پخش فایل های GIF بدون OCX

    حتما دانلود کنید.

    پس تشکر چی؟
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله mmssoft : سه شنبه 13 مرداد 1388 در 16:43 عصر

  4. #44
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 40
    فایل های ضمیمه فایل های ضمیمه

  5. #45
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 41
    فایل های ضمیمه فایل های ضمیمه

  6. #46
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 42
    فایل های ضمیمه فایل های ضمیمه

  7. #47
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 43
    فایل های ضمیمه فایل های ضمیمه

  8. #48
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    میشه یک سورس شکلک یاهو بگذاری که روی یاهو 9 هم کار کنه؟ ممنون
    یه سری به تاپیک پایین بزنید :
    http://www.barnamenevis.org/showthread.php?t=129264

  9. #49
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

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

    https://barnamenevis.org/showthread.php?t=124082

  10. #50
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 49

    \\دانلود سورس نرم افزار تبدیل متن فینگلیش به فارسی//
    فایل های ضمیمه فایل های ضمیمه

  11. #51
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 50

    تابعی برای چک کردن اینکه یک متن انگلیسی است یا نه؟
    فایل های ضمیمه فایل های ضمیمه

  12. #52
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 51

    دریافت درایو سی دی رام و گرفتن برچسب درایوها
    فایل های ضمیمه فایل های ضمیمه

  13. #53
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 52

    ابزاری برای انجام کارهای زیاد بر روی فایل ها
    فایل های ضمیمه فایل های ضمیمه

  14. #54
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 53

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

  15. #55
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    فقط سورس دانلود کنید! - پست 54

    سورس ارتباطی آسان با رجیستری
    فایل های ضمیمه فایل های ضمیمه

  16. #56
    کاربر دائمی آواتار butterfly8528
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    CLR
    پست
    896

    نقل قول: فقط سورس دانلود کنید!

    سورس نرم افزار مشاور املاک : "املاکیار"
    برگرفته از سایت vb-source.mihanblog.com

    دوست عزیز سورسی وجود نداره . خود برنامه رو قرار دادی !!!!!!!!!!!!

  17. #57
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    یه سورس بزار که پسوردای ذخیره شده در برنامه های ویندوز (windows applications) رو نشون بده !
    پسورد ویندوز توی فایل SAM در مسیر پوشه ویندوز و system32\config قرار داره. این فایل به وسیله پروسه lsass.exe قفل شده و امکان غیرفعال کردن این پروسه هم نیست. فکر نکنم بتونیم پسورد ویندوز رو تو برنامه نشون بدیم. ولی من نرم افزاری دارم که می تونی پسورد رو طی یک جستجوی طولانی پیدا کنه. ولی پسوردهای 7 حرفی به پایین رو.
    فایل های ضمیمه فایل های ضمیمه

  18. #58
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    سورس ID Maker اگه میشه بگذارید
    بیا این هم سورس ID Maker. چند دقیقه پیش براتون نوشتمش.
    فایل های ضمیمه فایل های ضمیمه

  19. #59
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    امروز که داشتم تو سایت سرچ می کردم به یه تاپیک برخوردم که خیلی نظرم رو جلب کرد. اون تاپیک مال سال 84 بود و آقای ehsan_ebrahimipoor داخل اون تاپیک یه مطلبی گذاشته بودند که 7528 تا دانلود داشت.

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


  20. #60
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    توابع Dial-Up :
    Name
    Description
    InternetGetConnectedState
    Retrieves the current state of the Internet connection
    InternetAutodial
    Initiates an unattended dial-up connection
    InternetAutodialHangup
    Disconnects a modem connection initiated by
    InternetDial
    Initiates a dial-up connection
    InternetHangUp
    Disconnects a modem connection initiated by InternetDial
    InternetGoOnline
    Prompts the user for permission to initiate a dial-up connection to the given URL
    InternetSetDialState
    Sets the current state of the Internet connection
    توابع عمومی اينترنت :
    Name
    Description
    InternetOpen
    Initializes the Win32 Internet functions
    InternetConnect
    Opens an FTP, Gopher, or HTTP session for a given site
    InternetCloseHandle
    Closes a single Internet handle or a subtree of Internet handles
    InternetErrorDlg
    Displays a dialog box for the error that is passed to InternetErrorDlg
    InternetFindNextFile
    Continues a file search started as a result of a previous call to FtpFindFirstFile or GopherFindFirstFile
    InternetGetLastResponseInfo
    Retrieves the last Win32 Internet function error description or server response on the thread calling this function
    InternetLockRequestFile
    Allows the user to place a lock on the file being used
    InternetQueryDataAvailable
    Queries the amount of data available
    InternetQueryOption
    Queries an Internet option on the specified handle
    InternetReadFile
    Reads data from a handle opened by the InternetOpenURL, FtpOpenFile, GopherOpenFile, or HttpOpenRequest function
    InternetReadFileEx
    Reads data from a handle opened by the InternetOpenURL, FtpOpenFile, GopherOpenFile, or HttpOpenRequest function
    InternetSetFilePointer
    Sets a file position for InternetReadFile
    InternetSetOption
    Sets an Internet option
    InternetSetStatusCallback
    Sets up a callback function that Win32 Internet functions can call as progress is made during an operation
    InternetStatusCallback
    Placeholder for the application-defined status callback function
    InternetTimeFromSystemTime
    Formats a date and time according to the specified RFC format (as specified in the HTTP version 1.0 specification)
    InternetTimeToSystemTime
    Takes an HTTP time/date string and converts it to a SYSTEMTIME structure
    InternetUnlockRequestFile
    Unlocks a file that was locked using InternetLockRequestFile
    InternetWriteFile
    Writes data to an open Internet file
    InternetConfirmZoneCrossing
    Checks for changes between secure and nonsecure URLs
    توابع URL :
    Name
    Description
    InternetCanonicalizeUrl
    Canonicalizes a URL, which includes converting unsafe characters and spaces into escape sequences.
    InternetCombineUrl
    Combines a base and relative URL into a single URL. The resultant URL will be canonicalized.
    InternetCrackUrl
    Cracks a URL into its component parts.
    InternetCreateUrl
    Creates a URL from its component parts.
    InternetOpenUrl
    Begins reading a complete FTP, Gopher, or HTTP URL.
    توابع FTP :
    Name
    Description
    FtpCreateDirectory
    Creates a new directory on the FTP server
    FtpDeleteFile
    Deletes a file stored on the FTP server
    FtpFindFirstFile
    Searches the specified directory of the given FTP session
    FtpGetCurrentDirectory
    Retrieves the current directory for the given FTP session
    FtpGetFile
    Retrieves a file from the FTP server and stores it under the specified file name, creating a new local file in the process
    FtpPutFile
    Stores a file on the FTP server
    FtpRemoveDirectory
    Removes the specified directory on the FTP server
    FtpRenameFile
    Renames a file stored on the FTP server
    FtpSetCurrentDirectory
    Changes to a different working directory on the FTP server
    توابع HTTP :
    Name
    Description
    HttpAddRequestHeaders
    Adds one or more HTTP request headers to the HTTP request handle
    HttpEndRequest
    Ends an HTTP request
    HttpOpenRequest
    Opens an HTTP request handle
    HttpQueryInfo
    Queries for information about an HTTP request
    HttpSendRequest
    Sends the specified request to the HTTP server
    HttpSendRequestEx
    Sends the specified request to the HTTP server
    منبع : dev.ir
    تهیه و تنظیم : parsiyan_mohsen

  21. #61
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    گرفتن اطلاعات ورودی از کيبرد - ۱


    Direct Input 8 همانطور که از نامش مشخص است به شما اجازه می دهد که بتوانيد برنامه هايي بنويسيد که توسط هر نوع دستگاه ورودی کنترل شود .
    Direct Input 8 دارای چندين مزيت نسبت به استفاده از کنترلهای ورودی خود ويژوال بيسيک دارد – کنترلهايي مثل Form_KeyUp, Form_KeyDown, Form_MouseMove - و همچنين قابليت کنترل بيشتری نسبت به توابع استاندارد Win32 از قبيل GetCursorPos, GetKeyState دارد .
    Direct Input 8 سريعتر ، کاراتر و قدرتمند تر بوده و برای ساخت بازيها طراحی شده بنابراين باعث کندی برنامه ها نخواهد شد .

    چگونگی کار با Direct Input 8 برای گرفتن ورودی از کيبرد

    دو روش برای استفاده از کيبرد در DirectX8 وجود دارد : روش polling و روش event-based که هر دو دارای مزايا و معايبی هستند .
    بطور کلی در اغلب طراحيها از روش event-based استفاده می شود زيرا کار با آن راحت تر اسن . در اين روش هر پيغام فرستاده شده ازطرف دستگاه ورودی log می شود و برنامه نيازی به هيچگونه پردازشی بمنظور منتظر ماندن برای يک پيغام از طرف ورودی ندارد ، بنابر اين کاراتر است . در روش polling کنترل کمی دقيقتر و راحتر است .
    اگر در مورد برنامه نويسی بر مبنای polling و بر مبنای event اطلاعات کافی نداريد می توانيد از منابع موجود در سايتهايي چون Gamasutra و GameDev استفاده کنيد .

    روش Polling

    مراحل اين روش عبارتند از :

    1 – تعريفات Declerations : يک فرم ايجاد کرده و يک TextBox به نام txtOutput با خصوصيات Multiline ، Locked و Vertical Scroll Bar در آن قرار دهيد . کدهای زير را در بخش کدنويسی اين فرم بنويسيد :

    Private Const UsePollingMethod As Boolean = True
    Private Const UseEventMethod As Boolean = False
    ‘نکته مهم اينست که تنها يکی از دو ثابت فوق بايستی True باشد .
    Private bRunning As Boolean
    ‘اين متغير برای polling استفاده می شود
    Private DX As DirectX8
    Private DI As DirectInput8
    ‘تعريف شی اصلی DirectX و شی DirectInput
    Private DIDevice As DirectInputDevice8
    Private DIState As DIKEYBOARDSTATE
    ‘اين دو شی برای دسترسی به دستگاه ورودی ( کيبرد ) استفاده می شوند
    Private KeyState(0 To 255) As Boolean
    ‘آرايه ای برای تشخيص فشرده شدن کليد
    Private Const BufferSize As Long = 10
    ‘ سايز بافر نگهدارنده event ها . در روش event-based اين مقدار برابر يک و در روش polling برابر 10 تا 20 است ( بسته به سرعت حلقه بازی )
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)x
    ‘ تابع Sleep برای متوقف کردن حلقه polling در صورت بالا بودن نرخ ورودی


    2- مقدار دهی اوليه Initialisation : اين بخش سه مرحله دارد :
    در مرحله اول اشيا و Device ها ساخته می شوند .
    در مرحله دوم تنظيمات مربوط به Device انجام می شود .
    در مرحله سوم به Device می گوئيم که می خواهيم شروع به استفاده از آن کنيم .

    در Form_Load کدهای زير را بنويسيد :

    Me.Show
    Dim I As Long
    Dim DevProp As DIPROPLONG
    Dim DevInfo As DirectInputDeviceInstance8
    Dim pBuffer(0 To BufferSize) As DIDEVICEOBJECTDATA
    If UsePollingMethod And UseEventMethod Then
    MsgBox "You must select only one of the constants before running"x
    Unload Me
    End
    End If

    If UsePollingMethod Then txtOutput.Text = "Using Polling Method" & vbCrLf
    If UseEventMethod Then txtOutput.Text = "Using Event Based Method" & vbCrLf

    ‘مقداردهی اوليه روش انتخاب شده
    Set DX = New DirectX8
    Set DI = DX.DirectInputCreate
    Set DIDevice = DI.CreateDevice("GUID_SysKeyboard")x

    DIDevice.SetCommonDataFormat DIFORMAT_KEYBOARD
    DIDevice.SetCooperativeLevel frmMain.hWnd, DISCL_BACKGROUND Or ISCL_NONEXCLUSIVE

    ‘برپاسازی بافر
    DevProp.lHow = DIPH_DEVICE
    DevProp.lData = BufferSize
    DIDevice.SetProperty DIPROP_BUFFERSIZE, DevProp

    ‘ به دايرکت ايکس می گوئيم که می خواهيم از دستگاه ورودی استفاده کنيم
    DIDevice.Acquire

    ‘استخراج اطلاعاتی در مورد دستگاه ورودی
    Set DevInfo = DIDevice.GetDeviceInfo()x
    txtOutput.Text = txtOutput.Text & "Product Name: " & DevInfo.GetProductName & vbCrLf
    txtOutput.Text = txtOutput.Text & "Device Type: " & DevInfo.GetDevType & vbCrLf
    txtOutput.Text = txtOutput.Text & "GUID: " & DevInfo.GetGuidInstance & vbCrLf


    ‘در صورتی که بخواهيم به برنامه خاتمه بدهيم کدهای زير را می نويسيم
    DIDevice.Unacquire
    Set DIDevice = Nothing
    Set DI = Nothing
    Set DX = Nothing
    Unload Me
    End


    3 – گرفتن ورودی از کيبرد : در اين بخش فرض کنيد بخواهيم يک بازی را در يک حلقه Do-Loop شبيه سازی کنيم . در اين حلقه هر بار فشرده شدن کليدهای کيبرد را چک می کنيم :

    If Not Err.Number Then bRunning = True

    Do While bRunning

    ‘دريافت اطلاعات شامل خواندن وضعيت کيبرد ، خواندن اطلاعات بافر و سپس خطا
    DIDevice.GetDeviceStateKeyboard DIState
    DIDevice.GetDeviceData pBuffer, DIGDD_DEFAULT
    If Err.Number = DI_BUFFEROVERFLOW Then
    Msgbox(“BUFFER OVERFLOW (Compensating)...")x
    GoTo ENDOFLOOP:
    End If
    ‘بررسی فشرده شدن کليدها
    For I = 0 To 255
    If DIState.Key(I) = 128 And (Not KeyState(I) = True) Then
    txtOutput.Text = txtOutput.Text & "{ DOWN } " & KeyNames(CInt(I))& vbCrLf
    txtOutput.SelStart = Len(txtOutput.Text)x
    KeyState(I) = True
    End If
    Next I

    ‘بررسی رها شدن کليد
    For I = 0 To BufferSize
    If KeyState(pBuffer(I).lOfs) = True And pBuffer(I).lData = 0 Then
    KeyState(pBuffer(I).lOfs) = False
    txtOutput.Text = txtOutput.Text & "{ UP } " & KeyNames(CInt(pBuffer(I).lOfs)) & vbCrLf
    txtOutput.SelStart = Len(txtOutput.Text)x
    End If
    Next I

    Sleep (50)x
    DoEvents
    ENDOFLOOP:
    Loop

    در کد فوق يک تابع KeyName وجود دارد که نام کليد فشارداده شده را بر می گرداند . بخشی از اين تابع را در زير می بينيد :


    Function KeyNames(iNum As Integer) As String

    Dim aKeys(0 To 255) As String

    aKeys(1) = "DIK_ESCAPE"
    aKeys(2) = "DIK_1 On main keyboard"x
    aKeys(3) = "DIK_2 On main keyboard"x
    aKeys(4) = "DIK_3 On main keyboard"x
    aKeys(5) = "DIK_4 On main keyboard"x
    aKeys(6) = "DIK_5 On main keyboard"x
    aKeys(7) = "DIK_6 On main keyboard"x
    aKeys(8) = "DIK_7 On main keyboard"x
    aKeys(9) = "DIK_8 On main keyboard"x
    aKeys(10) = "DIK_9 On main keyboard"x
    aKeys(11) = "DIK_0 On main keyboard"x
    aKeys(12) = "DIK_MINUS On main keyboard"x
    aKeys(13) = "DIK_EQUALS On main keyboard"x
    aKeys(14) = "DIK_BACK BACKSPACE"x
    aKeys(15) = "DIK_TAB"x
    aKeys(16) = "DIK_Q"x
    aKeys(17) = "DIK_W"x
    aKeys(18) = "DIK_E"x
    aKeys(19) = "DIK_R"x
    aKeys(20) = "DIK_T"x
    .
    .
    .
    KeyNames = aKeys(iNum)x

    End Function

    تهیه و تنظیم : parsiyan_mohsen

  22. #62
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    موضوع : پخش افکتهاي صوتی در برنامه هاي مالتي مديا

    در سلسله مباحث DirectXAudio شما تکنيکهاي لازم براي اضافه کردن موزيک و افکتهاي صوتي سريع و ديناميک را به بازيها و برنامه هاي مالتي مديا خواهيد آموخت . DirectXAudio جايگزيني براي بخشهاي DirectSound ، DirectSound3D و DirectMusic موجود در DirectX 7 مي باشد و داراي امکانات بهتر و سريعتری بوده و برنامه نويسي آن نيز ساده تر است .
    در اولين درس از DirectXAudio چگونگي پخش افکتهاي صوتي را در برنامه هايتان خواهيد آموخت .

    Initial کردن DirectSound :
    DirectSound اولين مبحثي است که آنرا توضيح خواهم داد . گرچه DirectXAudio يک نام عمومي براي امکانات صوتي DirectX8 مي باشد اما بين Sound و Music تفاوت وجود دارد .
    DirectSound با پخش افکتهاي صوتي ارتباط دارد . DirectSound همانند Direct3D از يکسري device سخت افزاري و نرم افزاري استفاده مي کند و افکتهاي صوتي در يکسري بافر ذخيره مي شوند .
    اولين قدم براي برپاسازي DirectSound ، اضافه کردن کتابخانه DirectX8 به پروژه تان مي باشد . قدم بعدي تعريف متغيرها و object هاي موردنياز است . براي استفاده از DirectSound به متغيرهاي زير نياز داريم :

    Private DX As DirectX8
    Private DS As DirectSound8
    Private DSBuffer As DirectSoundSecondaryBuffer8
    Private DSEnum As DirectSoundEnum8
    Private bLoaded As Boolean

    DirectX شي کنترل کننده مرکزي است . DirectSound8 واسط مراقب براي تمام interface هاي پخش صدا است . DirectSoundSecondaryBuffer8 داده audio واقعي را براي پخش ذخيره مي کند . DirectSoundEnum8 اجازه مي دهد که اطلاعاتي را در مورد device هاي سخت افزاري/نرم افزاري استخراج کنيد و متغير bLoaded يک flag وضعيت مي باشد .
    حال در برنامه بايد ليست تمام device هاي در دسترس را مشخص کنيم . ( اين امر کاملاً امکان پذير است که يک کامپيوتر بيش از يک device براي DirectSound داشته باشد ) :

    Private Sub Form_Load()x
    bLoaded = False
    Dim I As Long
    Set DX = New DirectX8
    Set DSEnum = DX.GetDSEnum
    For I = 1 To DSEnum.GetCount
    MsgBox(DSEnum.GetDescription(I))x
    Next I
    End Sub

    فرض کنيم که يکي از device هاي شناخته شده را انتخاب کرديم . حال بايستي device را واقعاً برپا کنيم :

    If bLoaded Then
    Set DSBuffer = Nothing
    Set DS = Nothing
    Set DX = Nothing
    End If
    Dim DSBDesc As DSBUFFERDESC
    Set DX = New DirectX8
    Set DS = DX.DirectSoundCreate(DSEnum.GetGuid(devicenumber)) x
    DS.SetCooperativeLevel frmMain.hWnd, DSSCL_NORMAL

    متغير devicenumber شماره device اي است که شما مي خواهيد با آن کار کنيد . DSBDesc فايل صوتي شما را توصيف مي کند .

    تهیه و تنظیم : parsiyan_mohsen

  23. #63
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    رجيستري چيست ؟

    سيستم عامل ويندوز تنظيمات سخت افزاري و نرم افزاري خود را بطور مرکزي در يک بانک اطلاعاتي با ساختار سلسله مراتبي ذخيره مي کند که رجيستري نام دارد . رجيستري جايگزيني براي بسياري از فايلهاي پيکربندي 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 وارد کنيد .
    ---------------------

    براي کار با رجيستري در ويژوال بيسيک کلاس Registery.bas را مطابق مطالب زير ايجاد کرده و در پروژه هاي خود از آن استفاده کنيد :

    1 - تعريف ثابتهاي مورد نياز : براي نوشتن اين کلاس نياز به تعريف چهار دسته ثابت داريم :

    - ثابتهاي مربوط به تعريف data type هاي entry هاي رجيستري :
    Global Const REG_SZ As Long = 1
    Global Const REG_DWORD As Long = 4

    - ثابتهاي مربوط به تعريف key هاي رجيستري
    Global Const HKEY_CLASSES_ROOT = &H80000000
    Global Const HKEY_CURRENT_USER = &H80000001
    Global Const HKEY_LOCAL_MACHINE = &H80000002
    Global Const HKEY_USERS = &H80000003

    - ثابتهاي مربوط به خطاهاي کار با رجيستري
    Global Const ERROR_NONE = 0
    Global Const ERROR_BADDB = 1
    Global Const ERROR_BADKEY = 2
    Global Const ERROR_CANTOPEN = 3
    Global Const ERROR_CANTREAD = 4
    Global Const ERROR_CANTWRITE = 5
    Global Const ERROR_OUTOFMEMORY = 6
    Global Const ERROR_INVALID_PARAMETER = 7
    Global Const ERROR_ACCESS_DENIED = 8
    Global Const ERROR_INVALID_PARAMETERS = 87
    Global Const ERROR_NO_MORE_ITEMS = 259

    - ثابتهاي متفرقه
    Global Const KEY_ALL_ACCESS = &H3F
    Global Const REG_OPTION_NON_VOLATILE = 0

    2 - Declare کردن Api هاي مورد نياز : براي کار با رجيستري از توابع کتابخانه Advapi32.dll استفاده مي کنيم . اين توابع عبارتند از :

    - تابع RegCloseKey : آزاد کردن handle مربوط به يک key
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

    - تابع RegCreateKeyEx : ساخت يک key در رجيستري ( اگر key قبلاً وجود داشته باشد ، اين تابع آنرا باز مي کند ) :
    Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long

    - تابع RegOpenKeyEx : باز کردن يک key
    Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

    - تابع RegQueryValueExLong : استخراج type و data ي يک نام متناظر با يک key باز شده
    Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long

    Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long

    Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long

    - تابع RegSetValueEx : ذخيره يک مقدار در فيلد value يک کليد باز
    Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long

    Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long

    - تابع RegDeleteKey : پاک کردن يک کليد و کليه اطلاعات مرتبط با آن
    Private Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)

    - تابع RegDeleteValue : حذف مقدار يک key
    Private Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)

    3 - توابع کمکي : براي نوشتن توابع اصلي کار با رجيستري نياز به نوشتن توابع کمکي زير است :

    - تابع SetValueEx : با توجه به نوع داده يک کليد ، مقدار موجود در آنرا در يک متغير ذخيره مي کند :
    Public Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
    Dim lValue As Long
    Dim sValue As String
    Select Case lType
    Case REG_SZ ' type of value is string
    sValue = vValue
    SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue))x
    Case REG_DWORD ' type of value is Double word
    lValue = vValue
    SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)x
    End Select
    End Function

    - تابع QueryValueEx : سايز و نوع داده اي يک داده را که بايد خوانده شود مشخص مي کند .
    Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As String, vValue As Variant) As Long
    Dim cch As Long
    Dim lrc As Long
    Dim lType As Long
    Dim lValue As Long
    Dim sValue As String
    lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch)x
    Select Case lType
    ' For strings
    Case REG_SZ:
    sValue = String(cch, 0)x
    lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, sValue, cch)x
    If lrc = ERROR_NONE Then
    vValue = Left$(sValue, cch)x
    Else
    vValue = Empty
    End If
    ' For DWORDS
    Case REG_DWORD:
    lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, lValue, cch)x
    If lrc = ERROR_NONE Then vValue = lValue
    Case Else
    'all other data types not supported
    lrc = -1
    End Select
    QueryValueExExit:
    QueryValueEx = lrc
    Exit Function
    QueryValueExError:
    Resume QueryValueExExit
    End Function

    4 - توابع اصلي : توابع مربوط به پاک کردن يک کليد از رجيستري ، ساخت يک کليد جديد در رجيستري و مقداردهي به يک کليد :

    - تابع DeleteKey : اين تابع يک کليد از رجيستري را حذف مي کند . داراي دو پارامتر ورودي است :
    Location که يکي از مقادير HKEY_CLASSES_ROOT ، HKEY_CURRENT_USER
    ، HKEY_LOCAL_MACHINE و يا HKEY_USERS است .
    KeyName که نام کليدي است که بايد از رجيستري حذف شود . اين کليد ممکنست شامل subkey هايي نيز باشد مثلاً Key1\SubKey1
    Public Function DeleteKey(lPredefinedKey As Long, sKeyName As String)x
    Dim lRetVal As Long
    lRetVal = RegDeleteKey(lPredefinedKey, sKeyName)x
    DeleteKey = lRetVal ' return function value
    End Function

    - تابع DeleteValue : اين تابع يک entry را از کليد حذف مي کند . داراي سه پارامتر ورودي است : Location ، KeyName و ValueName که نام آن value را مشخص مي کند .
    Public Function DeleteValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)x
    Dim lRetVal As Long
    Dim hKey As Long
    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)x
    lRetVal = RegDeleteValue(hKey, sValueName)x
    RegCloseKey (hKey)x
    DeleteValue = lRetVal
    End Function

    - تابع CreateNewKey : اين تابع يک کليد جديد ايجاد مي کند . داراي دو پارامتر ورودي است : Location و KeyName
    Public Function CreateNewKey(lPredefinedKey As Long, sNewKeyName As String)x
    Dim hNewKey As Long
    Dim lRetVal As Long
    lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)x
    RegCloseKey (hNewKey)x
    CreateNewKey = lRetVal
    End Function

    - تابع SetKeyValue : اين تابع پارامتر data يک entry را تنظيم مي کند . داراي 5 پارامتر ورودي است : Location ، KeyName ، ValueName ، ValueSetting و ValueType
    Public Function SetKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)x
    Dim lRetVal As Long
    Dim hKey As Long
    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)x
    lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)x
    RegCloseKey (hKey)x
    SetKeyValue = lRetVal
    End Function

    - تابع QueryValue : اين تابع فيلد داده يک entry را برمي گرداند . داراي سه پارامتر ورودي است : Location ، KeyName و ValueName
    Public Function QueryValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)x
    Dim lRetVal As Long
    Dim hKey As Long
    Dim vValue As Variant
    lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)x
    lRetVal = QueryValueEx(hKey, sValueName, vValue)x
    QueryValue = vValue
    RegCloseKey (hKey)x
    End Function

    --------------------------
    ساخت يک انتصاب فايل يا File Association به يک برنامه

    در اين درس می خواهم با استفاده از کلاسی که در درس قبل معرفی شد تابعی بسازيم که توسط آن بتوانيم فايلهای با پسوندی مشخص را به يک برنامه اختصاص دهيم . بعبارت ديگر تابعی بنويسيم که اطلاعات لازم برای باز شدن فايلهايی با پسوند xxx را توسط برنامه MyApp.exe در رجيستری ثبت کند .

    Public Sub CreateAssociation(sExtension As String, sApplication As String, sAppPath As String)x
    Dim sPath, sAppExe As String
    CreateNewKey "." & sExtension, HKEY_CLASSES_ROOT
    SetKeyValue HKEY_CLASSES_ROOT, "." & sExtension, "", sApplication & ".Document", REG_SZ
    CreateNewKey sApplication & ".Document\shell\open\command", HKEY_CLASSES_ROOT
    SetKeyValue HKEY_CLASSES_ROOT, sApplication & ".Document", "", sApplication & " Document", REG_SZ
    sPath = sAppPath & " %1"x
    sAppExe = sApplication & ".exe"x
    SetKeyValue HKEY_CLASSES_ROOT, sApplication& ".Document\shell\open\command", "", sPath, REG_SZ
    CreateNewKey "Software\Microsoft\Windows\CurrentVersion\Exp lore r\FileExts\." & sExtension, HKEY_CURRENT_USER
    SetKeyValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Exp lore r\FileExts\." & sExtension, "Application", sAppExe, REG_SZ
    CreateNewKey "Applications\" & sAppExe & "\shell\open\command", HKEY_CLASSES_ROOT
    SetKeyValue HKEY_CLASSES_ROOT, "Applications\" & sAppExe & "\shell\open\command", "", sPath, REG_SZ
    End Sub

    کاربرد اين تابع بصورت زير است :
    CreateAssociation("xxx","MyApp","c:\MyApp.exe")x

    اجرا شدن يک برنامه در هنگام راه اندازی سيستم

    فرض کنيد می خواهيم برنامه ای بنويسيم که هر بار در هنگام راه اندازي سيستم بطور خودكار اجرا شود. البته نمي خواهم در startup ويندوز ديده شود .
    براي اين كار بايد برنامه موردنظر را در StartUp رجيستري قرار دهيم . به اين ترتيب كه در يكي از كليدهاي زير يك مقدار رشته اي جديد(String Value) ايجاد کنيم و آدرس برنامه را در آن وارد كنيم :
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Curre ntVersion\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run

    براي مثال اگه اسم برنامه مورد نظر MyApp و مسيرش C:\Windows\MyApp.exe است بايد بصورت زير عمل کرد :
    SetKeyValue HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run ", "MyApp", "C:\MyApp.exe", REG_SZ


    نکته : البته دو تا راه ديگر برای اينکار وجود دارد که برخی تروجان ها هم از اين روشها استفاده می کنند تا روی سيستم باقی بمانند :
    يكي استفاده از win.ini و نوشتن نام فايل جلوي = run و ديگري استفاده از system.ini و نوشتن نام برنامه جلوي خط explorer.exe .

    تهیه و تنظیم : parsiyan_mohsen

  24. #64
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

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

    کنترل WinSock نسبت به تمام کنترلهاي اينترنت در سطح پايينتري قرار دارد . اين کنترل امکان ايجاد سرويسهاي شبکه اي مبتني بر پروتکلهاي TCP و UDP را مهيا مي کند . بعبارت ديگر توسط اين کنترل مي توان برنامه هاي کاربردي Client/Server ( سرويس گيرنده / سرويس دهنده ) ايجاد و با استفاده از پروتکل TCP و يا UDP بين آنها ارتباط برقرار نمود .
    با تنظيم خصوصيات و فراخواني متدهاي اين کنترل مي توانيد به راحتي به يک کامپيوتر راه دور متصل شويد و داده ها را در هر دو جهت جابجا نمائيد . نمونه کاربرهايي که مي توان با اين کنترل ايجاد نمود :
    Client-server chat ، Mail client ، Mail server ، Proxy Server ، Network Game ، Port Scanner ، پياده سازي الگوريتم هاي موازي و …
    مباني TCP :
    پروتکل کنترل اينترنت ( Transfer Control Protocol ) اجازه مي دهد يک اتصال ( Connection ) را از طريق سوکت ( socket ) به يک کامپيوتر راه دور ( Remote Computer ) ساخته و استفاده کنيد . با استفاده از اين اتصال ، هر دو کامپيوتر مي توانند داده ها را بين خودشان انتقال دهند . برقراري ارتباط از طريق TCP همانند صحبت کردن با تلفن است که بايد حتماً اتصالي بين دو کامپيوتر صورت گيرد تا بتوانند با هم ارتباط برقرار کنند .
    اگر يک برنامه Client مي سازيد بايستي بدانيد که نام يا آدرس IP کامپيوتر Server چيست ( Remote Host IP ) و همچنين از طريق چه پورتي مي توانيد به آن متصل شويد ( Remote Port ) . حال بايستي به آن پورت Connect کنيد .
    همچنين اگر يک برنامه Server مي سازيد بايستي پورتي را که روي آن به درخواستها گوش مي دهيد مشخص کنيد ( LocalPort ) و سپس به پورت گوش دهيد ( Listen ) .
    زمانيکه يک کامپيوتر Client تقاضاي يک اتصال را مي دهد Server اين درخواست را Accept مي کند .
    زمانيکه يک اتصال ساخته مي شود ، هر دو کامپيوتر مي توانند داده را فرستاده و دريافت کنند .
    مباني UDP :
    پروتکل ديتاگرام کاربر ( User Datagram Protocol ) پروتکلي بدون اتصال ( Connectionless ) است . برخلاف TCP ، کامپيوترها نياز به برپا کردن يک اتصال ندارند بنابراين يک برنامه مي تواند يک client و يا يک server باشد . برقراري ارتباط در UDP شبيه ارسال نامه از طريق پست است .
    براي انتقال داده توسط UDP ابتدا بايد Local Port کامپيوتر Client تنظيم گردد . کامپيوتر Server تنها بايستي RemoteHost را برابر آدرس کامپيوتر Client قرار دهد و همچنين Remote Port را همان Local Port کامپيوتر Client قرار دهد . سپس دو کامپيوتر مي توانند داده ها را بين خود جابجا کنند .
    استفاده از کنترل WinSock :
    1 – انتخاب پروتکل: در زمان استفاده از کنترل WinSock اولين کاري که بايد انجام دهيد انتخاب يکي از پروتکلهاي TCP يا UDP است . طبيعت برنامه اي که شما مي سازيد نوع پروتکلي را که بايد استفاده کنيد مشخص مي کند . چند سوال زير به شما کمک مي کند که پروتکل مورد نيازتان را انتخاب کنيد :
    - آيا برنامه شما در زمانيکه داده فرستاده مي شود يا دريافت مي شود نياز به اطلاعاتي از طرف Server يا Client دارد ؟ اگر چنين است بايستي يک اتصال TCP قبل از ارسال يا دريافت داده ايجاد شود .
    - آيا داده بسيار بزرگ است ( مثل تصوير يا فايلهاي صوتي ) ؟ زمانيکه يک اتصال TCP ساخته مي شود پروتکل TCP اتصال را باقي نگه مي دارد و درستي ارسال داده تضمين شده است . اين اتصال در هر حال به منابع محاسباتي بيشتري نياز دارد و بنابراين پرهزينه تر است .
    - آيا داده متناوب ارسال مي شود يا در يک نشست ( Session ) ارسال خواهد شد ؟ براي مثال اگر شما يک برنامه مي سازيد که کامپترهاي مشخصي را در يک زمان خاص از انجام شدن عملياتي مطلع مي کند پروتکل UDP مناسب تر است . پروتکل UDP همچنين براي ارسال مقادير کوچک داده اي مناست تر مي باشد .
    2 – تنظيم پروتکل : براي تنظيم پروتکلي که مي خواهيد در برنامه تان از آن استفاده کنيد در زمان طراحي برنامه خاصيت Protocol کنترل WinSock را برابر sckTCPProtocol و يا sckUDPProtocol قرار دهيد . همچنين مي توانيد پروتکل خود را توسط کد زير تنظيم کنيد :

    WinSock.Protocol=sckTCPProtocol
    3 – مشخص کردن نام کامپيوتان : براي اتصال به کامپيوتر راه دور بايستي آدرس IP و يا نام کامپوتر را بدانيد .
    نام کامپيوتر در Control Panel/Network/Identification موجود است . در صورتيکه مي خواهيد دو برنامه Client و Server خود را روي يک کامپيوتر تست کنيد از آدرس IP 127.0.0.1 براي هر دو استفاده کنيد اما اگر دو برنامه را روي دو کامپيوتر مجزا در شبکه قرار داده ايد با اجراي دستور ipconfig در DOS Prompt مي توانيد آدرس IP کامپيوتر ها را بدست آوريد .
    4 – ايجاد اتصال TCP : در زمان ساخت برنامه اي که از پروتکل TCP استفاده مي کند ابتدا بايد تصميم بگيريد که اين برنامه Client است يا Server . براي ساخت يک برنامه Server بايستي روي يک پورت خاص Listen کنيد . زمانيکه Client تقاضاي يک اتصال را مي دهد ، برنامه Server مي تواند آنرا Accept کند و بنابراين اتصال کامل شده است . حال Client و Server مي توانند با هم ارتباط داشته باشند .
    مراحل زير ساخت يک سرور چت ساده بر مبناي TCP را نشان مي دهد :
    - از منوي Project گزينه Components را انتخاب کنيد و در ليست Component ها مورد Microsoft WinSock 6.0 را انتخاب کنيد .
    - يک کنترل WinSock در فرم خود قرار دهيد و نام آنرا tcpserver بگذاريد
    - دو textbox با نامهاي txtSendData و txtReceiveData و نيز يک دکمه در فرم قرار دهيد .
    - کد زير را در رويداد Form_Load بنويسيد :

    Tcpserver.LocalPort=1000
    tcpserver.Listen

    - زمانيکه درخواستي از طرف Client مي آيد رويداد ConnectionRequest اجرا مي شود . در اين رويداد ابتدا بايد چک کنيد که حالت کنترل بسته باشد . اگر چنين نيست اتصال را قبل از پذيرفتن اتصال جديد ببنديد . سپس تقاضا را بر اساس پارامتر requestID مي پذيريم :

    Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
    If tcpserver.State <> sckClosed Then tcpserver.Close
    tcpserver.Accept requestID
    End Sub

    - حال اتصال بين Client و Server برقرار شده است . کد زير را براي event مربوط به کليک دکمه Send بنويسيد :

    Tcpserver.SendData txtSendData.text
    - اگر داده اي از طرف Client بيايد رويداد DataArrival اجرا مي شود . کد زير را براي اين رويداد بنويسيد :

    Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    tcpserver.GetData strData
    txtReceiveData.Text = strData
    End Sub

    - کد زير را براي رويداد Form_Unload بنويسيد :

    Tcpserver.Close
    مراحل ساخت يک TCP Client بصورت زير است :
    - يک کنترل WinSock در فرم قرار دهيد و نام آنرا tcpclient بگذاريد .
    - دو textbox با نامهاي txtsend و txtreceive و نيز يک دکمه با نام sendدر فرم قرار دهيد .
    - يک دکمه با نام connect در فرم قرار دهيد .
    - کد زير را براي متد Form_Load بنويسيد :

    tcpclient.RemoteHost=”yourservername”x
    tcpclient.RemotePort=1000

    - کد زير را براي رويداد کليک شدن دکمه connect بنويسيد :

    tcpclient.Connect
    - کد زير را براي رويداد کليک شدن دکمه send بنويسيد :

    tctclient.SendData txtsend.Text
    - کد زير را براي رويداد DataArrival بنويسيد :

    Private Sub tcpclient_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    tcpclient.GetData strData
    txtreceive.Text = strData
    End Sub

    - کد زير را باري رويداد Form_Unload بنويسيد :

    Tcpclient.Close
    کدهاي فوق يک سيستم Client-Server ساده را نشان مي دهد . فايل exe هر دو برنامه را بسازيد و آنها را اجرا کنيد تا بتوانيد سيستم خود را تست کنيد .
    5 – پذيرفتن بيش از يک تقاضاي اتصال : Server اي که در بالا ساخته شد تنها مي تواند تقاضاي يک اتصال را بپذيرد . با استفاده از ايجاد يک آرايه از کنترل WinSock مي توان چندين تقاضاي اتصال را پذيرفت . براي اينکار کافي است يک کپي ( instance ) از کنترل بسازيم ( با تنظيم خاصيت Index ) و متد Accept را براي instance جديد بکار ببريم . فرض کنيد يک کنترل WinSock با نام sckServer در فرم داريم که خاصيت Index آنرا صفر قرار داده ايم . همچنين يک متغير intMax از نوع Long تعريف مي کنيم که تعداد اتصالات همزمان به Server را نگه مي دارد . در event مربوط به Form_Load کد زير را بنويسيد :

    intMax=0
    sckServer(0).LocalPort=1000
    sckServer(0).Listen

    هر بار که تقاضاي يک اتصال مي رسد کد ابتدا تست مي کند که مقدار Index چقدر است . اگر مقدار Index صفر باشد متغير intMax يکي افزايش مي يابد و از intMax براي ساخت يک instance جديد از کنترل استفاده مي شود . حال از اين instance براي پذيرفتن تقاضاي اتصال استفاده مي گردد . براي اينکار کد زير را براي رويداد ConnectionRequest بنويسيد :

    Private Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    If Index = 0 Then
    intmax = intmax + 1
    Load sckServer(intmax)x
    sckServer(intmax).LocalPort = 0
    sckServer(Index).Accept requestID
    End If
    End Sub
    6 – ايجاد اتصال UDP : ساخت يک برنامه UDP ساده تر از برنامه هاي TCP است زيرا پروتکل UDP به اتصال نياز ندارد . در برنامه TCP بالا يک کنترل WinSock بايستي حتماً Listen مي کرد و يک کنترل ديگر يک اتصال را توسط متد Connect ايجاد نمود . در عوض پروتکل UDP نيازي به اتصال ندارد . براي ارسال داده بين دو کنترل WinSock سه مرحله بايستي انجام شود :
    - پارامتر RemoteHost برابر نام کامپيوتر مقابل است .
    - پارامتر RemotePort برابر پارامتر LocalPort کامپيوتر مقابل
    - استفاده از متد Bind براي مشخص کردن LocalPort
    چون هر دو کامپيوتر از نظر ارتباط مساوي هستند ، اين نوع برنامه ها را Peer-to-Peer گويند . براي نمونه از کد زير براي ساخت يک برنامه chat استفاده مي کنيم :
    - يک کنترل WinSock در فرم قرار دهيد و نام آنرا udppeerA بگذاريد .
    - خاصيت Protocol آنرا UDPProtocol قرار دهيد .
    - دو textbox با نامهاي txtsend و txtreceive و نيز يک دکمه در فرم قرار دهيد .
    - کد زير را براي متد Form_Load بنويسيد :

    udppeerA.RemoteHost=”nameofpeerB”x
    udppeerA.RemotePort=1001
    udppeerA.Bind 1002

    - کد زير را براي event مربوط به کليک دکمه بنويسيد :

    udppeerA.SendData txtsend.text
    - کد زير را براي رويداد DataArrival بنويسيد :

    Dim strData as String
    udppeerA.GetData strData
    txtreceive.Text=strData

    براي ساخت UDP peerB مشابه مراحل بالا عمل کنيد فقط خاصيت RemoteHost آنرا نام کامپيوتر PeerA و خاصيت RemotePort آنرا 1002 و خاصيت Bind آنرا 1001 قرار دهيد .
    -------------------

    بررسی خواص کنترل WinSock :
    ByteReceived : مقدار داده دريافت شده ( موجود در بافر receive ) را نشان مي دهد . توسط متد GetData مي توان اين داده را دريافت نمود .
    LocalHostName : نام ماشين محلي را نشان مي دهد . اين پارامتر فقط خواندني است .
    LocalIP : آدرس IP ماشين محلي را بصورت يک string برمي گرداند . اين پارامتر فقط خواندني است .
    LocalPort : براي خواندن و يا تنظيم شماره پورت محلي بکار مي رود .
    Protocol : براي خواندن و يا تنظيم پروتوکل مورد استفاده توسط کنترل WinSock بکار مي رود .
    RemoteHost : براي خواندن و يا تنظيم نام يا آدرس IP ماشين راه دور بکار مي رود .
    RemoteHostIP : آدرس IP ماشين راه دور را برمي گرداند :
    ۱- براي برنامه هاي Client بعد از زمانيکه يک اتصال توسط متد Connect پذيرفته شد ، اين خاصيت حاوي آدرس IP ماشين راه دور است .
    ۲ - براي برنامه Server ، بعد از آمدن يک Connection Request اين خاصيت شامل آدرس IP ماشين راه دور است .
    ۳ - در زمان استفاده از پروتکل UDP بعد از اينکه رويداد Data Arrival رخ داد اين خاصيت حاوي آدرس IP ماشيني است که داده را فرستاده .
    RemotePort : براي خواندن و يا تنظيم شماره پورت ماشين راه دوري که مي خواهيد به آن متصل شويد بکار مي رود .
    SocketHandle : مقداري را برمي گرداند که مرتبط با سوکتي است که کنترل WinSock را مديريت مي کند و براي ارتباط با لايه WinSock بکار مي رود . اين پارامتر فقط خواندني است و تنها براي ارسال به API هاي WinSock طراحي شده است .
    State : وضعيت کنترل WinSock را نشان مي دهد . وضعيتهاي ممکن براي State عبارتند از :
    ۱ - sckClosed : اتصال بسته است .
    ۲ - sckOpen : اتصال باز است .
    ۳ - sckListening : حالت گوش دادن به پورت
    4 - sckConnectionPending : معلق شدن اتصال
    ۵ - sckResolvingHost : تصميم گيري در مورد ميزبان
    ۶ - sckHostResolved : در مورد ميزبان تصميم گيري شد .
    ۷ - sckConnecting : حالت برقراري ارتباط
    ۸ - sckConnected : ارتباط برقرار شد .
    ۹ - sckClosing : حالت قطع اتصال
    ۱۰ - sckError : حالت خطا

    بررسی متدهای کنترل WinSock :
    متد Accept : تنها براي برنامه هاي TCP Server بکار مي رود . اين متد براي پذيرفتن يک اتصال در زمان مديريت رويداد ConnectionRequest استفاده مي شود .
    متد Bind : اين پارامتر LocalPort و LocalIP يک اتصال را مشخص مي کند .
    متد Close : براي بستن يک اتصال TCP و يا بستن يک listening socket بکار مي رود .
    متد GetData : بلوک جاري داده دريافت شده را گرفته و آنرا در متغيري از نوع Variant ذخيره مي کند . شکل کلي اين متد بصورت زير است :

    WinSock.GetData data[,type][,maxlen]x
    که data داده دريافتي است . اگر داده کافي موجود نباشد data برابر empty خواهد بود .
    type نوع داده دريافتي است که مي تواند مقادير زير باشد :
    vbByte - vbInteger - vbLong - vbSingle - vbDouble - vbDate - vbBoolean - vbError - vbString - vbArray+vbByte
    maxlen حداکثر سايز را در زمان دريافت يک byte Array و يا يک string مشخص مي کند .
    متد Getdata در رويداد Data Arrival استفاده مي شود که اين رويداد يک پارامتر با نام TotalBytes دارد . اگر maxlen اي که شما تعيين کرده ايد کمتر از TotalBytes باشد پيغام هشدار شماره ۱۰۰۴۰ دريافت مي کنيد بدين معني که بايتهاي باقيمانده گم خواهند شد .
    متد Listen : يک سوکت مي سازد و آنرا در حالت Listen قرار مي دهد . اين متد تنها در اتصالات TCP بکار ميرود .
    متد PeekData : مشابه GetData است با اين تفاوت که داده را از صف ورودي حذف نمي کند . اين متد تنها براي اتصالات TCP بکار مي رود .
    متد SendData : براي ارسال داده به کامپيوتر راه دور بکار مي رود .
    بررسي event هاي کنترل WinSock :
    رويداد Close : زماني رخ مي دهد که کامپيوتر راه دور اتصال را ببندد .
    رويداد Connect : بعد از اينکه يک اتصال به Server ايجاد شد روي مي دهد . شکل کلي آن بصورت زير است :

    Private Sub WinSock_Connect(ErrorOccurred As Boolean)x
    که پارامتر ErrorOccurred دو مقدار دارد : اگر True باشد يعني اتصال Fail شده است و اگر False باشد يعني اتصال با موفقيت انجام شده است .
    با رويداد Connect مي توانيد error هايي که در زمان فرايند باز کردن اتصال برگردانده شده را چک کنيد .
    رويداد ConnectionRequest : زماني رخ مي دهد که يک کامپيوتر راه دور تقاضاي يک اتصال را بدهد . اين رويداد فقط براي برنامه هاي TCP Server بکار مي رود .
    رويداد DataArrival : زماني رخ مي دهد که داده جديدي بيايد .
    رويداد Error : زماني رخ مي دهد که يک خطا در فرايند ارتباط رخ دهد ( مثلاً Failed to Connect و يا Failed to Send ) . شکل کلي آن بصورت زير است :

    Private WinSock_Error(number as Integer,description as String,scode as Long,source as String,helpfile as String,helpcontext as Long,canceldisplay as Boolean)x

    number شماره کد خطا است .
    description توضيحي در مورد خطا است .
    source توصيف منبع خطا
    canceldisplay : مشخص مي کند آيا پيغام خطاي پيش فرض نشان داده شود يا نه
    رويداد SendComplete : زماني رخ مي دهد که يک عمل Send تکميل شده باشد .
    رويداد SendProgress : زماني رخ مي دهد که کنترل شروع به ارسال داده نمايد . شکل کلي آن بصورت زير است :

    WinSock_SendProgress (bytesSent As Long, bytesRemaining As Long)x

    که bytesSent تعداد بايتهاي ارسال شده و bytesRemaining تعداد بايتهاي باقيمانده است .

    تهیه و تنظیم : parsiyan_mohsen

  25. #65
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    ايجاد کلاسی برای کار با فايلهای XML
    برای قرار دادن پارامترهای اتصال به بانک اطلاعاتی از فايل XML استفاده خواهيم نمود . بنابراين ابتدا بايستی کلاسی برای کار با فايلهای XML بنويسيم . توجه داشته باشيد که کلاسی که در اين بخش معرفی می شود کلاسی ساده می باشد که فقط با آن می توان مقدار يک ند Node وجود در فايل xml را خواند . در صورت نياز ، می توانيد خودتان متدهای ديگری را به آن اضافه کنيد . برای اين منظور نکاتی را در انتهای همين بخش آورده ام .
    XML يک زبان نشانه ای توسعه پذير ( eXtensible Markup Language ) است که در سال 1998 توسط کنسرسيوم وب جهانی W3C ايجاد شد . XML واقعاً يک زبان نيست بلکه يک متا-زبان است و برای توصيف ساير زبانها بکار می رود . داده ها در فايلهای XML براحتی قابل تعريف و استفاده هستند .
    مثالی از يک فايل XML :


    <user>
    <name>ali</name>
    <id>12</id>
    </user>


    کار با فايلهای XML در وی بی :
    برای کار با فايلهای xml در ويژوال بيسيک بايستی ابتدا از بخش References مورد Microsoft XML 3.0 را انتخاب کنيد . سپس يک Class Modules به پروژه تان اضافه کنيد و نام آنرا XMLReader بگذاريد . در اين کلاس ابتدا يک متغير از نوع شی xml برای کار با فايلهای xml تعريف می کنيم :

    Private xml

    سپس متدی برای مقداردهی اوليه شی xml می نويسيم . اين متد دارای يک متغير ورودی است که نام فايل xml مورد نظر می باشد :

    Public Sub Initiate(ByVal filename As String)x
    Set xml = CreateObject("Microsoft.XMLDOM")x
    xml.async = False
    xml.Load (server.MapPath(filename))x
    End Sub

    توجه کنيد که در کد فوق از شی server برای يافتن مسير فيزيکی فايل XML استفاده شده است بنابراين ابتدا بايستی در Class_Initialize اين شی را مطابق مطالب درس دوم مقداردهی کنيد .

    حال بايستی متدی برای خواندن مقدار يک ند از فايل xml بنويسيم . در اين متد توسط يک حلقه for each ندهای فايل را بررسی می کنيم تا ندی را بيابيم که نامش مشابه با متغير ورودی متد است . سپس با استفاده از خاصيت nodeValue می توانيم مقدار آنرا بخوانيم .

    Public Function getvalue(ByVal NName As String) As String
    Dim x
    getvalue = ""x
    For Each x In xml.documentElement.childNodes
    If x.nodeName = NName Then
    getvalue = x.childNodes(0).nodeValue
    Exit For
    End If
    Next
    End Function

    مثالی از کار با کلاس XMLReader :
    همانطور که گفته شد می توانيم پارامترهای اتصال به بانک اطلاعاتی را در فايل XML قرار دهيم و در زمان Initiate کردن ADODB برای اتصال به بانک اطلاعاتی ، آنها را بخوانيم :

    Dim xmlf As New XMLReader
    Call xmlf.Initiate("config.xml")x
    userName = xmlf.getvalue("DataBaseID")x
    Password = xmlf.getvalue("DataBasePassword")x
    database_name = xmlf.getvalue("DataBaseName")x
    server_name = xmlf.getvalue("ServerAddress")x

    ساختار يک فايل نمونه config.xml بصورت زير می باشد :


    <Application>testIt</Application>
    <ServerAddress>192.168.0.1</ServerAddress>
    <DataBaseName>Edatabase</DataBaseName>
    <DataBaseID>Euser</DataBaseID>
    <DataBasePassword>Epass</DataBasePassword>


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

    1 - توجه داشته باشيد که xml.documentElement بعنوان ريشه فايل xml محسوب می شود . بنابراين برای دسترسی به ريشه می توان يک شی ريشه نيز تعريف کرد :

    Dim root
    Set root = xml.documentElement

    2 - در صورتيکه يک فايل xml دارای چندين ند در ريشه اش باشد و هر ند ريشه نيز دارای چندين ند درونی باشد توسط خاصيت root.childNodes.length و با استفاده از يک حلقه for می توان به اين ندها دسترسی داشت . برای مثال فايل زير را درنظر بگيريد :


    <people>
    <user>
    <name>ali</name>
    <id>1</id>
    </user>
    <user>
    <name>reza</name>
    <id>2</id>
    </user>
    </people>


    حلقه زير روش دسترسی را به اين فايل نشنان می دهد :

    For I = 0 TO (root.childNodes.length - 1)x
    Set thisChild = root.childNodes(I)x
    name = thisChild.childNodes(0).Text
    id = thisChild.childNodes(1).Text
    Next

    3 – اضافه کردن ند به فايل : برای اضافه کردن ند از متدهای createNode و appendChild استفاده می شود برای مثال برای اضافه کردن يک user جديد به مثال فوق :

    Set newuser = xml.createNode("element", "people", "")x
    Dim name,id
    Set newname = xml.createNode("element", "name", "")x
    newname.text = yourname
    Set newid = xml.createNode("element", "id", "")x
    newid.text = yourid
    newuser.appendChild(newname)x
    newuser.appendChild(newid)x
    root.appendChild(newuser)x

    در انتها نيز بايستی فايل را ذخيره نمود :

    xml.save(Server.Mappath(filename))x

    4 – حذف يک ند از فايل : برای حذف يک ند از فايل توسط يک حلقه for بايستی ند مورد نظر را يافته و سپس توسط متد removeChild آنرا حذف کنيم :

    found = False
    For I = (root.childNodes.length - 1) TO 0 STEP -1
    Set thisChild = root.childNodes(I)x
    name = thisChild.childNodes(0).Text
    If name = searchname Then
    root.removeChild(thisChild)x
    found = True
    End If
    Next

    تهیه و تنظیم : parsiyan_mohsen

  26. #66
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    می خواهید ساختن یک برنامه مالتی مدیا رو یاد بگیرید ؟؟؟

    اگه می خواهید ، با من همراه بشید

    این کارا رو که می گم دنبال کنید :

    1)ازمنوی Project گزینه Components را انتخاب کنید .

    2)از لیست باز شده گزینه های زیر را تیک بزنید :

    Microsoft Common Dialog control 6.0
    Microsoft Windows Common Controls 5.0 (SP2)
    Windows Media Player


    به برنامه خود کنترلهای زیر را اضافه کنید :( مواد لازم )
    Command1
    Command2
    Label1
    Timer1
    Slider1
    CommonDialog1
    MediaPlayer1


    کدهای زیر رو اضافه کنید :


    Option Explicit
    Dim File_name As String
    Dim pp As Boolean

    Private Sub Command1_Click()
    Call Form_Load
    End Sub

    Private Sub Command2_Click()
    On Error Resume Next
    If pp = False Then
    pp = True: Command2.Caption = "Play"
    MediaPlayer1.Pause
    Else
    pp = False: Command2.Caption = "Pause"
    MediaPlayer1.Play
    End If
    End Sub

    Private Sub Form_Initialize()
    MsgBox "http://vbassistant.blogfa.com", vbInformation, "About"
    Me.Move 4000, 4000, 5000, 1100
    Command1.Move 10, 10, 700, 330
    Command2.Move 10, 340, 700, 330
    Slider1.Move 800, 110, 3000, 1000
    Label1.Move 3900, 240, 1500, 1000
    Command1.Caption = "Open"
    Command2.Caption = "Pause"

    End Sub

    Private Sub Form_Load()
    On Error Resume Next
    pp = False
    Timer1.Interval = 100
    Me.BorderStyle = 3
    CommonDialog1.Filter = "mp3 File|*.mp3|All File|*.*"
    CommonDialog1.ShowOpen
    File_name = CommonDialog1.FileName
    Me.Caption = File_name
    MediaPlayer1.FileName = File_name
    MediaPlayer1.Play
    Slider1.Max = MediaPlayer1.Duration
    End Sub

    Private Sub Slider1_Scroll()
    MediaPlayer1.CurrentPosition = Slider1.Value
    End Sub

    Private Sub Timer1_Timer()
    Slider1.Value = MediaPlayer1.CurrentPosition
    Label1.Caption = Int(MediaPlayer1.CurrentPosition) & " Seconds"
    End Sub


    تهیه و تنظیم : parsiyan_mohsen

  27. #67
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    به دست آوردن سورس یک صفحه :

    کار با Inet و Web Browser خیلی جالب هست :

    اگرمیخواهیداین دو کنترل به کنترلهای دیگر بپیوندند.
    از منوی project گزینه Components را کلیک کنید.
    از بین لیست کنترلها دو گزینه microsoft internet transfer control 6.0
    و microsoft internet controls را تیک بزنید و OK کنید.

    کاراصلی WebBrowser نمایش صفحات وب و معمول ترین کار کنترل Inet بدست آوردن سورس یک آدرس است.

    کنترلها: Command1,Text1,Text2,WebBrowser1,Inet1


    کدهایی که لازمه وارد کنید :
    Private Sub Command1_Click()
    If Text1.Text <> "" Then
    WebBrowser1.Navigate Text1.Text
    Text2 = Inet1.OpenURL(Text1.Text)
    End If
    End Sub

    Private Sub Form_Load()
    Me.Width = 5325
    Me.Height = 5400
    Me.Caption = "Mini browser"
    With WebBrowser1
    .Width = 4575
    .Height = 2375
    .Top = 600
    .Left = 240
    End With
    With Text1
    .Top = 240
    .Left = 1680
    .Height = 285
    .Width = 3135
    .Text = "http://www.vbassistant.blogfa.com"
    End With
    With Text2
    .Width = 4575
    .Height = 2375
    .Top = 3000
    .Left = 240
    .Text = ""
    End With
    With Command1
    .Top = 120
    .Left = 240
    .Height = 375
    .Width = 1215
    .Caption = "Navigate"
    .Default = True
    End With
    End Sub


    برای اینکه سورس درست کار کنه باید خاصیت Multiline شیء Text1 رو به True تغییر بدید.

    تهیه و تنظیم : parsiyan_mohsen

  28. #68
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    سورس برنامه Buddy Spy :
    کاربرد این برنامه برای Yahoo Messanger هست , مثلا شما می خواهید دیگران فکر کنند که شما WebCam دارید یا اینکه بفهمید یک شخص خاصی واقعاً invisible هست یا نه و اینکه شخص مورد نظر شما در Room های یاهو هست یانه و ..... . خوب این برنامه با ویژوال بیسیک نوشته شده و آقای Brandon Henricks لطف کردن و سورس این برنامه را بصورت Free و تحت GNU Licence عرضه کرده اند .

    تهیه و تنظیم : parsiyan_mohsen
    فایل های ضمیمه فایل های ضمیمه

  29. #69
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    سری جدید سورس ها -دانلود کنید و لذت ببرید- :

    1- برنامه نمونه مشاور املاک --------------> دانلود
    2- برنامه سازنده فایل ویروس فرمت کردن درایو دلخواه --------------> دانلود
    3- برنامه بسیار جالب سه بعدی (3D) --------------> دانلود
    4- سورس برنامه ارسال فکس با VB -حتما دانلود کنید- --------------> دانلود
    5- سورس برنامه پر کننده گرافیکی --------------> دانلود
    6- فکر و بکر --------------> دانلود

  30. #70
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    این هم چند تا سورس جدید برای شما : <<>>

    1- سورس برنامه جستجو در دیتابیس --------------> دانلود
    2- سورس یک آکواریوم بسیار زیبا --------------> دانلود
    3- برنامه محاسبه کننده زمان توقف موس --------------> دانلود
    4- سورس برنامه مبدل تصاویر --------------> دانلود
    5- ماتریکس برای بچه های مهندسی و ریاضی --------------> دانلود
    6- حرکت دهنده موس --------------> دانلود

  31. #71

    نقل قول: فقط سورس دانلود کنید!

    راستي اين جديدا دانلود نميشه
    Bandwidth Limit Exceeded

    The available bandwidth quota for this file system has been exceeded.
    (/MahdiVB678/new1/FieldSearch.zip)

    Please, try again later.

  32. #72
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    راستي اين جديدا دانلود نميشه
    اشتباه میکنید. من همه لینک ها رو امتحان کردم. درسته درسته. بهتره از یک دانلود منجر استفاده کنید. من نرم افزار Internet Download Manager رو پیشنهاد میکنم که آخرین نسخه اون تا الان که من دارم این پست رو می دم نسخه 5.17 و Build 5 هست که تو تاریخ 27 می 2009 منتشر شده.

  33. #73
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: فقط سورس دانلود کنید!

    نقل قول نوشته شده توسط Max Payne مشاهده تاپیک
    سلام ميشه يه سورس درخواست كنم
    يه سورس ساده واسه نمايش عكس هاي ذخيره شده تو پايگاه داده مي خواستم
    بايد فايل رو به صورت باينري باز كنيم از اين سري چيزا
    اگر قبل از درخواست برنامه كه ممنوع هم هست جستجو كنيد:
    https://barnamenevis.org/showthread.php?t=138962
    https://barnamenevis.org/showthread.php?t=105590
    https://barnamenevis.org/showthread.php?t=144132
    https://barnamenevis.org/showpo...0&postcount=14
    https://barnamenevis.org/showthread.php?t=165017

    به نتايج خوبي مي رسيد
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

  34. #74
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    قبل از درخواست برنامه كه ممنوع هم هست
    درخواست برنامه ممنوعه؟ چه دلیلی داره؟

  35. #75
    اين نتايج به درد كار ما نمي خوره اسنا رو قبلا ديدم كه پست زدم وگفتم اگه داريد بذاريد اون يه سورسش خوب بودش اما همچين پيچيدش كردن مثه گذاشتن عكس تو ديتابيس كه كد آنچناني نمي خواد
    بازم ممنون

    والا بنده پروژه دانشجويي درخواست نكردم خودم پروژم رو نوشتم نيازي به درخواست نداشتم الانم گفتم نمونه سورس ساده كه چطور ميشه عكس رو تو Image نمايش داد از پايگاه داده همين

    mmssoft عزيز اون لينك ها بله سالم هستش مثه اينكه اونوقتي تو پهناي باندش مشكلي پيش اومده بودش اون پيام رو ميداد
    آخرین ویرایش به وسیله xxxxx_xxxxx : چهارشنبه 13 آبان 1388 در 08:35 صبح دلیل: ادغام

  36. #76
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    کدی برای آموزش کار با دیتابیس پسورد دار :

    With Adodc1
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
    App.Path & "\data\bank.mdb;Persist Security Info=False;Jet OLEDB:Database Password=ali"
    .RecordSource = "select * from tabel one"
    End With

  37. #77
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    این هم یک ساعت بسیار زیبا :
    لذت ببرید!!
    فایل های ضمیمه فایل های ضمیمه

  38. #78
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    این هم یک بازی با ویژوال بیسیک :
    بازی تانک بازی.
    فایل های ضمیمه فایل های ضمیمه

  39. #79
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

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

  40. #80
    کاربر دائمی آواتار mmssoft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    Middle of nowhere
    پست
    847

    نقل قول: فقط سورس دانلود کنید!

    این هم یه سورس جدا کننده. از روی توضیح منظور من رو نمی فهمین. باید حتما خودتون تصویر رو ببینید تا بفهمید من چی میگم :

    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: gif PIC.gif‏ (10.3 کیلوبایت, 546 دیدار)
    فایل های ضمیمه فایل های ضمیمه

صفحه 2 از 4 اولاول 1234 آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •