PDA

View Full Version : سوال: کنترل صفحه کلید در بازی ها



khalilzade
یک شنبه 13 مهر 1393, 22:23 عصر
سلام خدمت دوستان و اساتید.
در حال انجام پروژه ای هستم که در اون از پورت سریال کدی دریافت می شود، که با توجه به اون کد باید دکمه ای از صفحه کلید شبیه سازی شود (برای بازی کامپیوتری)
مثلا اگر a از پورت سریال دریافت شد دکمه بالا فشرده شود یا بازیکن بازی به جلو برود.
با جستجو در سایت ها برای شبه سازی صفحه کلید به کد زیر رسیدم


Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
.
.
.
keybd_event(Keys.W, 0, 0, 0)

اما در هیج بازی انجام نشد. ولی در تکست باکس ها کار می کرد و یا نرم افزار notepad, word و ...

بعد از اون از کد


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
SendKeys.Send("{W}")
End Sub

استفاده کردم که در بازی IGI1 کار کرد. بازیکن جلو می رفت ولی کند! وقتی خودم دکمه w رو فشار میدادم خیلی رونتر حرکت می کرد.
این کد دوم در بازی call of duty کار نکرد.
می شه راهنماییم کنید که چگونه می توانم بازیکن های بازی را کنترل کنم؟ باتشکر

khalilzade
چهارشنبه 16 مهر 1393, 11:39 صبح
کسی نیست کمک کنه؟:گریه:

khalilzade
پنج شنبه 24 مهر 1393, 13:41 عصر
از مدیران فروم کسی بلد نیست؟ یک راهنمایی یا سر نخی چیزی...

مهرداد صفا
پنج شنبه 24 مهر 1393, 17:41 عصر
سلام.


با توابع SendMessage رویدادهای KeyDown و KeyUp رو شبیه سازی کنید شاید به جواب رسیدید.

reza.avoor
چهارشنبه 24 تیر 1394, 12:30 عصر
اقا مم همین سوالو از شما دارم!!!هیجکی نمیدونه؟؟؟؟؟؟؟؟؟؟تا اونجایی که من میدونم دلیل کار نکردن کدتون در بازی ها بخاطر اینه که اکـثر بازی های از directx.input برای اسکن کیبورد استفاده میکنند و با روش عادی نمیشه بهشون شناختوند! متاسفانه گوگلو کچل کردم ولی چیزی دستگیرم نشد.اینجام که ظاهرا کسی بلد نیست