آژانس هواپیماییfootbal

چگونه مي شود يكي از كليد هاي كيبورد را از كار انداخت

شروع موضوع توسط Mehdi Hamedali ‏23 ژانویه 2004 در انجمن برنامه نویسی

  1. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    سلام
    چطور ميشه در يك فرم كه پر از چك باكس تكست باكس كمبو باكس فيلد كليد هست كليدي مثل حرف S و يا کليد کاربردي مانند Tab را از کار انداخت.
    با تشکر پيشاپيش
    :wub:
    قربان شما
    MHa
     
  2. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    دوستان گرامي با سلام
    يعني سئوال ما اين قدر سخت بود يا ..... :p

    خلاصه
    ممنون

    باتشکر
    MHa
     
  3. Adeli

    Adeli کاربر تازه وارد

    با سلام خدمت شما دوست عزيز
    براي سوال شما يه راهنمايي كوچك دارم شما براي اين كار ( حذف يك كليد ) بايد دنبال سيستمي به نام هوك ( Hook ) برويد .
    اگر اطلات بيشتري در مورد اين سيستم داريد برام ايميل بفرستيد .
    موفق باشيد
     
  4. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    سلام به دوست عزیز
    من يک راه پيدا کردم که البته فقط در VB کار مي کنه
    البته اگر خواستي اطلاعاتي در مورد اون داشته باشي در خدمت هستم
    در هر حال متشکر از راهنماييت

    قربان شما
    MHa
     
  5. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    دوستان گرامي فکر مي کنم شما نتونستيد به من کمک کنيد
    فکر کنم خودم زود تر به نتيجه رسيدم

    قربان شما
    MHa
     
  6. littlerabbit

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

    سلام
    1.در مورد Hook خق با شماست راهي كه منم سراغ دارم Hook هست اما Hook يك CallBack ميخواد و اين در وي بي كارو سخت ميكنه.
    2. Hook خطر Crash واسه وي بي داره اصولا هوك ميتونه مزاحم بزرگي به حساب بساد اين برنامه هايي كه معمولا مينويسن و باهاش كليه كليدهايي رو كه كاربر زده ميدزدن از همين هوكاستفاده ميكنن.
    من كد دلفي رو كه خودم نوشتم و ممكنه باعث Crash در Explorer ميشه (گاهي البته اگه مثل من هميشه در خال انگولكش باشي) اين هوك هيچكاري نميكنه ققط همه كليدها از اين فيلتر رد ميشن و اگه بخوايد ميتونيد اونو به فيلتر بعدي ژاس نديد و اين اصلا در مايكروسافت Doc توصيه نشده :wacko: :wacko:

    کد:
    var
      HookHandle : HHOOK ;
        function HooKProc(Code : Integer ;Param1 : WPARAM  ; Param2 : LPARAM  ):LRESULT ;stdcall;
        begin
            Result := CallNextHookEx(HookHandle ,Code ,Param1 ,Param2);
        end;
    
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
       UnhookWindowsHookEx(HookHandle );
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      HookHandle := SetWindowsHookEX(WH_KEYBOARD ,HooKProc ,HInstance,0);
    end;
    
    كد هيچ گارانتي نداره با مسئوليت خودتون استفاده كنيد!!!!! Param 1& 2 همون كليدهايي هستن كه ميخواد ميتونيد CallNextHook رو بيخيال شيد اما توصيه شده نيست منظورم اينه بيلي گفته نكنيد!!!!اونوقت كليد تو همين تابع خفه ميشه.
    براي گرفتن آدرس تابع تو وي بي ميتونيد از اپراتور AdressOf استفاده كنيد On and On :ph34r:



    خرگوش كوچولو
     
  7. panypay
  8. littlerabbit

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

    اما دز کل اگه فقط کارت با Edit و کنترل ها یمشابه درست میشه چرا توی رویداد KeyPress تمرکز نمیکنی؟
     
  9. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    سلام به خرگوش كوچولو و همه دوستان
    من در مورد هوك بگم كه اصلاَ قبولش ندارم چون تو برنامه هاي كه تابع وي بي هستتند و از آن پيروي مي كنند اصلاَ نمي شه كه اين برنامه رو فرا خوني كرد و در كل من فكر مي كنم كه هوك به درد نمي خوره
    ولي خرگوش كوچولو دقيقاَ دست گذاشتي روي جاي كه باهاش مي شه اين كار رو كرد
    روال KeyPress روال خوب و راحت و شناخته شده اي که با دو دستور IF و دستور KeyAscii اين کار انجام ميشه و پيش نيازش دانستن Ascii هاي کليد هاي است که مي خواهي اونو رو حذف کني
    ولي مشکل من با VB.Net که آخرش همه کارا درسته ولي يک تعريف مي خواد که من نميدونم و کار نمي کنه
    مشکل من مثل خيلي هاي ديگه به روز نبودن
    به هر حال متشکر

    :happy:

    قربان شما
    MHa
     
  10. littlerabbit

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

    به قولي انسان دشمن اونچيزيه كه نميدونه. چه قبول داشته باشي و چه نداشته باشي اين شگرد هست و كاربرد هم داره. اما منظورت از اينكه يه تعريف ميخواي چيه؟؟؟؟
     
  11. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    سلام به همه دوستان
    اولين كه من منظور شما رو كه انسان دوشمن ..... نفهميدم آخه من خيلي سواد ندارم
    دوم اين كه من بلد هستم و اين كار رو بارها و بارها انجام دادم نه تنها تو VB بلکه تو برنامه های دیگه هم این کار رو انجام دادم ولی من با این کار می خواستم شما کمی از اطلاعات خودتون رو به دیگر دوستان آموزش بدید البته در این مورد
    و اما در مورد VB.Net و تعریف خاص این که من بسیاری از دسورات را که تو VB 6 انجام می دادم با یک ابزار و یا تنظیم یک دورنما قابل اجرا بود ولی این دستورات تو VB.Net قابل اجرا نشد و در هنگام Run به مشکل برخوردیم اما با یک تعریف خاص (که شبیح همون دورنما ها و یا ایجاد تعریفی یک ابزار بود) این کار قابل انجام شد
    راستی خرگوش کوچولو Visual.net چقدر کار کردی هیچ کودوم از دستوراتی که می نویسی تو VB.net کار نمی کنه چرا
    من خیلی سوادم پایینه یا شما دستوراتت سطح بالان

    قربان شما
    MHa
     
  12. littlerabbit

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

    منظورت از اينكه يه تعريف ميخواي چيه؟؟؟؟ يه نمونه : اين کليد A رو تو net رو يه Text غير فعال ميکنه :
    کد:
    	Private Sub Text1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles Text1.KeyPress
    		Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
    		If KeyAscii = Asc("A") Then
                KeyAscii = 0
            End If
    
            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If
    	End Sub
    
    اما يه چيز ديگه هموطن من هيچوقت نگفتم كدهام مال وي بي دات نت هست . گفتم؟؟؟؟ همه كدها مال وي بي 6 بوده ولي طوري نوشته شده كه به راحتي با خود مبدل نت تبديل بشه و مشكلي پيش نياد. خالا كه متلك بازاره منم ميگم (اما جدي نگير) وقتي فرق وي بي 6 با نت رو فهميدي بيا.... :D (شرمنده شوخي بود جدي نبود!!!) :p
     
  13. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    سلام به همه دوستان
    دستت درد نكنه خرگوش كوچولو
    مي رم امتحان نكم
    ولي باورت ميشه چيزي از حرف هاي آخرت نفهميدم
    شرمنده من سواد ندارم

    قربان شما
    MHa
     
  14. avajang.com .left
  15. littlerabbit

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

    اون حرفا رو جدي نگير. منم خودم هم نفهميدم چي مينويسم!!!
     
  16. Mehdi Hamedali

    Mehdi Hamedali کاربر تازه وارد

    سلام به همه دوستان
    خرگوش كوچولو جان سلام
    بابا خيلي كارت درسته :D
    دوستت داريم بابا :happy:
    راستي از اين به بعد يك سري سئوال بهت ميدم دوست داشتي جواب بده تا هم من بهتر ياد بگيرم و هم دوستان استفاده ببرند
    يادآوري كنم كه اين قولي بود كه به احسان دادي.
    اگه قبول داري پيغام بذار

    قربانت
    MHa
     
خرید بک لینکreviews عسل طبیعی و گرده گل ایرانی