نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: آموزش Api در VB

  1. #1
    عضو سایت
    گاه برای ساختن باید ویران کرد، گاه برای داشتن باید گذشت ، و گاه در اوج تمنا باید نخواست!
    تاریخ عضویت
    Jun 2011
    محل سکونت
    یک خانه
    نوشته ها
    25,040
    تشکر تشکر کرده 
    3,527
    تشکر تشکر شده 
    5,275
    تشکر شده در
    3,184 پست
    حالت من : Akhmoo
    قدرت امتیاز دهی
    4452
    Array

    آموزش Api در VB

    مقدمه


    API رو می توان قلب ویندوز فرض کرد . زیرا ما هر کاری که در ویندوز انجام می دهیم در واقع یکی از تابع های َAPI فراخوانی می شود .


    برای مثال وقتی شما در محیط برنامه نویسی vb وارد شده و یا هر محیط دیگری پروژه جدیدی را آغاز می کنید و فرم اولیه را روی صفحه آورده و آماده طراحی می شوید در واقع استفاده از Api را آغاز کرده اید در حقیقت در همین لحظه تابع Create Window فراخوانی شده و فرم مزبور در مقابل شما قرار می گیرد .

    Api شاید به نظر پیچیده به نظر برسه با بیش از 1000 تابع ولی یک امکان بسیار قوی است .

    توابع Api در یکسری فایل ها با پسوند DLL قرار دارند . DLL مخفف ( Dynamic Linked Library ) یا همان کتابخانه پیوندی پویا می باشد که می تواند شامل یکسری کد و داده ( مثل تصویر ، صوت و ... ) باشد .

    مهمترین DLL ها kernel32.dll , user32.dll , shell32.dll و ... می باشد .


    طریقه استفاده از Api

    | Public | Private ] Declare Function name Lib "libname"[Alias "aliasname"](arglist) As type


    Declare Function : یعنی شما قصد استفاده از روال تابع Function را دارید
    name : نام تابع مورد نظر
    libname : نام Dll مورد نظر
    aliasname : این قسمت اختیاری است . وقتی استفاده می شود که در زبان برنامه نویسی نام اصلی این تابع وجود داشته باشد .
    arglist : این قسمت هم می تونه اختیاری باشه از این قسمت برای فرستادن پارامتر ها استفاده می شه .

    البته به چند نوع دیگه هم می شه تعریف کرد .


    اگه این تعریف رو دیده باشید حتما می گید خیلی سخته ولی یه راه آسون بهتون می گم که بیشتر API ها در آن موجود است . می توانید از برنامه کاربردی API Text Viewer استفاده نمایید که در پوشه نصب vb موجود است .


    جلسه اول


    تابع Copy File :

    این تابع یک فایل را در محل مورد نظر کپی می کنه .

    Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

    lpExistingFileName : این پارامتر یک متغیر از نوع String است که مسیر و نام فایل مبدا یعنی فایلی که قرار است کپی شه .
    lpNewFileName : این پارامتر یک متغیر از نوع String است که مسیر و نام فایل مقصد را مشخص می کنه .
    bFailIfExists : این پارامتر از نوع Boolean ، که اگر این پارامتر True باشه و فایل مقصد قبلا وجود داشته باشه کار تابع نیمه کاره می مونه ولی اگه False باشه فایل قبلی Over Write می شه .

    خروجی این تابع اگه Ture یا یک باشه یعنی تابع کار خودشو به درستی انجام داده و اگه False یا صفر باشه کار تابع نیمه تمام مانده است .




    تابع Delete File :


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

    اصل تابع :
    Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

    پارامتر ها :
    lpFileName : این تابع دارای یک پارامتر است که از نوع String می باشد و مسیر و نام فایلی که قرار است از روی دیسک پاک شود را مشخص می کند .

    خروجی :
    از نوع Boolean بوده و اگر یک یا True باشه یعنی تابع به درستی کار خود را انجام داده است .




    تابع Move File :

    از این تابع برای انتقال یک فایل از یک مسیر به یک مسیر دیگه استفاده می شه .

    اصل تابع :
    Public Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

    پارامتر ها :
    lpExistingFileName : نوع String ، مسیر و نام فایل مبدا
    lpNewFileName : نوع String ، مسیر و نام فایل مقصد
    خروجی :
    نوع Boolean ، یک یا True ---> کار تابع انجام شده است .
    صفر یا False ---> کار تابع انجام نشده است .




    تابع GetFileAttributes :

    این تابع خصوصیات فایل از قبیل Readonly و System و... را برمی گرداند .

    اصل تابع :
    Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

    پارامتر ها :
    lpFileName : نوع String ، مسیر و نام فایل .

    خروجی :
    تابع می تواند چند حالت زیر را داشته باشد :
    1). FILE_ATTRIBUTE_ARCHIVE : مشخص می کند که فایل یا فهرست خاصیت ARCHIVE دارد و مقدار آن برابر &H20 است
    2). FILE_ATTRIBUTE_COMPRESSED : مشخص می کنه که فایل فشرده است و مقدار آن برابر &H800 است .
    3). FILE_ATTRIBUTE_DIRECTORY : مشخص می کنه که مسیری که در lpFileName داده شده یک فهرست است و مقدار آن برابر &H10 است .
    4). FILE_ATTRIBUTE_HIDDEN : مشخص می کنه که فایل خاصیت HIDDEN دارد و مقدار آن برابر &H2 است .
    5). FILE_ATTRIBUTE_NORMAL : مشخص می کنه که فایل خاصیت NORMAL دارد و مقدار آن برابر &H80 است .
    6). FILE_ATTRIBUTE_READONLY : مشخص می کنه که فایل خاصیت READONLY دارد و مقدار آن برابر &H1 است .
    7). FILE_ATTRIBUTE_SYSTEM : مشخص می کنه که فایل خاصیت SYSTEM دارد و مقدار آن برابر &H4 است .
    8). FILE_ATTRIBUTE_TEMPORARY : مشخص می کنه که فایل از نوع Temp است و مقدار آن برابر &H100 است .

    گزینه های بالا می توان به صورت ثابت تعریف کرد برای مثال : Const FILE_ATTRIBUTE_HIDDEN = &H2





    تابع SetFileAttributes :


    این تابع دقیقا برعکس تابع قبلی عمل می کنه یعنی می توان خاصیت های فایل را تغییر داد .

    اصل تابع :
    Public Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

    پارامتر ها :
    lpFileName : نوع String ، مسیر و نام فایل .
    dwFileAttributes : از نوع Long ، دقیقا همان مقدارهایی خروجی تابع GetFileAttributes است که عبارتند از :

    1). FILE_ATTRIBUTE_ARCHIVE : مشخص می کند که فایل یا فهرست خاصیت ARCHIVE دارد و مقدار آن برابر &H20 است
    2). FILE_ATTRIBUTE_COMPRESSED : مشخص می کنه که فایل فشرده است و مقدار آن برابر &H800 است .
    3). FILE_ATTRIBUTE_DIRECTORY : مشخص می کنه که مسیری که در lpFileName داده شده یک فهرست است و مقدار آن برابر &H10 است .
    4). FILE_ATTRIBUTE_HIDDEN : مشخص می کنه که فایل خاصیت HIDDEN دارد و مقدار آن برابر &H2 است .
    5). FILE_ATTRIBUTE_NORMAL : مشخص می کنه که فایل خاصیت NORMAL دارد و مقدار آن برابر &H80 است .
    6). FILE_ATTRIBUTE_READONLY : مشخص می کنه که فایل خاصیت READONLY دارد و مقدار آن برابر &H1 است .
    7). FILE_ATTRIBUTE_SYSTEM : مشخص می کنه که فایل خاصیت SYSTEM دارد و مقدار آن برابر &H4 است .
    8). FILE_ATTRIBUTE_TEMPORARY : مشخص می کنه که فایل از نوع Temp است و مقدار آن برابر &H100 است .
    [دل خوش از آنیم که حج میرویم؟ ..]
    غافل از آنیم که کج میرویم



    [SIGPIC][/SIGPIC]


  2. #2
    عضو سایت
    گاه برای ساختن باید ویران کرد، گاه برای داشتن باید گذشت ، و گاه در اوج تمنا باید نخواست!
    تاریخ عضویت
    Jun 2011
    محل سکونت
    یک خانه
    نوشته ها
    25,040
    تشکر تشکر کرده 
    3,527
    تشکر تشکر شده 
    5,275
    تشکر شده در
    3,184 پست
    حالت من : Akhmoo
    قدرت امتیاز دهی
    4452
    Array

    پیش فرض

    جلسه دوم


    تابع Open File :

    از این تابع برای ساختن ، باز کردن و حذف کردن یک فایل می توان استفاده کرد ولی کار اصلی آن بدست آوردن دستگیره (Handle) یک فایل می باشد .

    اصل تابع :
    Public Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long

    پارامتر ها :
    lpFileName : نام و مسیر مورد نظر
    lpReOpenBuff : این متغیر به ساختار OFSTRUCT برای درایفت اطلاعات فایل وقتی برای اولین بار باز می شود ، اشاره می کند .
    Public Type OFSTRUCT
    cBytes As Byte
    fFixedDisk As Byte
    nErrCode As Integer
    Reserved1 As Integer
    Reserved2 As Integer
    szPathName(OFS_MAXPATHNAME) As Byte
    End Type
    - cBytes : ندازه ساختار .
    - fFixedDisk : اگر این فیلد غیر صفر باشد یعنی فایل از هارد است
    - nErrCode : اگر فایل باز نشود شماره خطا را درون خود نگه داری می کند
    - Reserved1 و Reserved2 : رزرو شده است
    - szPathName : این فیلد شامل مسیر و نام فایل می باشد
    Public Const OFS_MAXPATHNAME = 128

    wStyle : این پارامتر می تواند مقادیر زیر را داشته باشد :
    OF_CREATE : با مقدار عددی &H1000 وقتی استفاده می شود که بخواهیم یک فایل ایجاد کنیم .
    OF_DELETE : با مقدار عددی &H200 فایل مورد نظر را Delete می کند
    OF_EXIST : با مقدار عددی &H4000 وقتی استفاده می کنیم که بخواهیم بفهمیم که فایل مورد نظر وجود دارد یا خیر اگر وجود داشته باشد مقدار 1 بر فردانده می شود
    OF_PARSE : با مقدار عددی &H100 فقط ساختار OFSTRUCT را پر می کند
    OF_READ : با مقدار عددی &H0 و فایل را فقط برای عملیات خواند باز می کند
    OF_READWRITE : با مقدار عددی &H2 و فایل را برای خواندن و نوشتن باز می کند
    OF_REOPEN : با مقدار عددی &H8000 فایل را با اطلاعاتی که در ساختار OFSTRUCT وجود دارد دوباره باز می کند .
    OF_WRITE : با مقدار عددی &H1 و فایل را فقط برای نوشتن باز می کند

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





    تابع GetFileSize :

    این تابع اندازه فایل را به بایت بر می گرداند .

    اصل تابع :
    Public Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long

    پارامتر ها :
    hFile : دستگیره فایل می باشد که با استفاده از تابع OpenFile می توان به دست آورد .
    lpFileSizeHigh : در vb برابر صفر قرار می دهیم ( این پارامتر از نوع اشاره گر است )

    خروجی :
    اندازه فایل مورد نظر برگردانده می شود





    تابع FindFirstFile :

    این تابع برای پیدا کردن یک فایل با مشخصاتی که به آن داده می شه می گردد .

    اصل تابع :
    Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

    پارامتر ها :
    lpFileName : این پارامتر از نوع String بوده و نام فایل مورد جستجو یا شرایط مورد نظر برای فایل را شامل می شه .
    نام فایل : "c:\vb.exe"
    شرایط پسوندی : "c:\*.exe"
    lpFindFileData : این متغیر اشاره می کند به ساختار WIN32_FIND_DATA و هر فایلی که توسط تابع پیدا شود اطلاعات آن در این ساختار ذخیره می شود .
    Public Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
    End Type
    dwFileAttributes : خصوصیات فایل پیدا شده را مشخص می کند . خصوصیاتی که در توابع GetFileAttributes و SetFileAttributes گفته شد .
    ftCreationTime : این فیلد از نوع FILETIME می باشد و زمان ساخت فایل پیدا شده را مشخص می کنه .
    ftLastAccessTime : این فیلد از نوع FILETIME می باشد و زمان آخرین دسترسی به فایل پیدا شده را مشخص می کنه .
    ftLastWriteTime : این فیلد از نوع FILETIME می باشد و زمان آخرین باری که فایل پیدا شده نوشته شده را مشخص می کنه .
    nFileSizeHigh : بالاترین اندازه فایل را به بایت را بر می گرداند .
    nFileSizeLow : پایین ترین اندازه فایل را به بایت بر می گرداند .
    cFileName : این پارامتر نام فایل پیدا شده را بر می گرداند . و MAX_PATH برابر 255 است .
    cAlternate : این پارامتر مثل پارامتر بالایی با تفاوت اینکه فقط 8 کاراکتر نام فایل و 3 کاراکتر پسوند فایل می باشد .

    خروجی :
    اگر این تابع کار خود را به خوبی به اتمام برساند دستگیره یک فایل را بر می گرداند اگر تابع کار خود را به خوبی انجام ندهد مقدار 1- را بر می گرداند .

    ساختار FILETIME :
    Public Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type
    توضیح خاصی ندارد ولی شاید بعدا بگم .





    تابع FindNextFile :
    این تابع فایل دیگری را با خصوصیاتی که در تابع FindFirstFile تعریف شده را پیدا می کنه .

    اصل تابع :
    Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

    پارامتر ها :
    hFindFile : این پارامتر از نوع عددی است و دستگیره فایلی را که توسط تابع پیدا شده می باشد .
    lpFindFileData : این پارامتر قبلا در تابع FindFirstFile گفته شده است .

    خروجی :
    اگر تابع کار خود را به خوبی انجام دهد مقدار یک یا True بر گردانده می شود .
    [دل خوش از آنیم که حج میرویم؟ ..]
    غافل از آنیم که کج میرویم



    [SIGPIC][/SIGPIC]


  3. #3
    عضو سایت
    گاه برای ساختن باید ویران کرد، گاه برای داشتن باید گذشت ، و گاه در اوج تمنا باید نخواست!
    تاریخ عضویت
    Jun 2011
    محل سکونت
    یک خانه
    نوشته ها
    25,040
    تشکر تشکر کرده 
    3,527
    تشکر تشکر شده 
    5,275
    تشکر شده در
    3,184 پست
    حالت من : Akhmoo
    قدرت امتیاز دهی
    4452
    Array

    پیش فرض

    جلسه سوم
    تابع FindClose :

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

    اصل تابع :
    Public Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long

    پارامتر ها :
    hFindFile : این پارامتر از نوع عددی و دستگیره فایلی می باشد که با الگوی تابع FindFirstFile پیدا شده است .

    خروجی :
    اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .





    تابع CreateDirectory :

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

    اصل تابع :
    Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

    پارامتر ها :
    lpPathName : این پارامتر از نوع رشته می باشد و مسیر و نام فهرست جدید را مشخص می کند .
    lpSecurityAttributes : این پارامتر از نوع ساختار SECURITY_ATTRIBUTES می باشد و برای تعین خصوصیات حفاظت فهرست به کار می رود .

    Public Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
    End Type

    nLength : اندازه ساختار می باشد و تابع Len در VB مشخص می شود .
    lpSecurityDescriptor :
    bInheritHandle :

    خروجی :
    اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .






    تابع RemoveDirectory :

    از این تابع برای حذف یک فهرست استفاده می شود .

    اصل تابع :
    Public Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long

    پارامتر ها :
    lpPathName : این پارامتر از نوع رشته می باشد و مسیر و نام فهرستی که قرار است پاک شود .

    خروجی :
    اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .





    تابع GetCurrentDirectory:

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

    اصل تابع :
    Public Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectory" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

    پارامتر ها :
    nBufferLength : این پارامتر از نوع عدد بوده و طول فهرست فعال را مشخص می کند .
    lpBuffer : از نوع رشته بوده و فهرست فعال درون این متغیر قرار می گیرد .

    مثال :
    dim s as string
    s= string(255,0)
    GetCurrentDirectory 255,s
    msgbox s





    تابع SetCurrentDirectory
    :

    این تابع دقیقا بر عکس تابع Get CurrentDirectory است یعنی می توان مسیر یا فهرست فعال سیستم را تعیین کرد

    اصل تابع :
    Public Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long

    پارامتر ها :
    lpPathName : این پارامتر از نوع String و مسیر یا فهرستی که باید فهرست فعال سیستم شود را مشخص می کند

    خروجی :
    اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .
    [دل خوش از آنیم که حج میرویم؟ ..]
    غافل از آنیم که کج میرویم



    [SIGPIC][/SIGPIC]


  4. #4
    عضو سایت
    گاه برای ساختن باید ویران کرد، گاه برای داشتن باید گذشت ، و گاه در اوج تمنا باید نخواست!
    تاریخ عضویت
    Jun 2011
    محل سکونت
    یک خانه
    نوشته ها
    25,040
    تشکر تشکر کرده 
    3,527
    تشکر تشکر شده 
    5,275
    تشکر شده در
    3,184 پست
    حالت من : Akhmoo
    قدرت امتیاز دهی
    4452
    Array

    پیش فرض

    جلسه چهارم
    تابع GetDiskFreeSpaceEx :

    این تابع اطلاعاتی درباره حجم درایو ها می دهد ( فضای خالی و فضای کل )

    اصل تابع :
    Public Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal IpDirectoryName As String, IpFreeByteAvailableToCaller As Currency, IpTotalNumberOfBytes As Currency, IpTotalNumberOfFreeBytes As Currency) As Long

    پارامتر ها :
    IpDirectoryName : این پارامتر از نوع رشته بوده و نام دیسک درایو مورد نظر را مشخص می کند .
    IpFreeByteAvailableToCaller : این پارامتر از نوع عددی بوده و مقدار فضای خالی قابل استفاده دیسک را به Byte بر می گرداند .
    IpTotalNumberOfBytes : این پارامتر از نوع عددی بوده و فضای کل دیسک درایو را به Byte بر می گرداند .
    IpTotalNumberOfFreeBytes : این پارامتر از نوع عددی بوده و فضای خالی دیسک درایو را به Byte بر می گرداند .

    خروجی :
    اگه خروجی این تابع برابر 1 یا True باشه -- > تابع کارش و به درستی انجام داده .





    تابع GetDriveType :

    این تابع نوع هر یک از دیسک درایو های سیستم را مشخص می کند انواعی از قبیل فلاپی ، سی دی و دیسک سخت .

    اصل تابع :
    Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long


    پارامتر ها :
    lnDrive : این پارامتر از نوع رشته بوده و درایو مورد نظر را مشخص می کند

    خروجی :
    خروجی این تابع مقادیر زیر می باشد :
    DRIVE_REMOVABLE : برابر مقدار 2 می باشد و مشخص می کند دیسک درایو مورد نظر از نوع قابل حمل است (Floppy drive )
    DRIVE_FIXED : برابر مقدار 3 بوده و مشخص می کند که درایو مورد نظر از نوع ثابت (Hard disk) است .
    DRIVE_REMOTE : برابر مقدار 4 بوده و مشخص می کنه که درایو مورد نظر از نوع درایو شبکه است .
    DRIVE_CDROM : برابر مقدار 5 مشخص می کنه که درایو مورد نظر از نوع CD-Drive است .
    DRIVE_RAMDISK : برابر مقدار 6 و مشخص می کنه که درایو مورد نظر از نوع درایو های ساخته شده در Ram می باشد .





    تابع GetLogicalDriveStrings :

    این تابع دیسک درایو های موجود در سیستم را بر می گرداند .

    اصل تابع :
    Public Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long


    پارامتر ها :
    nBufferLength : این پارامتر از نوع عددی و مقدار فضای لازم را برای ذخیره سازی نام دیسک درایو مشخص می کند .
    lpBuffer : این پارامتر از نوع رشته بوده و نام دیسک درایو در این پارامتر قرار می گیرد .

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

    مثال :

    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)
    For i = 1 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)))
    Next i





    تابع GetVolumeInformation :

    این تابع اطلاعات مربوط به یک دیسک درایو از قبیل نوع سیستم ، بر چسب ، شماره سریال و ... را بر می گرداند .

    اصل تابع :
    Public Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

    پارامتر ها :
    lpRootPathName : این پارامتر از نوع رشته بوده و نام درایو مورد نظر را مشخص می کند .
    lpVolumeNameBuffer : این متغیر از نوع رشته بوده و بر چسب (Label ) دیسک درایو مورد نظر را بر می گرداند .
    nVolumeNameSize : این متغیر از نوع عددی بوده و فضای لازم برای متغیری که شامل برچسب می باشد را مشخص می کند .
    lpVolumeSerialNumber : این متغیر اشره گری به یک عددی می باشد که شماره سریال دیسک درایو می باشد .
    lpMaximumComponentLength : این متغیر نیز از نوع عددی می باشد و حداکثر طول فایل سیستم را بر می گرداند .
    lpFileSystemFlags : این متغیر عددی بوده و من چیز خاصی ازش نمی دونم .
    lpFileSystemNameBuffer : این پارامتر از نوع رشته بوده و نام فایل سیستم را بر می گردونه .
    nFileSystemNameSize : این پارامتر از نوع عددی بوده و مقدار لازم برای متغیر نام فایل سیستم را مشخص می کند .

    خروجی :
    اگه خورجی 1 یا True باشه -- > تابع کارش و به درستی انجام داده .





    تابع SetVolumeLabel :

    از این تابع برای تعیین بر چسب ( Label ) یک دیسک درایو استفاده می شود .

    اصل تابع :
    Public Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long

    پارامتر ها :
    lpRootPathName : این پارامتر از نوع رشته بوده و نام دیسک درایو مورد نظر را مشخص می کند .
    lpVolumeName : این پارامتر از نوع رشته بوده و برچسب جدید دیسک گردان مورد نظر را مشخص می کند .

    خروجی :
    اگه خورجی 1 یا True باشه -- > تابع کارش و به درستی انجام داده .
    [دل خوش از آنیم که حج میرویم؟ ..]
    غافل از آنیم که کج میرویم



    [SIGPIC][/SIGPIC]


  5. #5
    عضو سایت
    گاه برای ساختن باید ویران کرد، گاه برای داشتن باید گذشت ، و گاه در اوج تمنا باید نخواست!
    تاریخ عضویت
    Jun 2011
    محل سکونت
    یک خانه
    نوشته ها
    25,040
    تشکر تشکر کرده 
    3,527
    تشکر تشکر شده 
    5,275
    تشکر شده در
    3,184 پست
    حالت من : Akhmoo
    قدرت امتیاز دهی
    4452
    Array

    پیش فرض

    تابع FindWindow :

    از این تابع برای یافتن دستگیره (Handle) ، پنجره استفاده می شود که عنوان (caption) آن و یا نام class آن را می دانیم .
    اصل تابع :
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    پارامتر ها :
    lpClassName : این پارامتر از نوع رشته بوده و نام کلاس یک پنجره را مشخص می کند .
    lpWindowName : این پارامتر نیز از نوع رشته بوده و عنوان یک پنجره را مشخص می کند .

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

    به عنوان مثال پنجره My computer ویندوز مشخصاتی به صورت زیر دارد :
    IpclassName = “CabinetWClass”
    IpWindowName = “My Computer”
    لازم ه که بدونید که نام کلاس(class) یک پنجره را با استفاده از تابع GetClassName بدست آورد که در ادامه توضیح می دهم .


    تابع CloseWindow :

    از این تابع برخلاف نامی که داره برای کمینه کردن (Minimize) پنجره استفاده می شود .
    اصل تابع :
    Public Declare Function CloseWindow Lib "user32" (ByVal hWnd As Long) As boolean

    پارامتر ها :
    hWnd: این پارامتر از نوع عددی بوده و شامل دسگیره پنجره ای می باشد که قرار است Minimize شود .
    خروجی :
    خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود .


    تابع DestroyWindow :

    از این تابع برای خارج کردن یک پنجره از حافظه مورد استفاده قرار می گیرد .
    اصل تابع :
    Public Declare Function DestroyWindow Lib "user32" (ByVal hWnd As Long) As boolean

    پارامتر ها :
    hWnd: این پارامتر از نوع عددی بوده و شامل دسگیره پنجره ای می باشد که قرار است از حافظه خارج شود .
    خروجی :
    خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود .

    مثال :
    کد:
    Private Declare Function FindWindow Lib "user32" Alias  "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As  String) As Long
    Private Declare Function CloseWindow Lib "user32" (ByVal hWnd As Long) As boolean
    Private Sub Command1_Click()
    Dim hwnd as long
    hwnd = FindWindow ( vbNullString , “My Computer”)
    CloseWindow hwnd
    End Sub
    در این مثال دستگیره پنجره My Computer توسط تابع FindWindow پیدا می شه بعد اون پنجره رو کمینه می کنه به وسیله تابع CloseWindow .


    تابع FlashWindow :

    این تابع باعث می شود که قسمت Header پنجره مورد نظر شروع به چشمک زدن کند . اگر در حالت Minimize باشد ، پنجره در حالت Minimize و در TaskBar چشمک می زند .
    اصل تابع :
    Public Declare Function FlashWindow Lib "user32" (ByVal hWnd As Long, ByVal bInvert As Long) As Boolean

    پارامتر ها :
    hWnd : این پارامتر از نوع عددی بوده و شامل دسگیره پنجره ای می باشد که قرار است چشمک بزند .
    bInvert : این پارامتر از نوع عددی بوده و اگر برابر با یک باشد چشمک می زند و اگر صفر باشد پنجره چشمک نمی زند .
    خروجی :
    خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود .
    توجه : برای استفاده از این تابع باید آن را در داخل یک تایمر قرار دهید .

    تابع FlashWindowEx :

    کار این تابع دقیقا مثل FlashWindow است با این تفاوت که از یک ساختار برای این کار استفاده می کند و احتیاجی به تایمر ندارد .
    اصل تابع :
    Private Declare Function FlashWindowEx Lib "user32" (pfwi As FLASHWINFO) As Boolean
    پارامتر ها :
    pfwi : این پارامتر از نوع ساختار FLASHWINFO بوده که مشخصات چمک زدن را مشخص می کند
    ساختار FLASHWINFO

    کد:
    Private Type FLASHWINFO
            cbSize As Long
             hwnd As Long
          dwFlags As Long
           uCount As Long
       dwTimeout As Long
                            End Type
    cbSize : این پارامتر از نوع عددی بوده و شامل اندازه ساختار در حافظه می باشد برای این کار در VB از تابع Len استفاده می کنیم .
    Hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره می باشد که باید چشمک بزند .
    dwFlags : این پارامتر وضعیت چشمک زدن را مشخص می کند این پارامتر می تواند شامل یکی از موارد زیر باشد :
    - FlashW_Stop : این Flagپنجره را به حالت اول بر می گرداند و با مقدار عددی صفر .
    - FlashW_Caption : این Flag قسمت عنوان پنجره را چشمک زن می کند و با مقدار عددی &H1 .
    - Flash_Tray : این Flag باعث می شه وقتی پنجره در حالت Minimize می باشد چشمک بزند و با مقدار عددی &H2 .
    - FlashW_All : این پارامتر شامل هر دو Flag ، Flash_Tray و FlashW_Caption می باشد .
    - FlashW_Timer : این Flag باعث می شه که پنجره شروع به چشمک زدن کند تا زمانی که Flag ، FlashW_Stop فراخوانی بشه و با مقدار عددی &H4 .
    - FlashW_TimerOFG : این Flag باعث می شود که پنجره شروع به چشمک زدن کند تا زمانی که روی پنجره های دیگر قرار گیرد و با مقدار عددی &HC .
    ucount : این پارامتر از نوع عددی بوده و تعداد دفعات چشمک زدن را مشخص می کند . اگر این پارامتر برابر صفر قرار گیرد تا زمانی که پنجره بسته نشود و یا Flag خاصی مورد استفاده نگیرد چشمک می زند .
    dwTimeout : این پارامتر از نوع عددی بوده و مدت زمان فاصله میانی هر چشمک را به میلی ثانیه مشخص می کند . اگر برابر صفر قرار بگیرد از مقدار پیش فرض که برابر 500 می باشد استفاده می شود .
    خروجی :
    خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود در غیر این صورت مقدار false برگردانده می شود .

    مثال :
    کد:
    Private Declare Function FlashWindowEx Lib "user32" (pfwi As FLASHWINFO) As Boolean
    
    Private Type FLASHWINFO
            cbSize As Long 
             hwnd As Long
          dwFlags As Long
          uCount As Long
       dwTimeout As Long
                           End Type
    FlashW_Stop = 0
    FlashW_Caption = &H1
    Flash_Tray = &H2
    FlashW_All = (FlashW_Caption  or  Flash_Tray )
    FlashW_Timer = &H4
    FlashW_TimerOFG = &HC
    
    
    Private Sub Command1_Click()
    Dim  Flash As FLASHWINFO
    Flash.cbSize = Len(Flash)
    Flash.dwFlags = FlashW_Timer Or (FlashW_All)
    Flash.dwTimeout = 0
    Flash.hwnd = Me.hwnd
    Flash.uCount = 0
    
    FlashWindowEx  Flash
    End Sub
    این مثال و امتحان کنید ببینید چه جوریه .
    [دل خوش از آنیم که حج میرویم؟ ..]
    غافل از آنیم که کج میرویم



    [SIGPIC][/SIGPIC]


  6. #6
    عضو سایت
    گاه برای ساختن باید ویران کرد، گاه برای داشتن باید گذشت ، و گاه در اوج تمنا باید نخواست!
    تاریخ عضویت
    Jun 2011
    محل سکونت
    یک خانه
    نوشته ها
    25,040
    تشکر تشکر کرده 
    3,527
    تشکر تشکر شده 
    5,275
    تشکر شده در
    3,184 پست
    حالت من : Akhmoo
    قدرت امتیاز دهی
    4452
    Array

    پیش فرض

    تابع EnableWindow :
    این تابع یک پنجره را قابل استفاده و یا غیر قابل استفاده می کند .
    اصل تابع :
    Public Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
    پارامتر ها :
    Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که باید قابل استفاده یا غیر استفاده شود .
    fEnable : این پارامتر نیز از نوع عددی بوده و اگر برابر 1 قرار بگیرد پنجره قابل استفاده و اگر برابر 0 باشد پنجره غیر قابل استفاده می شود .
    خروجی :
    خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به درستی انجام بدهد مقدار یک و در غیر این صورت مقدار 0 بر گردانده می شود .


    تابع IsWindowEnable :
    این تابع قابل اسفاده بودن یک پنجره را آزمایش می کند .
    اصل تابع :
    Public Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal hwnd As Long) As Long
    پارامتر ها :
    Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که باید مورد آزمایش قرار بگیرد .
    خروجی :
    خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .


    تابع GetWindowPlacement :
    این تابع وضعیت نمایش پنجره از قبیل Normal و Minimize و Maximize و همچنین مکان و ابعاد پنجره را در هر وضعیت را بر می گرداند .
    اصل تابع :
    Public Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
    پارامتر ها :
    Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای می باشد که می خواهیم وضعیت و مکان و ابعاد آن را بدست آوریم .
    Lpwndpl : این پارامتر در حقیقت یک اشاره گر به ساختار WINDOWPLACEMENT می باشد که اطلاعات مربوط به پنجره در آن ذخیره می شود .
    ساختار WINDOWPLACEMENT :
    کد:
    Public Type WINDOWPLACEMENT
            Length As Long
            flags As Long
            showCmd As Long
            ptMinPosition As POINTAPI
            ptMaxPosition As POINTAPI
            rcNormalPosition As Rect
    End Type
    Length : این فیلد از نوع عددی بوده و شامل اندازه ساختار در حافظه می باشد در vb از تابع Len استفاده می کنیم .
    Flags : این فیلد وضعیت بازگشت پنجره را مشخص می کند و می تواند شامل دو مقدار زیر باشد :
    - WPF_RESTORETOMAXIMIZED : مشخص می کند وقتی پنجره بخواهد به حالت قبلی برگردد به Maximize تغییر حالت می دهد و با مقدار عددی &H2 .
    - WPF_SETMINPOSITION : زمانی که پنجره به حالت قبلی برگردد به Minimize تغییر حالت می دهد و با مقدار عددی &H1 .
    showCmd : این پارامتر وضعیت پنجره را مشخص می کند و این وضعیت می تواند مقادیری داشته باشد که در تابع بعدی توضیح می دهم .
    ptMinPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Minimize برمی گرداند .
    ptMaxPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Maximize برمی گرداند .
    rcNormalPosition : این پارامتر از نوع ساختار RECT می باشد و مختصات ابعادی پنجره را بر می گرداند .
    ساختار PointApi : احتیاجی به توضیح ندارد
    کد:
    Public Type POINTAPI
            x As Long
            y As Long
                     End Type
    ساختار RECT : این ساختار هم از اسمهاش پیداست احتیاجی به توضیح نیست
    کد:
    Public Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
                        End Type
    خروجی :
    خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .


    تابع ShowWindow :
    این تابع وضعیت نمایش یک پنجره را مشخص می کند .
    اصل تابع :
    Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    پارامتر ها :
    Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که قرار است وضعیت آن را مشخص کنیم .
    nCmdShow : این پارامتر نیز از نوع عددی بوده و مشخص کننده وضعیت پنجره مورد نظر می باشد این پارامتر می تواند مقادیر زیر را دریافت کند :
    - SW_HIDE : این Flag پنجره را از درون Taskbar ویندوز محو می کنه و سایر پنجره ها را مشخص می کند و با مقدار عددی 0 .
    - SW_MAXIMIZE : این Flag پنجره را به حالت Maximize تغییر و ضعیت می دهد و با مقدار عددی 3 .
    - SW_MINIMIZE : این Flag پنجره را به حالت Minimize تغییر وضعیت می دهد این Flag دقیقا برابر تابع CloseWindow است و با مقدار عددی 6 .
    - SW_RESTORE : این Flag پنجره را از وضعیت Minimize یا Maximize به وضعیت Normal بر می گرداند و با مقدار عددی 9 .
    - SW_SHOW : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد برعکس Flag ، SW_HIDW و با مقدار عددی 5 .
    - SW_SHOWDEFAULT : این Flag پنجره را در حالت پیش فرض خو نمایش می دهد و با مقدار عددی 10 .
    - SW_SHOWMAXIMIZED : این Flag پنجره را در وضعیت Maximize نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 3 .
    - SW_SHOWMINIMIZED : این Flag پنجره را در وضعیت Minimize نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 2 .
    - SW_SHOWNORMAL : این Flag پنجره را در وضعیت Normal نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 1 .
    - SW_SHOWMINNOACTIVE : این Flag پنجره را در وضعیت Minimize نمایش می دهد و پنجره را فعال نمی کند و با مقدار عددی 7 .
    - SW_SHOWNOACTIVATE : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد ولی پنجره را فعال نمی کند و با مقدار عددی 4 .
    - SW_SHOWNA : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد ولی پنجره را فعال نمی کند و اگر فعال باشد فعال و اگر فعال نباشد غیرفعال نمایش می دهد و با مقدار عددی 8 .
    خروجی :
    خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به درستی انجام بدهد مقدار یک و در غیر این صورت مقدار 0 بر گردانده می شود .


    تابع SetWindowPlacement :
    کار این تابع دقیقا بر عکس تابع GetWindowPlacement عمل می کند .
    اصل تابع :
    Public Declare Function SetWindowPlacement Lib "user32" Alias "SetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
    پارامتر ها :
    Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای می باشد که می خواهیم وضعیت و مکان و ابعاد آن را تغییر بدهیم .
    Lpwndpl : این پارامتر در حقیقت یک اشاره گر به ساختار WINDOWPLACEMENT می باشد که متغییر های آن باید پیش از فراخوانی تابع مقدار دهی شده باشد .
    خروجی :
    خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .

    مثال :

    کد:
    Private Type POINTAPI
            x As Long
            y As Long
    End Type
    Private Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End Type
    Private Type WINDOWPLACEMENT
            Length As Long
            flags As Long
            showCmd As Long
            ptMinPosition As POINTAPI
            ptMaxPosition As POINTAPI
            rcNormalPosition As RECT
    End Type
    Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
    Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
    
    Dim Wp As WINDOWPLACEMENT
    Dim ScrR As RECT, DesR As RECT
    
    Private Sub Command1_Click()
    GetWindowPlacement Me.hwnd, Wp
    ScrR = Wp.rcNormalPosition
    
    List1.Clear
    List1.AddItem "FormLeft : " + CStr(ScrR.Left)
    List1.AddItem "FormRight : " + CStr(ScrR.Right)
    List1.AddItem "FormTop : " + CStr(ScrR.Top)
    List1.AddItem "FormBottom : " + CStr(ScrR.Bottom)
    
    
    End Sub
    
    Private Sub Command2_Click()
    Wp.Length = Len(Wp)
    DesR.Left = 260
    DesR.Right = 100
    DesR.Top = 100
    DesR.Bottom = 200
    Wp.rcNormalPosition = DesR
    Wp.showCmd = 5
    SetWindowPlacement Me.hwnd, Wp
    
    End Sub
    رفقا به اندازه کافی فکر کنم توضیح دادم که دیگه این مثال و توضیح ندهم خودتون امتحان کنید .
    [دل خوش از آنیم که حج میرویم؟ ..]
    غافل از آنیم که کج میرویم



    [SIGPIC][/SIGPIC]


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

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

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

http://www.worldup.ir/