ورود

View Full Version : گرفتن یک کلید بدون توقف



هانی هاشمی
یک شنبه 28 مرداد 1386, 16:39 عصر
سلام
وقتی دستور getch() اجرا می شه برنامه رو وایمیستونه و منتظر می شه تا کلیدی بزنین . حالا دستوری هست که واینسته و کلید رو بگیره (خدا کنه متوجه شده باشین چی می گم تو پاسکال readkey بودش).

emad_67
یک شنبه 28 مرداد 1386, 19:41 عصر
میشه بگی چیکار می خوای بکنی ؟
منظورت چیه که وانسته و کلید رو بگیره؟ بلاخره برای گرفتن یه کلید باید برنامه منتظر بمونه تا کاربر یه چیزی رو بزنه

mzjahromi
یک شنبه 28 مرداد 1386, 19:44 عصر
میتونی از BiosKey() استفاده کنی این تابع مشخص میکنه که آیا کلیدی فشرده شده یا نه یه پارامتر ورودی هم داره که یادم نیست باید صفر باشه یا 1
اگر کلیدی فشرده شده بود اونوقت Getch رو صدا بزن.
ترکیب این دو تا میشه همون که میخوای

saeid5977
یک شنبه 28 مرداد 1386, 20:02 عصر
سلام
می تونی از kbhit استفاده کنی

int ch;
if(kbhit()){
ch=getch();
switch(ch){
case ....
}
}


اگه کلیدی تو بافر باشه kbhit در اینصورت 1 برمیگردونه و getch اجرا شده و همون کلیدی که تو حافظه بوده رو برمیگردونه(بدون توقف) وگرنه 0 و از روی getch رد میشیم.
یه مثال کامل بعدا میذارم براتون همینجا.

موفق باشید.