PDA

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



programmermp
جمعه 06 بهمن 1385, 15:51 عصر
با سلام

چطوری می شه از کلید های ترکیبی برای انجام کار خاصی استفاده کرد

ببینید مثلا ما می گفتیم که (در خاصیت keydown مربوط به فرم)



if e.keycode=keys.enter then
'do Some Operation
end if

بعد خاصیت keypreview فرم رو برابر true می زاشتیم که باعث می شد با فشرده شدن

کلید اینتر توسط کاربر عملیات مورد نظر انجام بشه

خوب حالا من می خواهم به جای کلید اینتر از کلیدهای ترکیبی استفاده کنم

مثلا : ctrl+U,alt+F1,ctrl+shift+s

فرقی نمی کنه کدوم یک از کلیدهای ترکیبی فوق رو بشه استفاده بکنی

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

با تشکر

Behrouz_Rad
جمعه 06 بهمن 1385, 16:21 عصر
از تابع ای پی آی RegisterHotKey استفاده کن.
با تابع WaitMessage انتظار میکشی تا یک کلید ترکیبی فشرده بشه و با تابع PeekMessage هم فشردن کلیدها رو بررسی می کنی که اگر فشرده شده بودند، کار مشخصی رو انجام بدی.
در پایان (زمان پایان برنامه) باید با تابع UnregisterHotKey، کلیدهای ترکیبی معرفی شده رو لغو کنی.

موفق باشید.

programmermp
جمعه 06 بهمن 1385, 16:27 عصر
از تابع ای پی آی RegisterHotKey استفاده کن.
با تابع WaitMessage انتظار میکشی تا یک کلید ترکیبی فشرده بشه و با تابع PeekMessage هم فشردن کلیدها رو بررسی می کنی که اگر فشرده شده بودند، کار مشخصی رو انجام بدی.
در پایان (زمان پایان برنامه) باید با تابع UnregisterHotKey، کلیدهای ترکیبی معرفی شده رو لغو کنی.

موفق باشید.

سلام اقا بهروز

دست شما درد نکنه به خاطر پاسختون

حالا این تابع ای پی آی رو باید از کجا گیر بیارم اگه دارید لطف کنید یه لینک بدید

حالا این تابع شده یا یک نمونه برنامه در ارتباط با استفاده از این تابع

با تشکر از شما

Behrouz_Rad
جمعه 06 بهمن 1385, 16:42 عصر
نحوه استفاده + مثال:
http://www.pinvoke.net/default.aspx/user32.RegisterHotKey

ali_kolahdoozan
جمعه 06 بهمن 1385, 16:51 عصر
ولی بدون api همی میتونی با گزاشتن and توی if این کار رو بکنی

manitack
جمعه 06 بهمن 1385, 16:53 عصر
اگر از mainmenu در فرم استفاده میشود میتوانید عملیات را به آن و کلیدهای ترکیبی آن بسپارید
(shurtcut key) . میتوان mainmenu را نمایش هم نداد.

programmermp
جمعه 06 بهمن 1385, 17:01 عصر
اگر از mainmenu در فرم استفاده میشود میتوانید عملیات را به آن و کلیدهای ترکیبی آن بسپارید
(shurtcut key) . میتوان mainmenu را نمایش هم نداد.
سلام

نه عزیز دلم از main menu استفاده نمی کنم

خودم توی سایت code project گشتم یه چند مورد پیدا کردم

ببینم اگه نتونستم باهاشون کار کنم می زارم اینجا شما هم یه نگاهی بهش بندازید

چون با c#,c++ هست کدهاش



همین طوری هم با and میش ه ................


چطوری یه توضیحی لطف کنید بدید علی اقا

فکر کنم منظورتون کد زیر باشه درسته



if e.keykode=keys.F1 or/and e.keycode=keys.F2 then
'Do Some Operation
end if


درسته

اگه درسته باید بگم که من اینو می دونستم ولی می خواهم

ببینم راه دیگری برای این کار هست یا نه

که اقای راد گفتن از ای پی ای استفاده کن

ali_kolahdoozan
جمعه 06 بهمن 1385, 17:07 عصر
شما 2 راه بهتون پیش نهاد شده یکی api توسط آقای راد و یکی توسط من که میفرمائید بلد بودم . دیگه چی می خواهید . هر چند من دلیل استفاده نکردن از راهی که بلدید و درگیر کردن خودتون با api رو متوجه نمیشم

zahedak
پنج شنبه 01 تیر 1391, 03:11 صبح
if e.control and e.keycode=keys.enter then

end if