View Full Version : فرستادن دکمه ها از کیبورد به فرم
sjj
دوشنبه 25 مهر 1384, 01:45 صبح
سلام
چطور میشه هر کلیدی که زده میشه اول از همه بره به فرم یعنی حتی قبل از خود ویندوز ویندوز به فرم ما ارسال بشه ؟؟
vbapr2005
دوشنبه 25 مهر 1384, 02:25 صبح
سلام
چطور میشه هر کلیدی که زده میشه اول از همه بره به فرم یعنی حتی قبل از خود ویندوز ویندوز به فرم ما ارسال بشه ؟؟
قبل از خود ویندوز فکر نمی کنم بشه. یعنی با اطلاعاتی که من دارم اصلا ابن امکان نداره. چون هر رویدادی به وسیله ی ویندوز -که تمام برنامه های تحت اونو کنترل می کنه- فهمیده می شه بعدش ویندوز به برنامه ی ما گزارش می کنه که این رویداد اتفاق افتاد. اون موقع هست که ما اگه بخئایم در برابر یه رویداد واکنش بدیم، اونو تو برنامه مون می گنجونیم.
پس اول ویندوزه که میفهمه چی شده و بعد به برنامه مون گزارش می کنه
ab_ba
دوشنبه 25 مهر 1384, 07:22 صبح
شما میتوانید مستقیما بافر صفحه کلید را مورد دسترسی قرار دهد
mRizvandi
دوشنبه 25 مهر 1384, 07:57 صبح
سلام
شما می تونید از مکانیزمی به نام Hook استفاده کنی:
Hook به معنای قلاب هست و در برنامه نویسی به این معناست که شما کنترل یک وسیله بدست می گیری و بعد ویندوز می تونه اون رو کنترل کنه.
در برنامه نویسی Hook ابتدا شما کنترل رو از ویندوز می گیری و اینطوری تمام Message های اون دستگاه به برنامه شما می رسه. شما می تونی از اون هر استفاده ای ببری. بعد از اون باید اون رو برای ویندوز ارسال کنی. در این بین می تونی اون Message رو از بین ببری، عوضش کنی یا استفاده کنی و ...
در برنامه نویسی Hook باید خیلی دقت داشته باشی وگرنه ممکنه که سیستم رو از کنترل ویندوز خارج کنی ...
مثال:
ابتدا کنترل Keyboard رو از طریق Hook از ویندوز می گیری سپس تمام کلیدهای زده شده در ویندوز می رسه به برنامه شما و بعد هم کلید رو مجددا می فرستدی برای ویندوز تا کار ویندوز مختل نشه والبته کار خود برنامه
هر وقت برنامه بخواد بره بیرون Keyboard رو UnHook می کنه
;-)
alireza_CBoy
دوشنبه 25 مهر 1384, 12:50 عصر
سلام
آقا یا خانم mRizvandi میشه یه نمونه برنامه Hook اینجا بذارین .
mRizvandi
چهارشنبه 27 مهر 1384, 18:15 عصر
سلام
چون نمونه داخل سایت زیاد هست من نمونه نفرستادم ولی می تونی از این استفاده کنی:
http://www.barnamenevis.org/forum/showthread.php?t=25175&highlight=Hook
;-)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.