PDA

View Full Version : تعداد دفعاتی که یک کلید فشار داده می شود



hadi88
یک شنبه 18 بهمن 1394, 00:06 صبح
می خوام یک برنامه ای بنویسم که با اجرای اون کاربر هر چندتا که کلید esc را فشار داد رو بشمارد
نکته:اگر برنامه در حال اجرا باشه و کنترل روی برنامه دیگری باشه باز بتونه اینکار رو بکنه

nimaakbari
یک شنبه 18 بهمن 1394, 01:28 صبح
سلام میتونی از کد زیر استفاده کنی البته اگه کنترل رو برنامه دیگری باشد کار نمی کند.


int count=0;
if (keyData == Keys.Escape)
{
count++;
}


اگر مطالب مفید بودند تشکر یادتون نره

hadi88
یک شنبه 18 بهمن 1394, 12:01 عصر
ممنون دوست عزیز، ولی مشکل همون کنترل روی برنامه دیگر است

حسین.کاظمی
یک شنبه 18 بهمن 1394, 13:06 عصر
سلام
دوست عزیز این شمارش ها را هم میخایی ذخیره کنید یا خیر؟

amirc901
یک شنبه 18 بهمن 1394, 14:55 عصر
ممنون دوست عزیز، ولی مشکل همون کنترل روی برنامه دیگر است
خوب شما میتونی متغیرو به صورت global تعریف بکنی بعد برای هر کنترل یه event برای زمان keydown بنویسی و از کد بالا توشون استفاده بکنی

Davidd
یک شنبه 18 بهمن 1394, 15:06 عصر
برای اینکار باید از API های ویندوز استفاده کنی. اینجا یک مثال برای تشخیص فشردن دکمه PrintScreen هست: http://stackoverflow.com/questions/18291448/how-do-i-detect-keypress-while-not-focused

hadi88
دوشنبه 19 بهمن 1394, 00:45 صبح
سلام
دوست عزیز این شمارش ها را هم میخایی ذخیره کنید یا خیر؟

سلام
نه دوست عزیز نمی خوام ذخیره کنه فقط نشون بده کافی است مثلا در یک لیبل

hadi88
دوشنبه 19 بهمن 1394, 00:47 صبح
خوب شما میتونی متغیرو به صورت global تعریف بکنی بعد برای هر کنترل یه event برای زمان keydown بنویسی و از کد بالا توشون استفاده بکنی

مبشه واضح تر و با مثال توضیح بدید ممنون میشم

amirc901
سه شنبه 20 بهمن 1394, 00:00 صبح
مبشه واضح تر و با مثال توضیح بدید ممنون میشم

ببینید هر کنترلی که در فورم شما هستش دارای متد event برای زمان های مختلفی هستش مثالا زمانی که فورم داره لود میشه یا زمانی که فوکوس روی یه کنترل خاصی هست این متد event اجرا میشه خوب من میگم شما یه متغیر بعد از class تعریف کنید بعد مثلا 4 تا کنترل وجود داره در قسمت event key down همه کنترل هاتون بنویسید اگه دکمه فشار داده شده برابر با دکمه مورد نظر بود اون متغیر + بشه ! بازم اگه متوجه نشدین فایلتونو پخ کنید تا براتون بازنویسی کنم

amirc901
سه شنبه 20 بهمن 1394, 00:08 صبح
ببینید هر کنترلی که در فورم شما هستش دارای متد event برای زمان های مختلفی هستش مثالا زمانی که فورم داره لود میشه یا زمانی که فوکوس روی یه کنترل خاصی هست این متد event اجرا میشه خوب من میگم شما یه متغیر بعد از class تعریف کنید بعد مثلا 4 تا کنترل وجود داره در قسمت event key down همه کنترل هاتون بنویسید اگه دکمه فشار داده شده برابر با دکمه مورد نظر بود اون متغیر + بشه ! بازم اگه متوجه نشدین فایلتونو پخ کنید تا براتون بازنویسی کنم

اقا شرمنده من اصلا منظورتونو اشتباه متوجه شده بودم خوب شما میخواید اگه فوکوس رو برنامه نبود تعدادو بشماره باید همونطور که Davidd (http://barnamenevis.org/member.php?313434-Davidd) گفتن از API های ویندوز استفاده کنید .
http://barnamenevis.org/showthread.php?403220-%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-API-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

http://ashiyane.org/forums/showthread.php?92266-%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-api-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

http://www.gooyait.com/1389/06/05/what-is-an-api-and-what-are-they-good-for.html