PDA

View Full Version : دریافت رویدادهای ویندوز هنگام غیرفعال بودن فرم



HAIdle
جمعه 15 شهریور 1387, 12:42 عصر
سلام بر همه ی دوستان
اگر بخواهیم برنامه ای که با سی شارپ نوشته ایم همیشه رویدادهای ویندوز را دریافت کند باید چکار کنیم؟ به عبارت دیگر فرض کنید یک برنامه ی سی شارپ در حال اجرا باشد ولی فرم فعال ویندوز نباشد. حال می خواهیم اگر کاربر کلیدی را فشار داد به برنامه ی ما منتقل شده و روی آن پردازش انجام شود (منظور از غیرفعال بودن که مشخص است، یعنی فرم ما فرمی که رویدادهای ویندوز را دریافت کند نباشد و فرم دیگری فعال باشد).

mehdi.mousavi
شنبه 16 شهریور 1387, 22:34 عصر
سلام بر همه ی دوستان
اگر بخواهیم برنامه ای که با سی شارپ نوشته ایم همیشه رویدادهای ویندوز را دریافت کند باید چکار کنیم؟ به عبارت دیگر فرض کنید یک برنامه ی سی شارپ در حال اجرا باشد ولی فرم فعال ویندوز نباشد. حال می خواهیم اگر کاربر کلیدی را فشار داد به برنامه ی ما منتقل شده و روی آن پردازش انجام شود (منظور از غیرفعال بودن که مشخص است، یعنی فرم ما فرمی که رویدادهای ویندوز را دریافت کند نباشد و فرم دیگری فعال باشد).

سلام.
شما در واقع نیاز به Windows Hooks دارید. یه Hook نقطه ای هستش که یک Application میتونه subroutine ای رو بمنظور گرفتن پیامهایی که در سیستم تولید میشن، Register کنه. Hook ها تایپهای متفاوت و در نتیجه کاربردهای متفاوتی دارن. کاری که شما میخواهید انجام بدید، با Global Hook ها میسر میشه، اما متاسفانه .NET Framework از Global Hook ها پشتیبانی نمیکنه. در نتیجه، شما نیاز به یه Native DLL دارید تا بتونید با Import کردن اون در برنامه اتون، اینکارو انجام بدید.

برای کسب اطلاعات بیشتر به MSDN و این سایت (http://kbalertz.com/318804/Windows-Visual.aspx) مراجعه کنید.