ايران ويج

نسخه‌ی کامل: فشرده شدن همزمان دو کلید در سی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
در خواست راهنمایی در مورد چگونگی بررسی فشرده شدن همزمان دو کلید در سی (ctrl+p(
دوست من سلام

با چه کامپایلری کار می کنی ؟ واسه MFC میخوای یا تحت DOS ؟
اول یک کلید میگیری با دستور getch مقدار اونو میریزی داخل یک متغیر مثل key
بعد بررسی میکنی که
if (key==0)
key2=getch()
switch (key2){
case 58 :
cout<<"F1";
به همین شکل
راستی key2 ما از بافر خونده میشه
ممنون من با compilert dos کار میکنم
واسه برنامه آخر ترم که ویرایشگر متنه باید copy,cut,...بزارم
اگه راهنمایی بیشتر بکنید ممنون میشم...
آقا اسماعیل ممنون ولی من دقیقا متوجه نشدم کلیدهای ترکیبی مثل CTRL+O آیا SCII CODE دارن ممنون
سلام
من این کار رو در داس به کمک وقفه ها انجام می دادم. وفقه 16 که برای صفحه کلید است بطور کامل بر صفحه کلید تسلط دارد مثلا می تواند تشخیص دهد که کدام چراغ ها روشن و کدام ها خاموش هستند و یا اینکه در این لحظه شما کدام کلید را فشرده اید و هنوز رها نکرده اید و به همین ترتیب تمام امکانات مورد نیاز را فراهم می کند.
بله با فشردن کلیدهای insert و .... نیز کدی تولید می شودکه می توانید به کمک این وقفه آنها را استخراج نمایید.

موفق باشید
ممنون اگه فرصت داشتی بیشتر توضیح بده یا منبع و sample معرفی کن تا بتونم کامل تر مطلب یاد بگیرم.......ممنون
سلام
به نظر من دو راه هست:
1-به قول شما هر کلید یک ascii code داره
2-مثلا با وقفه ها بگیم وقتی کلید shift نگه داشته شده اگر مثلا کلید s را بزند فلان بشه
مشکل همینجاست که -> و <- arrow key اسکی کد ندارن یا من پیدا نکردم ..... استفاده از وقفه رو هم بلد نیستم.....
seyyedalian نوشته است:مشکل همینجاست که -> و <-  arrow key  اسکی کد ندارن یا من پیدا نکردم  ..... استفاده از وقفه رو هم بلد نیستم.....

چرا عزیزم کد اسکی دارند ولی به جای یکی دو تا دارند که یکی از آنها عدد صفر است و دیگری هم کد اسکی واقعی. اگر یک برنام بنویسید که در یک حلقه تکرار reapeat کلیدی را دریافت کنی آنگاه خواهید دید که با هر بار فشدن این قبیل کلید ها دو عدد به عنوان کد اسکی چاپ می شود که یکی صفر و دیگری هم کد واقعی.
در هر حال من فکر نمی کنم برای این قبیل کارها بتوانید غیر از وقفه ها از راه دیگری هم وارد شوید. حتما به سراغ وقفه بروید.
موفق باشید
متاسفانه vector وقفه ها توی ویندوز های NT - 2000 - XP قابل استفاده نیست . متاسفانه وقفه ها جواب نمیده و من برای DOS راهی غیر از وقفه نمیدونم !!
صفحه‌ها: 1 2