چگونگی راه اندازی ماوس در زبان برنامه نویسی C

برای استفاده از مویس در Dos می بایست از وقفه ۳۳ کمک گرفت . بنابراین در این مقاله قبل از توضیح بکارگیری ماوس در C ابتدا به تشریح بکارگیری وقفه ها در C می پردازیم.
کسانی که با زبان برنامه نویسی اسمبلی کار کرده اند ، با کار وقفه ها به خوبی آشنایی دارند . در واقع در زبان اسمبلی تمامی کارها با فراخوانی وقفه ها انجام میشود چرا که این زبان یک زبان سطح پایین است . اما در زبانهای سطح بالا مثل C وقفه ها از چشم کاربر دور شده اند تا زبان برنامه نویسی به زبان محاوره ای انسان نزدیکتر شود . با این حال فراخوانی وقفه ها در C برای برنامه نویس امکان پذیر است .
در زبان C ایتدا باید یک متغیر از نوع رجیستر تعریف شود تا بتوان به کمک آن به رجیستر ها دستیابی داشت :
REGS r;
در تعریف بالا متغیر r از نوع Register تعریف شده که این نوع در سرفایل Dos.h قرار دارد.
حال برای دستیابی به یک رجیستر مانند AX و یا اجزای آن یعنی AH , AL یک یونیون در Dos.h تعریف شده است که ساختمان داخلی x در آن برای دستیابی به رجیستر ۲ بایتی (رجیستر کامل ) مانند AX و ساختمان داخلی h برای دستیابی به اجزای رجیستر ۲ بایتی یعنی AH , AL که یک بایتی هستند ، می باشند:

پس اگر بخواهیم به رجیستر AX و مانند آن دستیابی پیدا کنیم می نویسیم :
r.x.ax
و برای اجزای آن می نویسیم :

پس از مقدار دهی رجیستر ها و مشخص کردن شماره تابع یا سرویس ، نوبت به فراخوانی وقفه یا اینتراپت می رسد که با فرمان زیر انجام می شود :
int86(آدرس متغیر رجیستر خروجی,آدرس متغیر رجیستر ورودی,شماره وقفه در مبنای ۱۶);
اعداد مبنای ۱۶ در C با ۰x شروع می شوند . مثلا اگر بخواهیم تابع شماره ۱ از وقفه ۳۳ را فراخوانی کنیم باید شماره تابع را در AH قرار داده و سپس وقفه را فراخوانی کنیم :

که البته در مثال بالا از آنجایی که AH جزوی از AX می باشد و در سمت راست مقدار دهی می شود از AX استفاده شده است . در واقع AX=01 یعنی AL=0 و AH=1 .
متغیر in شامل ورودی های وقفه است و چنانچه وقفه خروجی هم داشته باشد خروجی های آن در out قرار می گیرد.
حال به استفاده از ماوس می پردازیم .
۱- راه اندازی ماوس : تابع ۰ از وقفه ۳۳ : اگر پس از اجرای وقفه مقدار AX برابر ۰ باشد یعنی ماوس راه اندازی نشده است .

لازم به ذکر است که قبل از فراخوانی این تابع باید درایور ماوس در داس را اجرا کنید مثلا : GMouse.com
۲ – نمایش کرسر ماوس : تابع ۱ از وقفه ۳۳ : پس از راه اندازی مویس اجرا می شود .

۳- مخفی کردن کرسر ماوس : تابع ۲ از وقفه ۳۳ :

۴-بدست آوردن مختصات مکان نمای مویس : تابع ۳ از وقفه ۳۳ : پس از اجرای وقفه شماره ستون در CX و سطر در DX قرار می گیرد .

۵- انتقال کرسر : تابع ۴ از وقفه ۳۳ : قبل از فراخوانی می بایست شماره ستون مورد نظر در CX و شماره سطر در DX قرار گیرد .

۶- تست کلیک شدن ماوس : تابع ۵ از وقفه ۳۳ : شماره کلید ماوس باید در BX قرار گیرد ( ۰ برای چپ – ۱ برای راست و ۲ برای وسط ) . اگر کلیک شده باشد مقدار ۱ در BX و گرنه ۰ در آن قرار می گیرد.

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







ساخت نرم افزار ویندوز،وب سایت،اپلیکیشن اندروید

سلام،مصطفی شیرالی هستم به اتاق برنامه نویسی من خوش آمدید، در این وب سایت بنده به شما خدمات برنامه نویسی ارائه می دهم، جهت آشنایی بیشتر در ادامه صفحه با من همراه باشید.

پراستفاده ترین زبان های برنامه نویسی که با آنها کد نویسی میکنم :

Android

C#.net

PHP

HTML5

CSS3

MySQL

SQL

SQLLite

JavaScript/Jquery

خدماتی که من برای شما انجام می دهم

 

ساخت اپلیکیشن اندروید

ساخت افزونه وردپرس

ساخت افزونه مای بی بی

نصب انواع سیستم مدیریت محتوا

تعمیر اسکریپت ها وافزونه های تحت وب

طراحی و ساخت اسکریپت های تحت وب

توسعه افزونه ها واسکریپت های تحت وب

برنامه نویسی قالب سیستم های مدیریت محتوا به سلیقه شما

ساخت انواع برنامه تحت دسکتاپ با C#.net

اعمال المان های سئو در قالب و هسته سایت

و….

ادامه مطلب…