نمایش نتایج 1 تا 31 از 31

نام تاپیک: API در دلفی ...

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

    Post API در دلفی ...

    سلام به همه ی دلفی کاران و صد البته اساتیدِ عزیز ...
    راستش من یه چند روزیه دارم API میخونم ...
    گفتم شاید بد نباشه تا زکات این علمم رو با افتتاح این تاپیک بپردازم ...
    البته توی این تاپیک فقط بعضی از توابع (که به نظر مفیدتر میآن) گذاشته میشه و پر واضحه که توابع API خیلی بیشتر از اینهاست .

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

    * سرفصل توابع بشرح زیر است :
    String API
    Wait&Time
    File&Directory
    Drives
    Device Context
    Text & Lines & Caret
    Display & Fonts
    ClipBoard
    Window
    Windows Information
    Mouse Cursor
    Message
    Keyboard & Hotkey
    Shell & Exit
    Registry
    ماکروهای ساخت متغیر

    مرجع : برنامه نویسی سیستمی در ویندوز با توابع API - پژمان حسینی

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


    با آرزوی موفقیت /. مسعود
    آخرین ویرایش به وسیله MSN_Issue : شنبه 30 مرداد 1389 در 15:14 عصر

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

    نقل قول: API در دلفی ...

    سلام به همه
    چون تو این فصل به توابع مربوط به رشتها (Strings) می پردازیم بهتر یه کم بیشتر رشته ها رو تو Windows بررسی کنیم .
    رشته هایی که در توابع API مورد استفاده قرار میگیرند رشته های ختم به null هستند . در دلفی نوع Pchar وجود دارد که باید از آن استفاده کرد . البته با استفاده از امکان Type Casting (قالب ریزی نوع) میشه متغیر رو از نوع String تعریف کرد و بعد با دستور تبدیل Pchar اون رو به رشته ی ختم به Null تبدیل کنیم ...

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

    نقل قول: API در دلفی ...

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

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

    function CharLower(lpsz : Pchar ) : Pchar ;

    توابع مشابه :
    CharUpper

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

    نقل قول: API در دلفی ...

    تابع IsCharAlpha
    هدف : این تابع تشخیص میدهد که کارکتری که به آن ارسال شده است جزو حروف است یا خیر .
    فراخوانی :
    این تابع در کتابخانه ی Windows از دلفی تعریف شده است .

    function IsCharAlpha( ch : Pchar ) : BOOL ;


    توابع مشابه :
    IsCharAlphaNumeric
    IsCharLower
    IsCharUpper
    -----------------------------------------

    تابع lstrcmp
    هدف : این تابع دو رشته که به آن فرستاده می شوند را از نظر الگوی نوشتن CaseSensitive با هم مقایسه میکند .
    فراخوانی :
    این تابع در کتابخانه ی Windows از دلفی تعریف شده است .

    fanction lstrcmp ( lpString1 , lpString2 : Pchar ) : Integer ;

    خروجی تابع :
    1- : مشخص میکند که رشته ی اول از رشته ی دوم کوچکتر است .
    0 : مشخص میکند که رشته ها با هم برابر هستند .
    1 : مشخص میکند که رشته ی اول از رشته ی دوم بزرگتر است .
    -----------------------------------

    تابع lstrLen
    هدف : این تابع طول رشته ای که به آن فرستاده شده است را بر می گرداند .

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

    fanction lsrtlen ( lpString : Pchar ) : Integer ;

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

    نقل قول: API در دلفی ...

    سلام به همه ی دوستان
    بعد از توابع String میرسیم به توابع Wait & Time
    ------------------------------------------------------
    تابع Sleep
    هدف : از این تابع برای ایجاد وقفه در اجرای برنامه استفاده میشود .
    فراخوانی :
    این تابع در کتابخانه ی Windows از دلفی تعریف شده است .

    procedure sleep ( dwMilliseconds : DWORD ) ;
    -------------------------------------------------------------
    تابع GetLocalTime
    هدف : این تابع که از نوع زیر برنامه (VOID) می باشد ، زمان و تاریخ فعلی سیستم را بر میگرداند.

    فراخوانی :

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

    procedure GetLocalTime ( var lpSystemTime : TSystemTime );
    پارامترها :
    lpSystemTime : این پارامتر یک متغییر از نوع ساختار SYSTEMTIME بوده و زمان و تاریخ کنونی سیستم در این متغییر قرار می گیرد .

    ساختار در Delphi

    _SYSTEMTIME : record
    wYear : Word ;
    wMonth : Word ;
    wDayOfWeek : Word ;
    wDay : Word ;
    wHour : Word ;
    wMinute : Word ;
    wSecond : Word ;
    wMilliSeconds : word ;
    end;
    TSystemTime = _SYSTEMTIME ;


    توابع مشابه :
    GetSystemTime
    آخرین ویرایش به وسیله MSN_Issue : چهارشنبه 12 خرداد 1389 در 19:39 عصر

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

    نقل قول: API در دلفی ...

    تابع SetLocalTime
    هدف: این تابع زمان و تاریخ سیستم را به زمان و تاریخ دلخواه تغییر میدهد .

    فراخوانی :

    این تابع در کتابخانه ی Windows از دلفی تعریف شده است .
    function SetLocalTime( const lpSystemTime : TSystemTime ) : BOOL ;


    پارامترها :
    lpSystemTime : از نوع SYSTEMTIME می باشد و باید قبل از استفاده در تابع مذبور مقدار دهی شود .

    تذکر: در این تابع SystemTime.wDayofWeek را نمی توان set کرد .

    توابع مشابه :
    SetSystemTime

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

    نقل قول: API در دلفی ...

    تابع FileTimeToSystemTime
    هدف : این تابع تاریخ و زمان فایل را به زمان و تاریخ 64 بیتی System تبدیل میکند .

    فراخوانی :
    این تابع در کتابخانه ی Windows از دلفی تعریف شده است .
    function FileTimeToSystemTime( const lpFileTime : TFileTime ; var lpSystemTime : TSystemTime ) : BOOL ;


    پارامترها :
    lpFileTime : این پارامتر یک متغییر از نوع ساختار FILETIME می باشد که قبلا تعریف شده است . این پارامتر متغییری می باشد که قرار است به زمان و تاریخ سیستم تبدیل شود .
    lpSystemTime : این پارامتر متغییری است از نوع SYSTEMTIME که برای دریافت زمان و تاریخ سیستم به کار می رود .

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

    توابع مشابه :
    SystemTimeToFileTime

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

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

    نقل قول: API در دلفی ...

    تابع OpenFile

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

    - بیشترین استفاده این تابع برای بدست آوردن دستگیره (Handle) یک فایل می باشد . از این دستگیره میتوان در توابع GetFileSize و GetFileTime و توابع پیشرفته ReadFile و WriteFile استفاده کرد .


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

    function OpenFile ( const lpFileName: LPCSTR; var lpReOpenBuff: TOFStruct; uStyle: UINT ): HFILE;
    پارامترها
    lpFileName : این پارامتر از نوع String می باشد و فایلی را مشخص می کند که باید برای محاسبات خاصی باز شود یا دستگیره اش برگردانده شود .

    lpReOpenBuff : این متغیر به ساختار OFSTRUCT برای دریافت اطلاعات فایل وقتی برای اولین بار باز می شود اشاره میکند .

    ساختار در Delphi

    _OFSTRUCT = record
    cBytes : Byte;
    fFixedDisk : Byte;
    nErrCode : Word;
    Reserved1 : Word;
    Reserved2 : Word;
    szPathName : array[0..OFS_MAXPATHNAME-1] of CHAR;
    end;
    TOFStruct = _OFSTRUCT;

    توضیح ساختار
    CByte : اندازه ی ساختار
    fFixedDisk : اگر این فیلد غیر صفر باشد یعنی فایل از هارد دیسک است .
    nErrCode : اگر فایل باز نشود شمارهِ خطا را درون خود نگه می دارد .
    Reserved1 : رزرو شده است .
    Reserved2 : رزرو شده است .
    szPathName : این فیلد شامل مسیر و نام فایل می باشد .

    *برای جلوگیری از طولانی شدن و سنگین شدن پست توضیح پارامتر uStyle رو توی پست بعد میذارم ...

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

    نقل قول: API در دلفی ...

    *ادامه ی پست قبل (توضیح پارامتر uStyle) :
    این پارامتر میتواند مقادیر زیر را داشته باشد :

    OF_CANCEL : با مقدار عددی H800 و در OF_PROMPT که شامل Dialog Box است شامل دکمه ی Cancel می شود (در کاربردی ندارد).

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

    OF_DELETE : فایل مورد نظر را DELETE می کند .

    OF_EXIST : دارای مقدار عددی H4000 می باشد ، و وقتی به کار می رود که بخواهیم فایلی با نام و مسیری که در lpFileName مشخص شده وجود دارد یا خیر .

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

    OF_PROMPT : اگر فایلی در مسیر مورد نظر وجود نداشته باشد File does not exists
    Requested نمایش داده می شود و دارای گزینه های Retry و Cancel می باشد . اگر Cancel انتخاب شود تابع OpenFile و خطای File not found را بر میگرداند ، این Flag دارای مقدار عددی H2000 است .

    OF_READ : فایل را برای عملیات فقط خواندن آماده میکند و دارای مقدار عددی صفر می باشد .

    OF_READWRITE : فایل را برای عملیات خواندن و نوشتن باز می کند و دارای مقدار عددی 2 می باشد .

    OF_REOPEN : فایل را با اطلاعاتی که در ساختار OFSTRUCT وجود دارد دوباره باز میکند و دارای مقدار عددی H8000 می باشد.

    OF_SHARE_COMPAT : برای فایلهایی که دارای سیستم MS-DOS می باشند در Win32 به کار میرود و دارای مقدار عددی صفر میباشد و در ویندوز NT از دو قسمت FILE_SHARED_READ و FILE_SHARED_WRITE استفاده میشود .

    OF_SHARE_DENY_NONE : فایل را با شرایط Flag قبلی باز میکند ولی اجازه ی Read و Write را نمیدهد و دارای مقدار عددی H40 می باشد .

    OF_SHARE_DENY_READ : فایل را با شرایط OF_SHARE_COMPAT باز میکند و فقط اجازه ی خواندن از فایل را نمی دهد و دارای مقدار عددی H30 است .

    OF_SHARE_DENY_WRITE : فایل را با شرایط
    OF_SHARE_COMPAT باز میکند و فقط اجازه ی نوشتن در فایل را نمیدهد و دارای مقدار عددی H20 است .

    OF_SHARE_DENY_EXCLUSIVE : فایل را با حالت Exclusive باز میکند . فایل علاوه بر دستیابی به حالتهای Read و Write به حالتهای دیگری هم دسترسی دارد و دارای مقدار عددی H10 می باشد .

    OF_VERIFY : جزو چک کردن های اضافی فایلهای ReadInly می باشد و تاریخ و ساعت فایل را چک می کند و دارای مقدار عددی H400 می باشد .

    OF_WRITE : فایل را برای عملیات فقط نوشتن در فایل باز میکند و دارای مقدار عددی یک میباشد .

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

  10. #10

    نقل قول: API در دلفی ...

    سلام
    اولا مرسی ازین تاپیک فوق العاده و مرسی از همه زحماتتون
    من با shellexecuteمشکل دارم چند باری هم پست کردم و جواب نگرفتم کامل
    اول اینکه shellexecuteفایل هایی که اسمشون فارسیه رو باز نمی کنه یکی از دوستان shellexecuteWرو پیشنهاد کرد که اون هم بی فایده بود
    دوم اینکه در آدرس دهی رو شبکه باهاش مشکل دارمhttps://barnamenevis.org/showthread.php?t=230967
    ممنون میشم اگه کمکم کنین
    مرسی

  11. #11

    نقل قول: API در دلفی ...

    نقل قول نوشته شده توسط lena abbaszadeh مشاهده تاپیک
    سلام
    اولا مرسی ازین تاپیک فوق العاده و مرسی از همه زحماتتون
    من با shellexecuteمشکل دارم چند باری هم پست کردم و جواب نگرفتم کامل
    اول اینکه shellexecuteفایل هایی که اسمشون فارسیه رو باز نمی کنه یکی از دوستان shellexecuteWرو پیشنهاد کرد که اون هم بی فایده بود
    دوم اینکه در آدرس دهی رو شبکه باهاش مشکل دارمhttps://barnamenevis.org/showthread.php?t=230967
    ممنون میشم اگه کمکم کنین
    مرسی
    من به دو روش نوشتم و هر دو برای اسمهای فارسی جواب دادند
    سورس در فایل ضمیمه ...

    Exec_Corrected.rar
    آخرین ویرایش به وسیله دلفــي : یک شنبه 20 تیر 1389 در 16:00 عصر دلیل: حذف فایل ویروسی

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

    نقل قول: API در دلفی ...

    نقل قول نوشته شده توسط دلفــي مشاهده تاپیک
    من به دو روش نوشتم و هر دو برای اسمهای فارسی جواب دادند
    سورس در فایل ضمیمه ...
    دوست عزیز فایلی که ضمیمه کردین دانلود نشد چون ویروسی بود !!!
    اگه لطف کنید دوباره آپ کنید ممنون میشم .

    Virus Name:
    Win32.Induc.A

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

    نقل قول: API در دلفی ...

    تابع GetFileSize

    هدف
    همانطور که از نام تابع مشخص است اندازه فایل را به عنوان Byte برمی گرداند .
    فراخوانی در Delphi

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

    function GetFileSize ( hFile: THandle ; lpFileSizeHigh: Pointer ) : DWORD ;


    پارامترها
    hFile : دستگیره ی فایل می باشد که با استفاده از تابع OpenFile می توان به دست آورد .
    lpFileSizeHigh : این پارامتر از نوع اشاره گر که به یک WORD می باشد و برای فایلهایی مورد استفاده قرار میگیرد که حجمی بالا تر از مقدار DWORD دارند ، معمولا این پارامتر در دلفی برابر nil و در VB برابر صفر میباشد .

    خروجی تابع
    اگر کار تابع به درستی انجام شود ، WORD پایین DWORD را برمیگرداند که اندازه ی فایل می باشد . اگر اندازه ی فایل بسیار بزرگ باشد WORD بالای اندازه ی فایل در متغییر lpFileSizeHigh قرار می گیرد .

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

    نقل قول: API در دلفی ...

    تابع GetFileTime

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

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

    function GetFileTime(hFile: THandle ; lpCreationTime , lpLastAccessTime , lpLastWriteTime : PFileTime ) : BOOL ;


    پارامترها

    hFile : دستگیره فایل می باشد که با استفاده از تابع OpenFile به دست می آید .

    lpCeationTime : زمان و تاریخ تولید فایل در این متغییر که از نوع ساختار FILETIME می باشد ، قرار می گیرد.

    lpLastAccessTime : زمان و تاریخ آخرین دسترسی به فایل را که از نوع ساختار FILETIME می باشد ، در خود دارد .

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

    خروجی تابع

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

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

    نقل قول: API در دلفی ...

    تابع GetCompressedFileSize

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


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

    function GetCompressedFileSize ( lpFileName : PChar ; lpFileSizeHigh : PDWORD ) : DWORD ;


    پارامترها

    lpFileName : یک متغییر از نوع String است که شامل نام فایلی می باشد که اندازه ی آن را تابع به ما برمی گرداند .
    lpFileSizeHigh : دقیقا مانند همین متغیر در تابع GetFileSize می باشد .

    خروجی تابع
    خروجی این تابع دقیقا مانند خروجی تابع GetFileSize می باشد .

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

    نقل قول: API در دلفی ...

    تابع FindFirstFile

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

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

    function FindFirstFile ( lpFileName: PChar ; var lp FindFileData: TWIN32FindData ) : THandle ;
    پارامترها

    lpFileName : این پارامتر از نوع String بوده و نام فایل مورد جستجو یا شرایط مورد نظر برای فایل را شامل میشود . برای مثال :

    نام فایل 'C:\Delphi.txt'
    شرایط پسوندی 'C:\*.exe'

    lpWIN32FindData : این متغیر اشاره می کند به ساختار WIN32_FIND_DATA و هر فایلی که توسط تابع پیدا میشود اطلاعات آن در این ساختار ذخیره میشود .

    ساختار در Delphi
    _WIN32_FIND_DATA = record
    dwFileAttributes : DWORD ;
    ftCreationTime : TFileTime ;
    ftLastAccessTime : TFileTime ;
    ftLastWriteTime : TFileTime ;
    nFileSizeHigh : DWORD ;
    nFileSizeLow : DWORD ;
    dwReserved0 : DWORD ;
    dwReserved1 : DWORD ;
    cFileName : array [0..MAX_PATH -1] of WideChar ;
    cAlternateFileName : array [0..13] of WideChar;
    end ;
    TWIN32_FIND_DATA = _WIN32_FIND_DATA ;

    توضیح برخی از قسمت های ساختار

    nFileSizeHigh : این پارامتر Word بالایی اندازه ی فایل را به بایت بر می گرداند و به باید این مقدار صفر می باشد مگر اینکه اندازه ی فایل از MaxDword که برابر با 4294967295 می باشد ، بیشتر باشد .

    nFileSizeLow : این متغیر Word پایینی اندازه فایل را به بایت بر میگرداند .

    نکته
    اندازه فایل از فرمول زیر به دست می آید :
    (nFileSizeHigh * MaxDword ) + nFileSizeLow 
    AlternateFileName : این پارامتر نیز نام فایل می باشد با این تفاوت که با فرمت قدیمی فایل ، یعنی 8 کاراکتر نام فایل و 3 کاراکتر پسوند فایل می باشد .

    خروجی تابع

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

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

    نقل قول: API در دلفی ...

    نقل قول نوشته شده توسط دلفــي مشاهده تاپیک
    فکر کنم دلفی من آلوده شده ، فایل اجرایی رو از برنامه حذف کردم و فقط سورسش رو آپلود کردم ، خودتون زحمت Build رو بکشید .

    موفق باشید ...
    خیلی جالبه ، اما مثل اینکه استفاده از این توابع و Build این پروژه برابرِ با ساخت ویروس ... !!!!!

    عکس زیر در زمان build این پروژه-ست !!!!
    عکس های ضمیمه عکس های ضمیمه

  18. #18

    Exclamation نقل قول: API در دلفی ...

    نقل قول نوشته شده توسط MSN_Issue مشاهده تاپیک
    خیلی جالبه ، اما مثل اینکه استفاده از این توابع و Build این پروژه برابرِ با ساخت ویروس ... !!!!!

    عکس زیر در زمان build این پروژه-ست !!!!
    اصلاح شد .
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله دلفــي : یک شنبه 20 تیر 1389 در 16:00 عصر دلیل: اصلاح فایل

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

    نقل قول: API در دلفی ...

    توابع Directory

    ===============================
    تابع CreateDirectory

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

    فراخوانی در Delphi
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
    function createDirectory ( lpPathName: PChar; lpSecurityAttributes: PSecurityAttributes ) : BOOL ;
    پارامترها
    lpPathName : این پارامتر از نوع رشته می باشد و مسیر و نام فهرست جدید را مشخص می کند .

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

    ساختار در دلفی

    _SECURITY_ATTRIBUTES = record
    nLength: DWORD;
    lpSecurityDescriptor: Pointer;
    bInheritHandle: BOOL;
    end;

    توضیح ساختار
    nlength : اندازه ساختار می باشد که با تابع SizeOf در دلفی مشخص می شود .
    lpSecurityDescriptor : اشاره گری به ساختار دیگری به نام SECURITY_DESCRIPTOR می باشد .
    bInheritHandle : این فیلد دستگیره ( Habndle ) فرآیند جدیدی را به ارث می برد اگر مقدار True بگیرد ، فرآیند جدید وارث دستگیره ( Handle ) می باشد .

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

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

    نقل قول: API در دلفی ...

    تابع RemoveDirectory

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

    فراخوانی در Delphi
    این تابع در کتابخانه windows از دلفی تعریف شده است .
    function RemoveDirectory ( lpPathName: PChar ): BOOL ;


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

    خروجی تابع
    اگر تابع فهرست مورد نظر را از روی دیسک حذف کند مقدار True یا یک بر می گرداند و اگر نتواند به هر دلیلی فهرست مورد نظر را حذف کند مقدار صفر یا False بر می گرداند .

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

    نقل قول: API در دلفی ...

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

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

    نقل قول: API در دلفی ...

    Drives
    =====================
    تابع GetDiskFreeSpace

    هدف
    از این تابع برای گرفتن اطلاعاتی از قبیل تعداد Sector ، تعداد Clusterهای خالی و موارد دیگر از Drive مورد نظر استفاده می شود .

    فراخوانی در Delphi
    ای تابع در کتابخانه Windows از دلفی تعریف شده است .
    function GetDiskFreeSpace ( lpRootPathName: PChar; var lpSectorsPerCluster, lpBytesPerSector,
    lpNumberOfFreeClusters, lpTotalNamberOfClusters : DWORD ):BOOL ;


    پارامترها
    lpRootPathName : این پارامتر از نوع رشته بوده و نام درایوی که اطلاعات آن را می خواهیم در آن قرار می گیرد .
    lpSectorPerCluster : این پارامتر از نوع عددی بوده و تعداد Sectorها را در هر Cluster مشخص می کند .
    lpBytesPerSector : این پارامتر از نوع عددی بوده و تعداد هر بایت در هر Sector را مشخص می کند .
    lpNumberOfFreeCluster : این پارامتر عددی بوده و نعداد Clusterهای خالی درایو مورد نظر را بر می گرداند .
    lpTotalNumberOfCluster : این پارامتر نیز عددی بوده و تعداد کل Clusterهای موجود در درایو مورد نظر را بر می گرداند .

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

    توجه
    تابع GetFreeDiskSpace از APIهای بسیار قدیمی ویندوز می باشد به همین دلیل مشکلاتی دارد . این تابع اطلاعات مربوط به HardDiskهای بالاتر از 2GB را اشتباه بر می گرداند . برای حل این مشکل تابع تابع GetDiskFreeSpaceEx وجود دارد .

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

    نقل قول: API در دلفی ...

    تابع GetDriveType

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

    فراخوانی در Delphi
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
    function GetDriveType ( lpRootPathName: PChar) : UINT ;
    توجه
    نوع Uint که در فراخوانی Delphi استفاده شده است دقیقا برابر با نوع LongWord دلفی می باشد و فقط به دلیل همخوانی با اصل تابع به این شکل بیان شده است .

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

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

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

    نقل قول: API در دلفی ...

    تابع GetLogicalDriveStrings

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

    فراخوانی در Delphi
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
    function GetLogicalDriveString ( nBufferLength: DWORD; lpBuffer: PAnsichar ): DWORD;


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

    توضیح
    در پارامتر nBufferLength همانطوری که در مثال خواهید دید از تابع SizeOf برای بدست آوردن فضای مورد نیاز متغییر مورد نظر استفاده شده است .
    lpBuffer : این پارامتر نیاز به توضیح بیشتری دارد . لازم به ذکر است که نام دیسک درایوها به صورت زیر در این متغییر قرار می گیرند :
    A:\<null> B:\<null> C:\<null> D:\<null>
    همانطور که می بینید جداکننده هر رشته یک <null> می باشد ، برای چاپ با استفاده از نام درایوها به صورت عادی نمی توان عمل کرد زیرا فقط A: چاپ می شود . دلیل آن نیز مشخص است چون تابع به متغیر <null> می رسد گمان می کند که رشته به پایان رسیده و دیگر جلو نمی رود . برای رفع این مشکل همانطور که در مثال می بینید کارهایی صورت گرفته است که توضیح داده می شود :
    در مثال تابعی به نام GetDriveLogic تعریف شده است . در این تابع یک متغیر از نوع آرایه کاراکتری تعریف شده است که در حقیقت نام دیسک درایوها را در آن قرار می دهیم .
    Drv : array [0..255] of char ;

    متغیری هم به نام
    Temp تعریف کرده ایم که در حقیقت خروجی تابع می باشد ، در اینجا از یک روش بسیار ساده استفاده شده است . نام دیسک درایو ها به شکل زیر در آرایه Drv ذخیره می شوند :
    A : \ #0 C : \ #0 D : \ #0#0
    همانطور که می بینید در تمامی خانه های بخش پذیر به 4 مقدار نام دیسک قرار دارد ، پس با استفاده از یک شرط ساده در واقع آنها را بر می داریم : if (i mod 4) then …
    If بعدی در واقع رسیدن به پایان رشته را مشخص می کند : if Drv[i]=#0 then …
    یعنی اگر خانه بخشپذیر به 4 برابر با مقدار null یا صفر باشد ، پس دیگر درایوی وجود ندارد . در پایان متغیر Temp به شکل زیر است :
    A C D #0

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

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

    آخرین ویرایش به وسیله MSN_Issue : شنبه 23 مرداد 1389 در 06:09 صبح

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

    نقل قول: API در دلفی ...

    تابع GetVolumeInformation

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

    فراخوانی در
    Delphi
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
    function GetVolumeInformation ( lpRootPathPathName: PChar;
    lpVolumeNameBuffer: Pchar; nVolumeNameSize: DWORD;
    lpVolumeSerialNumber: PDWORD;
    var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
    lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD ): BOOL;

    پارمترها
    LpRootPathName : این پارامتر از نوع رشته بوده و نام درایو مورد نظر را مشخص می کند .
    LpVolumeNameBuffer : این متغیر از نوع رشته بوده و برچسب (Label) دیسک درایو مورد نظر را بر می گرداند .
    lpVolumeNameSize : این متغیر از نوع عددی بوده و فضای لازم برای متغیری که شامل برچست می باشد را مشخص می کند .
    lpVolumeSerialNumber : این متغیر اشاره گر به عددی می باشد که شماره سریال دیسک درایو می باشد .
    lpMaximumComponentLength : این متغیر نیز از نوع عددی بوده و حداکثر طول فایل سیستم را بر می گرداند .
    lpFileSystemFlags : این پارامتر از نوع عددی بوده ، و یکی از مقادیر زیر می تواند باشد :
    1. FS_CASE_IS_PRESERVED : اگر برابر با این Flag باشد فایل سیستم از قالب نام فایل در دیسک حفاظت می کند .
    2. FS_CASE_INSENSITIVE : اگر برابر با این Flag باشد ، فایل سیستم از حالت Case Insensitive (حساس به قالب) پشتیبانی می کند .
    3. FS_UNICODE_STORED_ON_DISK : اگر برابر با این Flag باشد ، فایل سیستم از Unicode پشتیبانی می کند .
    4. FS_PERSISTENT_ACLS : اگر برابر با این Flag باشد ، فایل سیستم از ACL حفاظت می کند . سیستم NTFS از ACL پشتیبانی می کند ولی FAT از ACL حفاظت نمی کند (AccessControlList) .
    5. FS_FILE_COMPRESSION : اگر برابر با این Flag باشد ، فایل سیستم از فایلهای فشرده شده پشتیبانی می کند .
    6. FS_VOL_IS_COMPRESSION : اگر برابر با این Flag باشد ، فایل سیستم از برچست درایوهای فشرده ، با استفاده از Double Space پشتیبانی می کند .



    lpFileSystemNumberBuffer : این پارامتر از نوع رشته بوده و نام فایل سیستم را برمی گرداند .
    lpFileSystemNameSize : این پارامتر از نوع عددی بوده و مقدار فضای لازم برای متغیر نام فایل سیستم را مشخص می کند .
    خروجی تابع
    اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True و اگر کار خود را ناقص انجام دهد مقدار صفر یا False را برمی گرداند .

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

    نقل قول: API در دلفی ...

    تابع SetVolumeLabel

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


    فراخوانی در Delphi
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
    function SetVolumeLabel ( lpRootPathName: PChar; lpVolumeName: PAnsiChar): BOOL;


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

    توجه
    منظور از رشته در مثالهای دلفی نوع PChar می باشد .

    خروجی تابع
    خروجی این تابع از نوع Boolean بوده و اگر مقدار یک را True برگرداند یعنی تابع کار خود را به درستی انجام داده و اگر مقدار صفر یا false برگرداند یعنی تابع کار خود را ناقص انجام داده است .

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

    نقل قول: API در دلفی ...

    سلام به همه
    می بخشید که اینقدر فاصله می افته بین پست هام ... ! گرفتاریه دیگه .
    مثالی رو که توی پست های قبل ذکر و خیرش بود رو ضمیمه کردم ، امیدوارم براتون مفید واقع بشه ...
    فایل های ضمیمه فایل های ضمیمه

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

    نقل قول: API در دلفی ...

    ======================================Device Context (DC)=====================================
    مقدمه
    DC ها یا پرده زمینه یک نوع ساختمان داده Win32 هستند و شامل اطلاعاتی در مورد خصوصیات طراحی روی صفحه ی نمایش و چاپگر می باشند .
    در دلفی یک ساختمان داده به نام hDC تعریف شده است که در حقیقت از نوع LongWord و دستگیره پرده زمینه می باشد . با استفاده از توابع GetDC و GetWindowDC می توان دستگیره پرده زمینه هر شیء را به دست آورد این تو تابع در این فصل توضیح داده خواهند شد .
    --------------------
    تابع CreateDC
    هدف
    از این تابع برای ساختن یک پرده زمینه DC استفاده می شود .
    فراخوانی در دلفی
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
        function CreateDC( lpszDriver, lpszDevice, lpszOutPut: PChar;
    lpdvmInit: PDeviceMode;): HDC;

    پارامترها
    lpszDriver : این پارامتر از توع رشته بوده و نام درایوری می باشد که قرار است پرده (DC) روی آن ساخته شود . این گزینه معمولا برابر با Display می باشد . اگر این گزینه برابر با Display باشد اکثرا گزینه ها نیز NULL می باشد.
    lpszDevice : این پارامتر نیز از توع رشته بوده و Device خروجی را مشخص می کند که همانطور که در بالا گفته شد اکثرا NULL باشد ولی به عنوان مثال می تواند یک نوع Printer باشد . (EPSON FX-80)
    lpszOutput : این پارامتر نیز از نوع رشته بوده و Port دستگاه خروجی را مشخص می کند . این پارامتر در Win32 همیشه NULL می باشد .
    lpUnitData : این پارامتر یک اشاره گر به ساختار DEVMODE می باشد . این پارامتر نیز معمولا برابر با NULL قرار می گیرد .
    DELPHI
    پارامترهای lpszDriver و lpszDevice و lpszOutput از نوع PChar بوده و lpszDriver برابر با Display و بقیه برابر با nil قرار می گیرند . پارامتر lpInitData نیز در Delphi به دلیل اشاره گر بودن برابر با nil قرار می گیرد .
    خروجی تابع
    اگر تابع کار خود را به درستی انجام دهد مقدار برگشتی آن برابر با دستگیره (Handle) پرده زمینه (DC) ساخته شده می باشد و اگر تابع کار خود را ناقص انجام دهد مقدار خروجی این تابع برابر با null می باشد .
    آخرین ویرایش به وسیله MSN_Issue : پنج شنبه 25 شهریور 1389 در 16:23 عصر دلیل: این پست به دلیل تکراری بودن به طور خودکار ادغام شده است.

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

    نقل قول: API در دلفی ...

    تابع DeleteDC

    هدف
    این تابع یک پرده زمینه را از حافظه حذف (پاک) می کند .

    فراخوانی در دلفی
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
      function DeleteDC(hDC: HDC): BOOL;


    پارامترها
    hDC : این پارامتر از نوع عددیی بوده و شامل دستگیره (Handle) پرده زمینه (DC) می باشد .

    خروجی تابع
    خروجی این تابع از نوع Boolean بوده و اگر تابع کار خود را به درستی انجام دهد مقدار True یا یک و اگر تابع کار خود را ناقص انجام دهد مقدار False یا صفر را بر می گرداند .

    توجه
    دستگیره هایی که با استفاده از تابع GetDC به دست آمده اند با این تابع از حافظه حذف نمی شوند ، این گونه دستگیره ها با استفاده از تابع ReleaseDC حذف می شوند .

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

    نقل قول: API در دلفی ...

    تابع GetDC

    هدف
    این تابع دستگیره (Handle) یک پنجره یا محیط را گرفته و دستگیره (Handle) پرده زمینه (DC) آن را بر می گرداند .

    فراخوانی در دلفی
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
      function GetDC(hWnd: HWND): HDC;


    پارامترها
    hWnd : این پارامتر عددی بوده و شامل دستگیره (Handle) محیط و یا پنجره مورد نظر می باشد .

    خروجی تابع
    اگر تابع کار خود را به درستی انجام دهد خروجی تابع برابر با دستگیره (Handle) پرده زمینه (DC) محیط و یا پنجره مورد نظر می باشد .

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

    نقل قول: API در دلفی ...

    تابع GetWindowDC


    هدف
    کار این تابع شباهت زیادی به تابع GetDC دارد با این تفاوت که از این تابع فقط برای پنجره ها استفاده می شود.


    فراخوانی در دلفی
    این تابع در کتابخانه Windows از دلفی تعریف شده است .
    function GetWindowDC(hWnd: HWND): HDC;


    پارامترها
    hWnd : این پارامتر عددی بوده و شامل دستگیره (Handle) پنجره(Window) مورد نظر می باشد .
    خروجی تابع
    اگر تابع کار خود را به درستی انجام دهد خروجی تابع برابر با دستگیره (Handle) پرده زمینه (DC) پنجره مورد نظر می باشد .

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

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