آموزش توابع Api - کاربردی
سلام -
یک برنامه نویس با استفاده از توابع و اشیا ذاتی VB تنها به بخشی از سیستم عامل دسترسی و کنترل خواهد داشت . اما همین برنامه نویس با استفاده از توابع APIویندوز (Application Programming Interface Windows) قادر به کنترل ریزترین بخش های سیستم عامل خواهد بود.
من می خوام بخاطر آشنایی بیشتر دوستانم با این مباحث یکسری توابع کاربردی رو برای دوستان در این قسمت آموزش بدم . امیدوارم راضی بشید.
مقدمه:
درس اول)
دستور Declare برای تعریف توابع DLL
قبل از فرواخوانی یک تابع DLL باید اطلاعاتی راجع به مکان فایل DLL و آرگومانهای مورد نیاز آن تابع در اختیار VB قرار دهید برای این کار دو راه وجوددارد:
1 - قرار دادن DLL در لیست References پروژه
2 - استفاده از دستور Declare در یک ماژول
ادامه دارد ...:10:
API شماره 1 - تغییر زبان صفحه کلید از انگلیسی به فارسی و بالعکس
ادامه بحث یکشنبه 21/11/86
ای کاش در محیط علمی به هم احترام می گذاشتیم ...
نقل قول:
بچه برای این که تاپیک خیلی خشک نباشه براتون یک ای.پی.آی میزارم
این یکی چک میکنه آیا فایل مورد نظر هست یا نه
Private Declare Function PathFileExistsA Lib "shlwapi.dll" (ByVal pszPath As String) As Long
pszPath مسیر فایل مورد نظر *اگر مقدار برگشتی 0 بود یعنی فایل مورد نظر نیست اگر هر عددی غیر از 0 بود یعنی هست
شماره 2-
کاش دوستمون تابع بالا رو کامل می کردند و می گفتند که میشه برای کپی کردن فایل ازش استفاده کرد.
تابعی که می شود برای کپی کردن یک فایل ازش استفاده کرد . می تونید در برنامه های بانک اطلاعاتی خودتون بعنوان یک زیر روال برای تهیه پشتیبان از بانک های اطلاعاتی استفاده کنید . اینکار سرعت پشتیبان گیری رو فوق العاده بالا می بره و حجم رو خیلی پایین می آره و البته مشکلاتی هم داره که دوست دارم سایر دوستان برای مشارکت در این درس نظراتشون بدن . متشکرم.
کد:
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
lpExistingFileName : آدرس فایل مبدا مثل
lpNewFileName : آدرس فایل مقصد
bFailIfExists : مشخص می کند در صورت وجود فایل مقصد عملیات کپی ادامه یابد یا نه . اگر صفر باشد انجام می شود و اگر یک باشد انجام نمی شود.
نحوه استفاده در برنامه :
کد:
copyFile ("c:\Ehteram.txt","d:\mrjamshidy.txt",0)
البته دوستان دقت داشته باشند که می توانند اختیار انتخاب مسیر ها رو از طریق componet دیالوگ متد ShowSave به کاربران نرم افزار نوشته شده بدهند.
در ضمن اگر کمی دیر بروز می کنم . می خوام دوستان بیشتری فرصت دیدن و مشارکت در بحث رو داشته باشند . در غیراینصورت گذاشتن انبوه مطالب بطور پیوسته فقط سبب خستگی و یکطرفه شدن بحث می شود.
تلاش برای حفظ حقوق مالکیت ...
بازم سلام
من نمی دونم این آقای mrjamshidi چه پدر کشتگی با آدمای آروم داره ، آخه عزیز من جواب تو داده بودم که ...
خوب بگذریم
قبلا هم گفتم من دوست دارم اینجا در مورد توبع نظر بدهید تا بتونیم حداکثر استفاده رو از اونها ببریم تامل منم برای گذاشتن مطالب جدید برای همین مهربونای من!
لطفا در مورد توابع چون کاربردی هست نظر بدید که کجا و چطور استفاده بشه بهتر ، دوست دارم نظراتتون بشنوم.
متشکرم
اما درس جدید )
قفل کردن موس و کیبورد ...
حتما شده که بخواهید برنامه ای بنویسید که بشه با تعریف کردن پاره ای تنظیمات امنیتی از کپی کردن غیر مجاز اون جلو گیری بشه ، به عنوان مثال یک شرط 10 روزه بگذارید و بعد یک قفل ترکیبی شامل شماره سریال سخت افزار سیستم مورد نظر و یک کد که فقط خودتون می دونید بعنوان کد رجیستری بسازید که بعد موعد مقرر اگر کد وارد شد سیستم ادامه کار می ده و اگر وارد نشد ...
مثلا موس و کیبورد در هر بار ورود غیر مجاز قفل بشه ، خیلی لذت داره وقتی طرف نمی تونه هیچ کاری تاکید می کنم هیچ کاری انجام بده ؛ من امتحان کردم فوق العاده بود ...
درس )
کد:
Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
متغیر :
FBlock : اگر مقدار این تابع True باشد ماوس و صفحه کلید قفل خواهند شد و اگر False باشد آزاد خواهد شد.
تذکر بسیار مهم !
قفل از اجرای این دستور برنامه تونو ذخیره کرده باشید چون بعدش مجبورید سیستمو ریست کنید که با کمال تاسف اطلاعات ذخیره نشده میره!
و یا
براش یک تایمر بزارید تا بعد از چند ثانیه مقدار FBlock از True به False برگرده
ممنون می شم اگه نظرهای کاربردی بدید با من در طرح مسائل شریک بشید
:11::10:
به درخواست دوست عزیزمون بستنی که امیدوارم مثل اسمش خوشمزه باشه
سلام
این تابع رنگ یک پیکسل را در درون یک کنترل گرافیکی عوض می کنه ؛ اگر تابع کار خودشو درست انجام بده نتیجه یک عدد مثبت غیر صفر مشه و اگر تابع به خطا برخورد کنه عدد صفر و بر می گردونه
کد:
Private Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
hdc : هندل گرافیکی کنترل مورد نظره
X : طول نقطه ی مورد نظر
Y : عرض نقطه ی مورد نظر
CrColor : رنگی که باید در نقطه ی مورد نظر ست بشه ( مقل VBBlue,VBRedو ... )
یک تابع جدید برای کسایی که دوست دارن مردم آزاری کنند
کد:
Private Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long,ByVal dwDuration As Long) As Long
این تابع به شما کمک می کنه که یک صدای بوق رو روی کارت صدای طرف بفرستید!( تو مایه های رو اعصاب راه رفتن)
دو مورد داره:
dwfreq : فرکانس صدایی رو که می خواهید پخش بشه مشخص می کنید هر چه پایین تر باشه صدا بم تره و هرچه بالاتر باشه صدا زیر تره اگه اشتباه نکنم
dwDuration : مربوطه به مدت زمان پخش صدا بر حسب میلی ثانیه
مثال :