صفحه 1 از 6 123 ... آخرآخر
نمایش نتایج 1 تا 40 از 231

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

  1. #1
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    شماره گیری با مودم توسط ویژوال بیسیک :

    MsComm1.CommPort = "3"
    If MsComm1.PortOpen = False Then
    MsComm1.PortOpen = True
    MsComm1.Settings = "9600,N,8,1"
    MsComm1.Output = "ATP" & "2518085" & vbCrlf
    End If

  2. #2
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    اضافه نمودن تصاویر به منو ها :
    توی یه ماژول اینها رو بنویسید :
    Declare Function GetMenu Lib "user32" _
    (ByVal hwnd As Long) As Long
    Declare Function GetSubMenu Lib "user32" _
    (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Declare Function GetMenuItemID Lib "user32" _
    (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Declare Function SetMenuItemBitmaps Lib "user32" _
    (ByVal hMenu As Long, ByVal nPosition As Long, _
    ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, _
    ByVal hBitmapChecked As Long) As Long
    Public Const MF_BITMAP = &H4&
    Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
    End Type
    Declare Function GetMenuItemCount Lib "user32" _
    (ByVal hMenu As Long) As Long
    Declare Function GetMenuItemInfo Lib "user32" _
    Alias "GetMenuItemInfoA" (ByVal hMenu As Long, _
    ByVal un As Long, ByVal b As Boolean, _
    lpMenuItemInfo As MENUITEMINFO) As Boolean
    Public Const MIIM_ID = &H2
    Public Const MIIM_TYPE = &H10
    Public Const MFT_STRING = &H0&


    اینها رو هم تو فرمتون بنویسید :

    Private Sub Command1_Click()

    'Get the menuhandle of your app

    hMenu& = GetMenu(Form1.hwnd)

    'Get the handle of the first submenu (Hello)

    hSubMenu& = GetSubMenu(hMenu&, 0)

    'Get the menuId of the first entry (Bitmap)

    hID& = GetMenuItemID(hSubMenu&, 0)

    'Add the bitmap



    SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture


    'You can add two bitmaps to a menuentry

    'One for the checked and one for the unchecked

    'state.

    End Sub


  3. #3
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    غیر فعال کردن دکمه خروج فرم ها :
    خیلی راحته فقط اینها رو تو یه ماژول کپی کنید :
    'Import Necessary API Functions To Disable Close Button
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long


    'Import Necessary Constant To Disable Close Button
    Private Const SC_CLOSE = &HF060
    Private Const MF_BYCOMMAND = &H0

    Public Function DisableCloseButton(FormHwnd As Long)
    'Have Function To Disable Close Button
    Dim MenuHwnd As Long

    MenuHwnd = GetSystemMenu(FormHwnd, 0&)

    If MenuHwnd Then

    DeleteMenu MenuHwnd, SC_CLOSE, MF_BYCOMMAND
    DrawMenuBar (FormHwnd)

    End If

    End Function

    اینم تو فرمتون بزارید :
    DisableCloseButton Me.hWnd

  4. #4
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    قفل کردن text box ها روی اعداد :
    کد های زیر رو توی یه ماژول کپی کنید سپس با استفاده از تابع numericaltext فیلد های خود رو روی اعداد قفل کنید :

    NumericalText YourTxtName, True

    'Import Necessary API Function

    Private Declare Function GetWindowLong Lib "user32" _
    Alias "GetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long

    Private Declare Function SetWindowLong Lib "user32" Alias _
    "SetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long

    Private Const GWL_STYLE = (-16)
    Private Const ES_NUMBER = &H2000&

    Public Function NumericalText(YourTextBox As TextBox, Flag As Boolean)

    'Set The Text Box To Numerical

    Dim CurStyle As Long
    Dim NewStyle As Long

    CurStyle = GetWindowLong(YourTextBox.hwnd, GWL_STYLE)
    If Flag Then

    CurStyle = CurStyle Or ES_NUMBER

    Else

    CurStyle = CurStyle And (Not ES_NUMBER)

    End If

    SetNoNums = SetWindowLong(YourTextBox.hwnd, GWL_STYLE, CurStyle)

    YourTextBox.Refresh

    End Function

  5. #5
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    بدست آوردن اطلاعاتی در مورد درایو های سیستم از جمله نوع، تعداد ، اسامی :
    یه لیست باکس به فرمتون اضافه کنید :
    Private Const DRIVE_REMOVABLE = 2
    Private Const DRIVE_FIXED = 3
    Private Const DRIVE_REMOTE = 4
    Private Const DRIVE_CDROM = 5
    Private Const DRIVE_RAMDISK = 6
    Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
    Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

    Private Sub GetDrives(lst1 As ListBox)
    'get available drives on computer
    Dim strsave As String
    Dim ret As Long
    Dim i As Byte
    Dim drive As String
    strsave = String(255, Chr$(0))
    ret = GetLogicalDriveStrings(255, strsave)
    lst1.Clear
    For i = 0 To 100
    If Left$(strsave, InStr(1, strsave, Chr$(0))) = Chr$(0) Then Exit For
    drive = Left$(strsave, InStr(1, strsave, Chr$(0)) - 1)
    strsave = Right$(strsave, Len(strsave) - InStr(1, strsave, Chr$(0)))
    Select Case GetDriveType(drive)
    Case DRIVE_REMOVABLE
    lst1.AddItem UCase$(drive) & vbTab & "(Removable Drive)"
    Case DRIVE_FIXED
    lst1.AddItem UCase$(drive) & vbTab & "(Fixed Drive)"
    Case DRIVE_REMOTE
    lst1.AddItem UCase$(drive) & vbTab & "(Remote Drive)"
    Case DRIVE_CDROM
    lst1.AddItem UCase$(drive) & vbTab & "(CDROM Drive)"
    Case DRIVE_RAMDISK
    lst1.AddItem UCase$(drive) & vbTab & "(RAM Disk)"
    Case Else
    End Select
    Next i
    lst1.ListIndex = 0
    End Sub

    Private Sub Form_Load()
    GetDrives List1
    End Sub

    اینم باقیش :

    Life *free = new Life(const long OpenSource);

  6. #6
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    غیر فعال کردن task manager :
    یه check Box اضافه کنید به فرم :
    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Const REG_SZ = 1
    Private Const REG_BINARY = 3
    Private Const REG_DWORD = 4
    Private Const HKEY_CURRENT_USER = &H80000001

    Private Sub SaveStringWORD(hKey As Long, strPath As String, strValue As String, strData As String)
    '----------------------------------------------------------------------------
    'Argument : Handlekey, Name of the Value in side the key
    'Return Value : Nil
    'Function : To store the value into a key in the Registry
    'Comments : None
    '----------------------------------------------------------------------------

    Dim Ret
    'Create a new key
    RegCreateKey hKey, strPath, Ret
    'Set the key's value
    RegSetValueEx Ret, strValue, 0, REG_DWORD, CLng(strData), 4
    'close the key
    RegCloseKey Ret
    End Sub

    Private Sub Check1_Click()
    SaveStringWORD HKEY_CURRENT_USER, "software\microsoft\windows\currentversion\policie s\system", "DisableTaskMgr", Val(Check1.Value)
    End Sub

    Private Sub Form_Load()
    Check1.Caption = "Disable Task Manager"
    end sub

  7. #7
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

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

    Public Const WM_RBUTTONUP = &H205
    Global Const WM_MOUSEMOVE = &H200
    Global Const NIM_ADD = 0
    Global Const NIM_DELETE = 2
    Global Const NIM_MODIFY = 1
    Global Const NIF_ICON = 2
    Global Const NIF_MESSAGE = 1
    Global Const ABM_GETTASKBARPOS = &H5
    Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
    End Type
    Type APPBARDATA
    cbSize As Long
    hwnd As Long
    uCallbackMessage As Long
    uEdge As Long
    rc As RECT
    lParam As Long
    End Type
    Global Notify As NOTIFYICONDATA
    Global BarData As APPBARDATA
    Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
    Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
    Sub AddIcon(Form1 As Form, IconID As Long, Icon As Object, ToolTip As String)
    Dim Result As Long
    BarData.cbSize = 36&
    Result = SHAppBarMessage(ABM_GETTASKBARPOS, BarData)
    Notify.cbSize = 88&
    Notify.hwnd = Form1.hwnd
    Notify.uID = IconID
    Notify.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
    Notify.uCallbackMessage = WM_MOUSEMOVE
    Notify.hIcon = Icon
    Notify.szTip = ToolTip & Chr$(0)
    Result = Shell_NotifyIcon(NIM_ADD, Notify)
    End Sub
    Sub delIcon(IconID As Long)
    Dim Result As Long
    Notify.uID = IconID
    Result = Shell_NotifyIcon(NIM_DELETE, Notify)
    End Sub

    حالا اینها رو تو فرمتون کپی کنید :

    Public IconObject As Object


    اینها رو هم تو لود کپی کنید :

    Set IconObject = Form1.Icon
    AddIcon Form1, IconObject.Handle, IconObject, "TrayIcon"
    Me.Popup.Visible = False

    توی unload :

    delIcon IconObject.Handle
    delIcon Form1.Icon.Handle

    یه منو درست کنید و اسمشو بزاری popup بعد تو قسمت فرم و مشخصه mouse move اینو بنویسید :

    Static Message As Long
    Message = X / Screen.TwipsPerPixelX
    Select Case Message
    Case WM_RBUTTONUP:
    Me.PopupMenu Popup
    End Select

  8. #8
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    گرفتن Screen Resolution
    ResWidth = Screen.Width \ Screen.TwipsPerPixelX
    ResHeight = Screen.Height \ Screen.TwipsPerPixelY
    ScreenRes = ResWidth & "x" & ResHeight
    MsgBox (ScreenRes)

  9. #9
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    لیست فونت های شما و نحوه نمایش آنها :
    یه لیست باکس اضافه کنید :
    Dim counter As Integer
    For counter = 0 To Screen.FontCount - 1
    List1.AddItem Screen.Fonts(counter)
    Next

    در رویداد On_Click اون Listbox تون این کد رو بزارید :
    Static tempheight As Single
    If tempheight = 0 Then tempheight = List1.Height
    List1.Font.Name = List1.List(List1.ListIndex)
    List1.Height = tempheight

  10. #10
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    تشخیص فشرده شدن کلیک :
    این تابع را بازخوانی کنید :
    user32.dll
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

    حالا تو event یک تایمر اینو بنویسید :
    For i = 1 To 255
    results = 0
    results = GetAsyncKeyState(i)
    If results <> 0 Then
    Msgbox(Chr(i))
    End If
    Next

  11. #11
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونه می توان درایو های سی دی را توسط vb تشخیص داد :

    Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long


    Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

    سپس ابتدا متغیر allDrives را که رشته ای 64 کاراکتری از space است بصورت زیر تعریف کنید :

    allDrives$ = Space$(64)

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

    ret& = GetLogicalDriveStrings(Len(allDrives$), allDrives$)
    allDrives$ = Left$(allDrives$, ret&)

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

    Do
    pos% = InStr(allDrives$, Chr$(0))
    If pos% Then
    JustOneDrive$ = Left$(allDrives$, pos% - 1)
    allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$))
    DriveType& = GetDriveType(JustOneDrive$)
    If DriveType& = 5 Then
    MsgBox UCase$(JustOneDrive$) & " is a CD Drive"
    End If
    End If
    Loop Until allDrives$ = ""

  12. #12
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    استفاده از قلاب یا Hook : قلاب ، یک ابزار در مکانیزم مدیریت پیغام سیستم ویندوز است که توسط آن برنامه ها می توانند یک روتین را برای مدیریت و پردازش پیغامهای خاصی قبل از اینکه آن پیغامها به برنامه مقصد برسند نصب نمایند . قلابها باعث کندی سیستم می شوند زیرا حجم پردازشی سیستم روی هر پیغام را افزایش می دهند بنابراین بایستی زمانیکه واقعاً به قلاب نیاز دارید آنرا نصب نموده و هر چه زودتر آنرا حذف نمایید . سیستم ویندوز از انواع زیادی از قلابها پشتیبانی می کند که هر کدام امکان دستیابی به پیغامهای خاصی را مهیا می نمایند برای مثال یک برنامه کاربردی می تواند با استفاده از قلاب کیبرد برای مدیریت و پردازش پیغامهای مربوط به آن ( مثل فشرده شدن یک کلید خاص یا رها شدن آن ) استفاده کند .
    برای نصب یک قلاب در برنامه از یک تابع کتابخانه ای به اسم SetWindowsHookEx استفاده می شود . این تابع یک قلاب را به زنجیره قلابهای سیستم اضافه می کند . نحوه declare کردن این تابع بصورت زیر است :
    Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

    همچنین برای آزاد کردن یک قلاب و حذف آن از زنجیره قلابها از تابع کتابخانه ای UnhookWindowsHookEx استفاده می گردد . نحوه declare کردن این تابع بصورت زیر است :
    Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

    برای ایجاد قلاب کیبرد همچنین نیاز به تعریف یک ثابت است که شماره قلاب کیبرد در آن قرار دارد :

    Public Const WH_KEYBOARD = 2

    حال بایستی یک تابع پس زمینه یا Callback Function نوشت که به ازای فشرده شدن کیبرد اجرا شود و آدرس آنرا ( با استفاده از کلمه کلیدی Address Of ) بهمراه ثابت فوق به تابع SetWindowsHookEx فرستاد .

  13. #13
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونگی ساخت یک Splash Screen برای برنامه هایی که مینویسیم را براتون شرح بدم . خوب باز هم باید توابع مورد نیاز را فراخوانی کرده و همچنین ثوایت مورد نیاز را تعریف کنیم :
    Const LWA_COLORKEY = &H1
    Const LWA_ALPHA =
    &H2
    Const GWL_EXSTYLE = (-20)
    Const WS_EX_LAYERED =
    &H80000
    Private Declare Function GetWindowLong Lib "user32" Alias _
    "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As
    Long
    Private
    Declare Function SetWindowLong Lib "user32" Alias _
    "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal _
    dwNewLong As Long) As
    Long
    Private
    Declare Function SetLayeredWindowAttributes Lib _
    "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha _
    As Byte, ByVal dwFlags As Long) As
    Long

    نوع نمایش این Splash Screen به گونه ای است که میزان شفافیت فرم آن از 0 به 255 رسیده و دوباره کاهش یافته به صفر می رسد (یا بعبارت دیگر از حالت نامرئی به شفافیت کامل رسیده و دوباره از شفافیت آن کاسته شده و نامرئی می شود ) . خوب تنها Control که برای این برنامه نیاز داریمTimer می باشد . کدی که در Form_Load می بینید باعث می شود که فرم در ابتدای امر نامرئی باشد چون مقدار bAlfa آنرا 0 داده ام
    Private Sub Form_Load()

    Dim Ret As
    Long
    'Set the window style to 'Layered'
    Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret

    'SetLayeredWindowAttributes Me.hWnd,0,(0-255),LWA_ALPHA
    SetLayeredWindowAttributes Me.hWnd,0,0,LWA_ALPHA

    Timer1.interval = 1
    End
    End Sub
    در مرحله بعد برای اینکه فرم از حالت نامرئی به مرئی برسد (یعنی مقدار آن از 0 به 255 برسد) یک حلقه For نوشتم . حال برای اینکه فرم دوباره از حالت مرئی به نامرئی برشد یک حلقه For دیگر با گام افزایش -1 نوشتم تا مقدار آنرا کاهش دهد .
    Private Sub Timer1_Timer()

    For i = 1 To
    255
    SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
    Next i

    For i = 255 To 1 Step -
    1
    SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
    Next i

    Timer1.Enabled =
    False

    End Sub
    (*) یک نکته : این برنامه در سیستم عاملهای windows 2000 به بعد قابل اجراست , زیرا توابع مورد استفاده در این برنامه در ویندوزهای 98 و 95 وجود ندارد .

  14. #14
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونه می توانیم دستورات Dos را از طریق ویژوال بیسیک اجرا کنیم ؟ ابتدا Command Prompt را فراخوانی می کنیم , خوب برای فراخوانی از تابع Shell استفاده میکنیم که قبلا در مورد این تابع توضیح داده ام :
    Shell "cmd.exe" 

    :: اکنون یک شیء ایجاد می کنیم تا بتوانیم از طیق آن به هسته Dos دسترسی داشته باشیم :

    Dim WinShell
    Set WinShell = CreateObject("Wscript.shell")

    خوب حالا می توانید به راحتی هر دستوری که دارید میتوانید اجرا کنید در آخر هم دستور تابع Sendkeys کلید Enter را اجرا کرده و دستور اجرا میشود:

    WinShell.SendKeys " Dos دستور مورد نظر برای اجرا در "
    WinShell.SendKeys "{ENTER}"

    به مثاهای زیر توجه کنید که به ترتیب اولی برای ایجاد پوشه ای به نام Visual Basic در درایو C و دستور دوم برای نمایش پوشه های موجود در درایو C و دستور سوم برای Format فلاپی دیسک می باشد .
    'For Create Folder With Dos Prompt :
    WinShell.SendKeys "MD C:\Visual" & " Basic"
    WinShell.SendKeys "{ENTER}"

    'For Showing C Directory :
    WinShell.SendKeys "Dir C:\"
    WinShell.SendKeys "{ENTER}"

    'For Format Floppy Disk Of Dos :
    WinShell.SendKeys "format A:"
    WinShell.SendKeys "{ENTER}"

  15. #15
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونه فرم هایی بصورت دایره و یا بیضی در ویژوال بیسیک طراحی کنیم . خوب ایتدا به فراخوانی توابع مورد نیاز ویندوز می پردازیم :
    Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function ReleaseCapture Lib "USER32" () As Long
    Private Declare Function CreateEllipticRgn Lib "gdi32" _
    (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
    ByVal Y2 As Long) As Long
    Private Declare Function SetWindowRgn Lib "USER32" _
    (ByVal hWnd As Long, ByVal hRgn As Long, _
    ByVal bRedraw As Boolean) As Long

    خوب اکنون کد زیر را در رویداد (Event) مربوط به لحظه ای که کلید موس را بروی فرم فشردیم قرار می دهیم تا بتوانیم با فشردن موس در هر جای فرم به راحتی آن را جابجا کنیم .
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    MousePointer = 15
    Call ReleaseCapture
    Call SendMessage(hWnd, &HA1, 2, 0&)
    MousePointer = 1
    End Sub

    حال تابع SetWindowRgn را مقدار دهی میکنیم . ( این قطعه کد را در رویداد Form_Load بنویسید ) :
     SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 200, 200), True 

    مثلا مقادیر 200 و 200 شکل فرم بصورت دایره در می آید برای شکل بیضی شما میتوانید این مقادیر را 200 و 300 اختیار کنید .( بهتر است که خاصیت boarderStyle را 0-None در نظر بگیرید)

  16. #16
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونه از اجراي مجدد يک برنامه در ويژوال بيسيک جلوگيري شود ؟
    خوب با استفاده از تيکه کد زير در فرم اصلي برنامه تان مي توانيد از اجراي مجدد (Duplicate) برنامه جلوگيري کنيد

    Private Sub Form_Load()
    If App.PrevInstance = True Then
    Dim Result As Integer
    Result = MsgBox("
    برنامه در حال اجراست", vbInformation, "Warnnig")
    Unload Me
    End If
    End Sub



  17. #17
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونه می توان متن دلخواهی را در Statusbar قرار داد ؟

    StatusBar1.Panels(شماره پنل مورد نظر).Text = "ساعت جاری " & Format(Time, "hh:mm:ss")

    اینو یکی از عزیزان پرسیده بود.

  18. #18
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونه می توان یک Explorer را اجرا کرد برای این کار می توان از راههای مختلفی استفاده کرد مثلاً از شیء Shell و . . . . برای اینکار از منوی Project آیتم Preference را انتخاب کنید , اکنون آیتم Microsoft Shell Controls and Automaton را انتخاب کنید . حالا مراحل زیر را انجام میدهیم .
    Dim SH As New Shell

    حالا می توانید از متدهای زیادی که این شیء در اختیارتان می گزارد استفاده کنید . از جمله این متد های اجرا Internet Explorer , Outlook , اجرای آیتم های موجود در کنترل پنل , نمایش پنجره جستجوی ویندوز و کلی کارهای مفید دیگه . به مثالهای زیر توجه کنید :

    SH.Open http://xxxx.com
    SH.TrayProperties

    SH.SetTime

    SH.FindComputer 'System Search
    SH.ControlPanelItem "sysdm.cpl" 'System Properties

    SH.ControlPanelItem "inetcpl.cpl" 'Internet Options

    SH.ControlPanelItem "'appwiz.cpl" 'Add/Remove Programs
    این شیء دارای متدهای دیگری هم میباشد که به راحتی می توانید از آنها استفاده کنید .

  19. #19
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    استفاده از شی ء File System Object در ویژوال بیسیک
    این شیء قابلیت کار با Drive , Folder , File , TestStream را دارد یعنی شما می توانید پوشه و یا فایلی را از مسیری به مسیر دیگر کپی , حذف و یا منتقل کنید و هم چنین می توانید پو شه ای را در مسیر مورد نظر ایجاد کنید .
    برای افزودن این شیء به برنامه تان از منوی Project آیتم Refrencese را انتخاب کنید و از آن آیتمMicrosoft Script Runtime را تیک می زنید . اکنون نوبت به تعریف یک متغیر از نوع ّFso می باشد
    Dim Fso As New FileSystemObject

    در ضمن لازم به ذکر است که App.path مسیر جاری را که برنامه اجرایی در آن قرار دارد را بر می گر داند .

    Fso.CopyFile App.Path & "\text.txt", "C:\", True ' True For Ovwerwrite
    fso.MoveFile App.Path & "\text.txt", "C:\" ' For Move File Of Current Path to "C:\" Path
    fso.DeleteFile "c:\text.txt"

    همین عملیات بالا را می توان برای Folder هم اجرا کرد . همان طور که متوجه شده اید این شیء بسیار مهم است و می تواند کاربرد های زیادی برایتان داشته باشد مثلاً من در زیر برنامه ای می نویسم که بتواند فایلی را در پو شه System32 ویندوز کپی کند خوب بر ای اینکه بتوان پوشه ویندوز را پیدا کنیم از یک API استفاده می کنم چون امکان داره ویندوز داخل پوشه هایی غیر از نام Windows باشد این کار بر ای بر نامه هایی که می خواهید فایلی را در پوشه ویندوز کپی کنی دکاربرد دارد مثلاً شما می خواهید فونتی را در پوشه font ویندوز کپی کنید.

    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _
    "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long _
    ) As Long

    Dim fso As New FileSystemObject
    Public S As String
    PublicSysDirectory As Long

    Private Sub Command1_Click()
    fso.CopyFile App.Path & "\vb.txt", S + "\System32\", True
    End Sub

    Private Sub Form_Load()
    S = Space(255)
    'Get the Windows directory
    WinDirectory = GetWindowsDirectory(S, 255)
    S = Left$(S, WinDirectory)

    '#######################################

    LblSource.Caption = "Source : " & App.Path & "\vb.txt"
    LblDestination.Caption = "Destination : " & S & "\System32\"
    End Sub

  20. #20
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    نمایش مقدار حافظه فیزیکی و مجازی با ویژوال بیسیک

    Private Type Memory
    Length As Long
    MemoryLoad As Long
    TotalPhysMemory As Long
    AvailablePhysMemory As Long
    TotalPageFile As Long
    AvailPageFile As Long
    TotalVirtualMemory As Long
    AvailableVirtualMemory As Long
    End Type

    Private Declare Sub GlobalMemoryStatus Lib "kernel32" (M As Memory)

    Private Sub Timer1_Timer()
    Dim M As Memory
    GlobalMemoryStatus M
    '*************************************************
    LblAvlMem.Caption = Format(CDbl(M.AvailablePhysMemory / 1048576), "#.## MB")
    LblTotalPhMem.Caption = Format(CDbl(M.TotalPhysMemory / 1048576), "#.## MB")
    LblUsedMemory.Caption = Format(CDbl((M.TotalPhysMemory - M.AvailablePhysMemory) / 1048576), "#.## MB")
    LblPercentPhMem.Caption = Format(CDbl((M.AvailablePhysMemory / M.TotalPhysMemory)), "##.#%")

    '*************************************************
    LblVirtualMem.Caption = Format(CDbl(M.AvailableVirtualMemory / 1048576), "#.## MB")
    LblTotalVirtualMem.Caption = Format(CDbl(M.TotalVirtualMemory / 1048576), "#.## MB")
    LblUsedVirtualMem.Caption = Format(CDbl((M.TotalVirtualMemory - M.AvailableVirtualMemory) / 1048576), "#.## MB")
    LblPercentVirtualMem.Caption = Format(CDbl((M.AvailableVirtualMemory / M.TotalVirtualMemory)), "##.#%")
    '*************************************************

    End Sub

  21. #21
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    اینم یه مبحث کلی در مورد install Sheild :
    برنامه InstallShield یکی از قویترین نرم‌افزارهای ساخت برنامه‌های نصب برای ویندوز است. این برنامه بهمراه WISE تنها نرم‌افزارهای مورد تایید مایکروسافت برای ساخت برنامه‌های نصب تحت سیستم عامل‌های این شرکت میباشند. InstallShield تاکنون در نگارش‌های مختلفی عرضه شده است و ما در اینجا از نسخه InstallShield Developer 7.0 استفاده خواهیم کرد.

    جهت شروع از Project Wizard که ساده‌ترین راه برای ساخت یک برنامه نصب است استفاده میکنم. برای اینکار InstallShield را اجرا کرده و از منوی File گزینه Project Wizard را انتخاب کنید. حال مرحله به مرحله صفحات این Wizard را مورد بررسی قرار میدهیم:

    Welcome to the Project Wizard
    این صفحه توضیحاتی درباره Project Wizard میدهد و امکانات آنرا معرفی میکند.

    Wizard Project
    در این صفحه گزینه Create a New Project را انتخاب کنید و نامی برای پروژه خود انتخاب کنید.

    Project Type
    حال باید مشخص کنید که قصد ساخت چه نوع پروژه‌ای را دارید. در این نسخه امکان ساخت دو نوع پروژه Standard و Basic MSI وجود دارد. در نوع Basic MSI برنامه نصب شما تماما" توسط Microsoft Windows Installer اجرا و کنترل میشود اما در نوع Standard شما از InstallScript نیز میتوانید برای کنترل برنامه نصب خود استفاده کنید. اما در هر صورت برنامه‌های نصب شما به Windows Installer احتیاج خواهند داشت.

    Application Information
    در این مرحله باید اطلاعاتی را درباره نرم‌افزاری که قصد ساخت برنامه نصب برای آن دارید را مشخص کنید. در قسمت‌های Application Name و Application Version نام و شماره نگارش نرم‌افزار خود را وارد کنید و توجه داشته باشید که شماره نگارش حتما" به صورت AA.BB.CCCC نوشته شود. در قسمت Default Destination Folder نیز مسیر پیش فرضی را که مایل به نصب برنامه خود در آنجا هستید را مشخص کنید. این مسیر با توجه به توصیه‌های مایکروسافت باید به صورت [ProgramFilesFolder]Company Name\Product Name باشد.

    عباراتی که داخل کروشه نوشته میشوند مشخص کننده یک متغیر Windows Installer هستند. در این مورد استفاده از [ProgramFilesFolder] باعث میشود که هنگام اجرای برنامه نصب بجای این عبارت از مسیر دایرکتوری Program Files کاربر استفاده شود.

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

    Setup Languages
    زبان‌هایی که مایل به پشیبانی از آنها در برنامه نصب خود هستید را از لیست انتخاب کنید.

    Application Features
    این مرحله یکی از مهمترین مراحل ساخت یک برنامه نصب است. در این مرحله میتوانید برنامه خود را به چند زیرمجموعه (Feature) تقسیم کنید بطوریکه کاربر بتواند به دلخواه مشخص کند که کدام Featureها نصب شوند. برای مثال میتوان یک برنامه را به زیرمجموعه‌های فایل‌های اصلی (Program Files)، فایل‌های راهنما (Help Files)، و فایل‌های نمونه (Sample Files) تقسیم کرد تا کاربر تنها مواردی را که احتیاج دارد نصب کند. هر زیرمجموعه نیز میتواند خود شامل چندین زیرمجموعه دیگر باشد.

    Application Files
    حال میرسیم به مهمترین مرحله که مشخص کردن فایل‌هایی است که باید نصب شوند. برای اینکار ابتدا از لیست بالای صفحه یک زیرمجموعه (Feature) را انتخاب کنید سپس با استفاده از دکمه Add Files فایل‌هایی را که به این زیرمجموعه مربوط میشوند اضافه کنید.

    هنگام اضافه کردن فایل‌ها پنجره‌ای با عنوان Path Variable Recommendation ظاهر میشود که درباره نحوه رفتار با مسیر فایل سوال میکند. قبل از توضیح این قسمت لازم است با مفهوم Path Variable آشنا شویم. یک Path Variable متغیری است که به یک مسیر اشاره میکند. در نتیجه اگر برای مسیر C:\My Projects\My Program یک Path Variable با نام MyPath تعریف کرده باشید برای مشخص کردن فایلی که در این دایرکتوری با نام MyFile.exe وجود دارد میتوان از \MyFile.exe استفاده کرد. از جمله مزایای این روش سرعت و سهولت بیشتر هنگام کار با فایل‌ها است. همچنین اگر شما مجبور به تغییر دادن دایرکتوری محل قرارگیری فایل‌های خود شدید به جای تغییر دادن مسیر ده‌ها فایل تنها کافیست مقدار Path Variable را تغییر دهید.

    در این پنجره سه گزینه وجود دارد که گزینه اول امکان استفاده از یک Path Variable موجود را میدهد؛ گزینه دوم بر اساس مسیر فایل انتخاب شده یک Path Variable میسازد و از آن استفاده میکند و گزینه سوم نیز از مسیر کامل فایل به طور مستقیم استفاده میکند.

    Create Shortcuts
    در این مرحله میتوانید میانبرهایی را برای برنامه‌تان در سیستم کاربر ایجاد کنید. برای این کار ابتدا محلی که مایل هستید میانبر در آنجا ساخته شود را انتخاب کنید و سپس بوسیله دکمه سمت راست موس روی آن کلیک کرده و از منوی باز شده New Shortcut را انتخاب کنید و نامی برای آن مشخص کنید. در قسمت Features زیرمجموعه‌ای که میانبر به آن مربوط میشود را انتخاب کنید و در قسمت‌های Icon و Icon Index به ترتیب فایل حاوی آیکون و در صورتی که این فایل شامل چندین آیکون است شماره آنرا وارد کنید. در قسمت Target نیز باید نام فایلی که این میانبر آنرا اجرا خواهد کرد مشخص کنید. برای این مورد به یکی دیگر از متغیرهای Windows Installer نیاز داریم که نام آن [INSTALLDIR] است. محتوی این متغیر همان محلی است که کاربر هنگام نصب برنامه مشخص کرده است. بنابر این برای مشخص کردن فایل MyFile.exe کافیست [INSTALLDIR]\MyFile.exe را وارد کنید.

    Registry Data
    اگر برنامه شما نیاز به تنظیمات خاصی در رجیستری ویندوز دارد میتوانید در این مرحله یک فایل reg. را برای زیرمجموعه مربوط به آن مشخص کنید تا هنگام نصب به رجیستری اضافه شود.

    Dialogs
    در آخرین مرحله نیز کافیست پنجره‌هایی را که مایل هستید در طول فرایند نصب نشان داده شوند مشخص کنید.

    Wizard Summary
    اکنون میتوانید مروری بر تمام مواردی که مشخص کرده‌اید داشته باشید و اگر مشکلی وجود داشت با استفاده از دکمه Back به عقب باز گردید و آن را تصحیح کنید. اگر مایل هستید که بعد ساخته شدن پروژه، نسخه اجرایی آن هم ساخته شود مورد Build a Release را نیز انتخاب کنید.

  22. #22
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    صبر کنید هنوز هست!!!!!!!!

  23. #23
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    ارسال متغير بصورت ByRef و ByValاگر موقع تعريف يک تابع قبل از نام متغير از عبارت ByRef استفاده نماييم هنگام فراخوانی تابع با قراردادن متغيری در تابع که دارای مقدارميباشد ، پس از محاسبات ، مقدار متغير نيز تغيير ميکند. در ضمن مقدار تابع با آخرين مقدار متغير محاسبه ميگردد:

    Function Use_ByRef(ByRef intVar As Integer)
    intVar = intVar + 1
    Return intVar
    End Function

    Dim intMyVar As Integer
    intMyVar = 1
    Response.Write(intMyVar & "-----" & Use_ByRef(intMyVar))

  24. #24
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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


    ببخشید یادم رفت : ولی اگر در مثال فوق ازByVal استفاده کنيم ، پس از محاسبات مقدار متغير تغيير نميکند و نيز مقدار تابع با مقدار اوليه متغير محاسبه ميشود:

    FunctionUse_ByVal(ByVal intVar As Integer)
    intVar = intVar + 1
    Return intVar
    End Function

    Dim intMyVar As Integer
    intMyVar = 1
    Response.Write(intMyVar & "-----" & Use_ByVal(intMyVar))

  25. #25
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    متغير Staticاگر درون تابعی متغيری را بصورت Static تعريف نماييم و مقدار اين متغير طي عمليات تابع تغيير نمايد در هرفراخوانی متغير ياد شده با آخرين مقدارخود در محاسبات شرکت ميکند.
    اين مورد بر خلاف تعريف متغيير بوسيله دستور Dim است . چون در Dim متغيير بمحض تعريف شدن دوباره ، مقدار قبلي خود را از دست ميدهد.

    FunctionUse_Static()
    Static intCount As Integer
    intCount = intCount+1
    Return intCount
    End Function

    Response.Write( "
    " &
    Use_Static)

    Response.Write( "
    " &
    Use_Static)

    Response.Write( "
    " &
    Use_Static)

  26. #26
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    تعریف توابع به صورت overloads
    در نظر بگيريد كه در جايي از برنامه خود احتياج داشته باشيد كه يك فانكشن را فراخواني و پارامترهاي ورودي آنرا كه استرينك است به آن پاس نماييد. حال اگر شما مجبور باشيد در مواقعي خاص به اين فانكشن بجاي استرينگ ، عدد يا يك متغيير از نوع ديگري پاس كنيد ، چكار بايد كرد؟ آيا بايد دو تا فانكشن با نامهاي متفاوت و نوع عملكرد متفاوت تعريف نمود ؟ آيا راه حل ديگري وجود ندارد؟
    در اينجا راه حل ديگري نيز وجود دارد كه اگر دو يا چند تابع را با يک نام ثابت ولی تعداد يا نوع متغير متفاوت در يک کلاس تعريف نماييم ميتوانيم از هر کدام برحسب نياز استفاده کنيم:

    Function Use_OverLoads(ByVal strVar1 As String, ByVal strVar2 As String)As String
    Return strVar1 & strVar2
    EndFunction

    Function Use_OverLoads (ByVal intVar As Integer) As Integer
    Return intVar + intVar
    EndFunction

    Response.Write(Use_OverLoads (5))
    Response.Write("
    " & Use_OverLoads("Over", "Loads"))

  27. #27
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    تشخیص وجود یا عدم وجود فایل :
    فایل های ضمیمه فایل های ضمیمه

  28. #28
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    اینم بد نیست یه نگاهی بهش بندازین :
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip Tb.zip‏ (4.1 کیلوبایت, 174 دیدار)

  29. #29
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    در مورد شبکه هست :
    فایل های ضمیمه فایل های ضمیمه

  30. #30
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

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

  31. #31
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    این واقعاً بی نظیر هست خودم ساختمش: یه explorer هست.
    فایل های ضمیمه فایل های ضمیمه

  32. #32
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    مدیریت کامل کاربری :
    فایل های ضمیمه فایل های ضمیمه

  33. #33
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    امیدوارم که بدردتون خورده باشه.
    یه نگاهی هم به این صفحه بندازین :

  34. #34
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    آموزش کامل نحوه ایجاد ارتباط بین VB6 و Crystal Report 10 با نکات مهم .
    دانلود

  35. #35
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

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

  36. #36
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

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

  37. #37
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    انتقال اطلاعات از یک پایگاه به پایگاه داده دیگر :

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

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

    » برای مثال شما دو پایگاه داده با نام های mdb1 ( پایگاه داده مادر ) و mdb2 ( پایگاه داده فرعی ) که دارای ساختار یکسانی هستند را در نظر بگیرید . ما قصد داریم اطلاعات موجود در پایگاه داده فرعی را بر روی اطلاعات موجود در پایگاه داده مادر بیفزاییم . پس در این حالت اطلاعاتی باید از پایگاه داده فرعی یا رابط به پایگاه داده مادر کپی گردند که نظیری در پایگاه داده مادر ندارند تا به این صورت از ذخیره سازی داده های تکراری در پایگاه داده مادر جلوگیری شود .

    _ به دلیل این که انجام این کار در یک خط کد نویسی صورت می گیرد ما دیگر توانایی مراقبت از ورود داده های تکراری را نداریم . پس بهتر است که انجام این کار را هم بر عهده خود دستور قرار دهیم . به این صورت که اگر ما در پایگاه داده مادر فیلدی را به عنوان کلید قرار دهیم در هنگام انتقال داده ها این کلید به طور خودکار اجازه ورود داده های تکراری را نخواهد داد و فقط داده های کپی خواهند شد که در فیلد کلید نظیری ندارند . برای مثال شما دو پایگاه داده را به صورت زیر تنظیم نمایید :
    »
    پایگاه داده مادر ( mdb1 ) :

    --> یک جدول با نام
    Table1 دارای فیلد های زیر :

    >
    ID : از نوع عددی به عنوان کلید

    >
    Name : از نوع متن

    >
    Family : از نوع متن

    »
    پایگاه داده فرعی ( mdb2 ) :

    --> یک جدول با نام
    Table2 دارای فیلد های زیر :

    >
    ID : از نوع عدد

    >
    Name : از نوع متن

    >
    Family : از نوع متن


    » دستور :

    جدول فرعی SELECT _ FROM ' مسیر و نام جدول اصلی ' IN جدول اصلی INSERT INTO

    _
    در این دستور فقط مسیر و نام پایگاه داده مقصد ذکر می شود و پایگاه داده مبدا باید در اجرای برنامه گشوده شود . حال مثال را کامل می کنیم . ابتدا شما باید از دیالوگ References گزینه Microsoft DAO 3.51 Object Libraryرا تیک بزنید و کد زیر را در دکمه ای قرار دهید :
    ()Private Sub CmdCopy_Click
    Dim DBase AsDatabase

    Dim SQL As String

    (Set DBase = OpenDatabase(App.Path & "\mdb2.mdb", True, False

    " SQL = " INSERT INTO Table1 IN '" & App.Path & "\mdb1.mdb' SELECT * FROM Table2

    DBase.Execute SQL


    " vbInformation , " Copy Completed , "
    عمل انتقال اطلاعات با موفقیت به پایان رسید" Msgbox


  38. #38
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    اگه خوبه تا باز هم بفرستم؟!!!!!!!!!!

  39. #39
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    چگونه می توان هندل ( Handle ) یک Textbox را در یک پنجره بدست آورد ؟
    پاسخ : برای بدست آوردن هندل پنجره برنامه ای که هم اکنون باز است از تابع FindWindow استفاده کنید . نحوه declare کردن آن بصورت زیر است :
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    فرض کنید caption فرم برنامه مورد نظرتان در متغیر strWindowName قرار داشته باشد . با دستور زیر می توانید هندل پنجره آنرا بدست آورید :
    Dim hwndFound As Long
    hwndFound = FindWindow(vbNullString, strWindowName)
    نکته : برای پیدا کردن هندل پنجره برنامه ای که caption آنرا بطور دقیق نمی دانید می توانید از تابع FindWindowLike استفاده کنید .
    حال که هندل پنجره مورد نظرتان را استخراج کردید می توانید با استفاده از تابع FindWindowEx هندل اشیا موجود در آن پنجره را بدست آورید . نحوه declare کردن این تابع بصورت زیر است :
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    این تابع را بصورت زیر استفاده کنید :
    htextbox = FindWindowEx(hwndFound, ByVal 0&, "ThunderRT6TextBox", vbNullString)
    که ThunderRT6Textbox نام کلاس Rich Textbox ها در ویژوال بیسیک 6 است . دستور فوق هندل اولین Textbox موجود در پنجره را به شما بر می گرداند . برای بدست آوردن هندل سایر Textbox ها از حلقه زیر استفاده کنید :
    Dim lChild As Long
    Dim lLast As Long

    Do
    lLast = lChild
    lChild = FindWindowEx(lParent, lChild, "ThunderRT6Textbox", vbNullString)
    Loop While lChild

  40. #40
    کاربر دائمی آواتار parsiyan_mohsen
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    شیراز
    پست
    389

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

    بعلت عدم وجود اشاره گر در ويژوال بيسيک عمليات کار با فايلها در آن نسبتاً ساده می باشد .
    بطور کلی فايلها بر دو نوع هستند :
    1 - فايلهای متنی Text File : اين فايلها فقط شامل کاراکترهای اسکی و برخی کاراکترهای خاص مانند انتهای خط و انتهای فايل هستند .
    ۲ - فايلهای باينری Binary File : شامل هر نوع کاراکتری می توانند باشند و کاربردهای گسترده ای دارند مانند بانک های اطلاعاتی ، فايلهای اجرائی ، فايلهای گرافيکی و غيره
    ويژوال بيسيک می تواند با هر دو نوع فايل کار کند .

    چگونگی باز کردن فايلها

    قبل از اينکه بتوان عمليات ورودی/خروجی را روی يک فايل انجام داد ابتدا بايستی آنرا باز کرد . باز کردن فايلها در ويژوال بيسيک توسط دستور Open انجام می شود . فرمت کلی اين دستور بصورت زير است :

    Open filename [For mode] [Access access][lock] As [#]filenumber [Len=reclen]x

    [ پارامترهای داخل کروشه اختياری هستند . ]
    filename نام فايلی است که می خواهيم آنرا باز کنيم .
    mode حالت باز کردن فايل است . اين حالتها عبارتند از :
    - Input : فايل بعنوان ورودی باز می شود .
    - Output : فايل بعنوان خروجی باز می شود .
    - Binary : فايل از نوع باينری باز می شود .
    - Append : فايل طوری باز می شود که بتوان به انتهای آن چيزی اضافه کرد .
    - Random
    access نوع دسترسی به فايل را مشخص می کند . انواع دسترسيها عبارتند از :
    - Read : خواندن فايل
    - Write : نوشتن در فايل
    - ReadWrite : خواندن و نوشتن فايل
    lock نوع دسترسی ساير برنامه ها به اين فايل را مشخص می کند . انواع دسترسيها عبارتند از :
    - Shared : دسترسی اشتراکی
    - Lock Read
    - Lock Write
    - Lock Read Write
    filenumber عددی است که ويژوال بيسيک از آن برای دسترسی به فايل استفاده می کند .اين عدد بايستی برای هر فايل منحصر بفرد و بين ۱ تا ۵۱۱ باشد . برای بدست آوردن اولين شماره آزاد می توان از تابع FreeFile استفاده کرد .
    reclen :طول بافر فايل است . اين عدد بايستی از ۳۲۷۶۷ کو چکتر باشد .

    در صورتی که فايلی که توسط filename مشخص شده وجود نداشته و فايل برای Append ، Binary ، Output و يا Random باز شده باشد در اينصورت يک فايل جديد با اين نام ساخته می شود .
    در صورتی که فايل بصورت باينری باز شده باشد پارامتر Len ناديده گرفته می شود .

    چگونگی بستن فايل

    پس از پايان کار با فايل برای بستن آن از دستور Close استفاده می کنيم . فرمت اين دستور بصورت زير است :

    Close #filenumber

    دستور Close بدون هيچ پارامتری تمام فايلهای باز را می بندد .

    کار با دايرکتوری

    ۱ - گرفتن Dir : توسط دستور Dir می توان نام فايلهای موجود در يک دايرکتوری را بر اساس پارامترهايي که به آن می دهيم پيدا کنيم . برای مثال :

    Myfile=Dir$("c:\text\*.txt)"x


    دستور فوق نام اولين فايل موجود در دايرکتوری C:\TEXT را که پسوند آنها txt باشد در متغير Myfile قرار می دهد . اگر دستور فوق را بدون پارامتر مجدداً اجرا کنيم نام دومين فايل برگرداننده می شد و الی آخر
    Dir دارای يک پارامتر اختياری است که نوع فايلهای مورد نظر را نيز می توان با آن مشخص نمود . مثال :

    Myfile=Dir$("c:\text\*.txt",vbNormal)x

    مقادير ممکن اين پارامتر عبارتند از :
    vbNormal ، vbHidden ، vbSystem ، vbDirectory
    ۲ - تغيير دايرکتوری : برای تغيير دايرکتوری از دستور ChDir استفاده می شود مثال :
    ChDir "c:\windows\system32"x
    ۳ - تغيير درايو : برای تغيير درايو از دستور ChDrive استفاده می شود مثال :
    ChDrive "E:"x
    ۴ - ساخت دايرکتوری : برای ايجاد دايرکتوری جديد از دستور MKDir استفاده می شود مثال :
    MKDir "c:\MyFolder"x
    ۵ - حذف دايرکتوری : برای حذف دايرکتوری از دستور RmDir استفاده می شود مثال :
    RmDir "C:\MyFoler"x

صفحه 1 از 6 123 ... آخرآخر

برچسب های این تاپیک

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

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