PDA

View Full Version : تشخیص کلیدهای فشرده شده حتی زمانی که فرم minimize هست



behradravanbod
چهارشنبه 24 تیر 1394, 03:44 صبح
سلام دوستان
یه سوال دارم.مثلا یه کد داریم که میگه اگه تو فرم مثلا کلید F12 کلیک شد یه کاری کنه...
if (e.KeyData == Keys.F12)
//code

حالا این زمانی کار میکنه که فرم باز باشه جلو چشممون.اما وقتی فرم minimize باشه کار نمیکنه.میخوام ببینم برای وقتی که فرم minimize هستش کار بکنه.
ممنون میشم یاری برسانید.

reza_noei
چهارشنبه 24 تیر 1394, 04:35 صبح
سلام دوستان
یه سوال دارم.مثلا یه کد داریم که میگه اگه تو فرم مثلا کلید F12 کلیک شد یه کاری کنه...
if (e.KeyData == Keys.F12)
//code
}
حالا این زمانی کار میکنه که فرم باز باشه جلو چشممون.اما وقتی فرم minimize باشه کار نمیکنه.میخوام ببینم برای وقتی که فرم minimize هستش کار بکنه.
ممنون میشم یاری برسانید.

سلام
اصل بر اینه که کلید فشرده شده به برنامه فعال ارسال بشه و سازوکارهای تعبیه شده در آن برنامه به کلید فشرده شده پاسخ بدهند.
وقتی برنامه شما minimize بشه یعنی در حالت فعال نیست پس کلید فشرده شده به آن ارسال نمی گردد.
یا باید از minimize شدن برنامه تان جلوگیری کنید یا ... نمیدونم شاید یک فکر بهتر.
یا علی

elec60
چهارشنبه 24 تیر 1394, 09:09 صبح
باید با Low Level Hooks کار کنین
سرچ کنین تو گوگل به نتیجه می رسین.

مثلا Babylon از همین تکنیک استفاده می کنه و نیازی هم نیست که پنجره اصلیش فعال باشه

aliagamon
چهارشنبه 24 تیر 1394, 09:54 صبح
با هوک کردن user32 این کار به راحتی قابل انجامه
یه تابع تو این dll هست به نام registerHotkey فکر کنم .
تو گوگل در مورد global hot key جستوجو کنید نمونه زیاد هست

behradravanbod
چهارشنبه 24 تیر 1394, 12:18 عصر
اخه من می خوام برنامم حالا تحت هر شرایطی بود بود،اما میخوام مثلا بازی (منظورم از بازی همین fifa و ایناست) در حال اجراست کار کنه

aliagamon
چهارشنبه 24 تیر 1394, 12:44 عصر
کار میکنه من خودم یه فارسی نویس برای دوتا 2 نوشتم قبلا(کامل نکردمش هیچ وقت) اینتر میزدی برنامه یه گوشه بازی میومد فارسی مینوشتی تو چت
درواقع برنامه شما تا زمانی که درحال اجرا باشه یه دکمه فشرده بشه براتون فرستاده میشه با این روش حالا چه focus باشه چه نباشه