گاهی اوقات اسکریپت یک اسکریپت یا برنامه به تقلید از برخی اقدامات کاربر نیاز دارد - به عنوان مثال ، فشار دادن یک کلید یا کلیک کردن روی ماوس بر روی یک عنصر. این مسئله را می توان با استفاده از زبان داخلی برنامه نویسی که برنامه در آن نوشته شده است ، و یا با استفاده از یک رابط ویژه سیستم عامل تحقق بخشید. چنین رابطی برای تعامل برنامه های کاربردی با برنامه های سیستم در نظر گرفته شده و API - Application Programming Interfaces نامیده می شود.
دستورالعمل ها
مرحله 1
دریابید که آیا زبانی که برای نوشتن برنامه یا اسکریپت از آن استفاده می کنید دارای شبیه سازی ضربه کلید است. به عنوان مثال ، در JavaScript ، دکمه سمت چپ ماوس با استفاده از روشی شبیه سازی می شود که به عناصر خاص رابط کاربر محدود می شود. به عنوان مثال ، برای تقلید از یک دکمه سمت چپ ماوس را فشار دهید در حالی که مکان نما بیش از یک دکمه به نام autoClkButton است که در شکلی به نام autoClkForm قرار گرفته است ، شما باید از ساختار document.autoClkButton.autoClkForm.click () استفاده کنید در این زبان ، نه تنها دکمه ها (دکمه ، تنظیم مجدد ، ارسال) ویژگی کلیک () دارند ، بلکه عناصر - جعبه تأیید و رادیو را نیز انتخاب می کنند.
گام 2
اگر زبانی که استفاده می کنید فاقد ابزار داخلی است ، از عملکرد keybd_event خارجی استفاده کنید. این یک عملکرد Win32 API است ، بنابراین برای اینکه بتوانید از برنامه خود به آنها دسترسی پیدا کنید ، باید در ابتدای کد خود یک بلوک قرار دهید که توابع کتابخانه خارجی را وارد کند. این کار باید مطابق با نحو محیط نرم افزار مورد استفاده انجام شود. به عنوان مثال ، در زبان برنامه نویسی ترمینال MQL (MetaQuotes Language) برای تجارت سهام ، برای فراخوانی توابع قرار داده شده در کتابخانه سیستم user32.dll ، باید خطوط زیر را در ابتدای کد قرار دهید: #import "user32.dll" bool keybd_event (int bVk، int bScan) ؛ # وارد کردن پس از آن ، استفاده از تابع keybd_event اعلام شده در بلوک import امکان پذیر خواهد بود.
مرحله 3
Keybd_event چهار پارامتر دارد. اولین (bVk ، نوع داده BYTE) می تواند یکی از 255 مقادیر را بدست آورد و کلیدی را نشان می دهد که با فشار دادن شبیه سازی می شود. ببینید کدام یک از این مقادیر به کلید موردنظر در این صفحه اختصاص یافته است - https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx. پارامتر دوم (bScan ، نوع BYTE) "کد اسکن" است که با فشار دادن کلید انتخاب شده تولید می شود. سومین (dwFlags ، نوع DWORD) می تواند یک یا هر دو مقادیر ارائه شده آن را بدست آورد (KEYEVENTF_EXTENDEDKEY و KEYEVENTF_KEYUP). اولی نشان می دهد که یک کد کلید توسعه یافته تولید می شود و دومی نشان می دهد که دکمه فشار داده شده و سپس آزاد شده است. پارامتر چهارم (dwExtraInfo ، نوع ULONG_PTR) می تواند شامل پرچم های اضافی خاص هر کلید باشد.