آموزش استفاده از کتابخانه ماوس و کیبورد در سی شارپ
اگر نرم افزار «Advanced Key And Mouse Recorder» دیده باشید، میدانید که ابزاری قدرتمند در زمینه ضبط تمام فعالیت های ماوس و صفحهکلید برای انجام خودکار کارهای تکراری میباشد. یعنی شما توسط این نرم افزار میتوانید حرکات ماوس، کلیک ماوس و ضربه صفحه کلید در هر برنامه از جمله بازی، نرم افزار نقاشی، واژه پرداز و … را ضبط و سپس پخش کنید! به طوری که کامپیوتر خودش کلیک کرده و عملیات را انجام دهد!
حالب است بدانید که از این تکنیک در گذشته برای ساخت نرمافزارهای ارسال تبلیغات انبوه در پیامرسانهایی مثل تلگرام و وایبر استفاده میشد! به این صورت که فرآیند ارسال تبلیغات یک بار ضبط میشد و سپس به صورت خودکار در نرمافزار مربوط به آن پیامرسان بارها و بارها تکرار میشد!
اما حالا شاید بخواهید این قابلیت را خودتان در نرمافزاری که مینویسید پیاده کنید! یعنی نرم افزار شما بتواند کلیک شدن کیبورد، کلیدهای ترکیبی، تغییر مکان ماوس، کلیک چپ، کلیک راست و … را شبیه سازی کرده و همچنین بفهمد که ماوس در کدام نقطه کلیک کرده است تا مختصات آن را بگیرد.
برای انجام این کار، کتابخانهای به نام «Mouse_Keyboard» را برایتان آماده کرده ایم که به وسیلهی آن میتوانید این کارها را به سادگی انجام دهید.
کلاسهای موجود در کتابخانه
کلاس MouseSimulator: این کلاس وظایف زیر را برعهده دارد.
- کلیک چپ ماوس
- کلیک راست ماوس
- تغییر مکان نشناگر یا فلش ماوس در صفحه نمایش
- متد leftClick
با گرفتن ورودی x و y که به ترتیب فاصله از چپ و فاصله از بالا می باشند، عمل کلیک چپ ماوس را انجام می دهد.
توجه کنید که منظور از فاصله از چپ و بالا یعنی مختصات محلی که قرار است کلیک چپ شود. - متد rightClick
با گرفتن ورودی x و y که به ترتیب فاصله از چپ و فاصله از بالا می باشند، عمل کلیک راست ماوس را انجام می دهد.
توجه کنید که منظور از فاصله از چپ و بالا یعنی مختصات محلی که قرار است کلیک راست شود. - متد moveCursor
با گرفتن ورودی x و y که به ترتیب فاصله از چپ و فاصله از بالا می باشند، عمل تغییر مکان ماوس را انجام می دهد.
توجه کنید که منظور از فاصله از چپ و بالا یعنی مختصات محلی که قرار است علامت یا نشانگر ماوس به آن جا برود.
کلاس MouseEvent
این کلاس وظیفه گوش کردن به رویداد های ماوس را برعهده دارد. (نیازی به ساخت نمونه از کلاس نیست)
رویداد کلیک شدن در جایی و گرفتن مختصات محل کلیک شده، وظیفه این کلاس می باشد.
- متد start
وقتی صدا زده شه فرایند گوش دادن به رویداد کلیک شدن ماوس شروع می شه. - متد stop
وقتی صدا زده شه فرایند گوش دادن به رویداد کلیک شدن ماوس توقف می شه. - اختصاص دادن رویداد به شرح زیر است
1 |
MouseEvent.MouseAction += MouseEvent_MouseAction; |
که در این جا MouseEvent_MouseAction نام متدی است که رویداد در آن اتفاق می افتد:
1 2 3 4 5 6 7 |
private void MouseEvent_MouseAction(object sender, EventArgs e) { Point point = (Point)sender; int x = point.X; int y = point.Y; } |
آبجکت sender از نوع Point می باشد پس آن را به نوع Point که تعریف می کنیم cast کرده و مختصات را از آن می گیریم 🙂
کلاس KeySimulator
این کلاس برای فشار دادن دکمه و رها کردن دکمه و کلیدهای ترکیبی می باشد.
- متد keyDown
این متد با گرفتن مقدار بایت کلید، آن را فشار داده و رها نمی کند، یعنی فرض کنید شما دکمه Space را پایین برده و هنوز رها نکرده اید.
در مورد مقداری که این متد می گیرید در آخر بحث خواهیم کرد. - متد keyUp
این متد با گرفتن مقدار بایت کلید، آن را رها می کند، یعنی اگر به فرض توسط متد بالا پایین رفته باشد، با این متد می توان آن را رها کرد.
در مورد مقداری که این متد می گیرد در آخر بحث خواهیم کرد. - متد keyPress
این متد با گرفتن مقدار بایت کلید، دو عمل بالا را به صورت پشت سرهم انجام میدهد، یعنی یک فشار دادن و رها کردن.
در مورد مقداری که این متد می گیرد در آخر بحث خواهیم کرد. - متد ctrl_plus
این متد با گرفتن مقدار بایت کلید، عمل کلیدهای ترکیبی ctrl+… را انجام می دهد.
در مورد مقداری که این متد می گیرد در آخر بحث خواهیم کرد. - متد alt_plus
این متد با گرفتن مقدار بایت کلید، عمل کلیدهای ترکیبی alt+… را انجام می دهد.
در مورد مقداری که این متد می گیرد در آخر بحث خواهیم کرد. - متد shift_plus
این متد با گرفتن مقدار بایت کلید، عمل کلیدهای ترکیبی shift+… را انجام می دهد.
در مورد مقداری که این متد می گیرد در آخر بحث خواهیم کرد.
نکته: توجه داشته باشید که شما خودتان هم به وسیله متدهای keyDown و keyUp و keyPress می توانید عملیات کلیدهای ترکیبی را انجام دهید.
مقدارهایی که متدها می گیرند:
متدها مقدار بایتی را قبول می کنند که این مقدار بایت برابر است با یک عدد که معمولا آن را با فرمت هگزادسیمال نمایش می دهند و هگزادسیمال مبنای 16 عدد می باشد. برای مثال مقدار هگزادسیمال کلید F روی کیبورد برابر با 0x46 و مقدار کلید H برابر 0x48 می باشد که می توان به این صورت هم نوشت و هر کدام به ترتیب عدد 70 و عدد 72 را نمایش می دهند که با استفاده از فرمول های ریاضی قابل تبدیل هستند و همچنین می توانید یک متغیر عددی را تعریف کرده و این مقدارهای هگزادسیمال را به آن ها نسبت دهید، کامپیوتر خود همه این ها را به 01 که در اصل مبنای 2 می باشد تبدیل خواهد کرد.
نکته: همچنین شما پس از نسبت دادن مقدار به صورت هگزادسیمال، اگر آن را نمایش دهید به صورت دسیمال یا مبنای 10 نمایش داده خواهد شد.
نیازی نیست شما این ها را حفظ باشید چون همه آن ها در کلاس KeyHexValues جمع آوری شده اند، همچنین می توانید از این سایت هم مشاهده کنید.
برای مثال در کلاس برای حرف F می نویسیم KeyHexValues.F و برای حرف H می نویسیم KeyHexValues.H و برای کلید space می نویسیم KeyHexValues.VK_SPACE و برای کلید ctrl می نویسیم KeyHexValues.VK_CONTROL و …
نکته: سورس نمونه ای هم به همراه فایل برایتان قرار داده شده است.
نظرات ثبت شده بدون دیدگاه