الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

KeyBoard

مغلق
بدأه ahmedbenzid في 10 سبتمبر 2005 · 6 رد · 636 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

undefined [ :blink: :blink: COLOR=blue]

السلام عليكم...

لدي أستفسار وأرجو المساعدة في إيجاد حل لهذا الإستفسار...

أرغب بإيقاف عمل جميع مقاتيح الkeyboard ماعدا الأحرف و الأرقام؟؟؟

لقدنجحت في إيقاف عمل الALT بالكامل و لكن لم أستطيع إيقاف عمل الCTRL أو SHIFT أو (ctrl+alt+del) وحتى مفتاح الwin لم أستطيع إيقافه ..

ملاحظة:-

أنا أعمل على منظومة تعمل على نظام الXP وأرغب بأن تعمل على هذا النظام فقط.كيف ذلك؟؟؟؟؟

#2

يمكن ذلك عن طرق عمل Hook لا أعرف كيف يسمى هذا بالعربية :blink:

على أي حال هناك الكثير من المكونات التي تساعدك

جرب من هنــــــا

d4baa0.gif
#3

يطلق العرب على كلمة hook تعبير "مقبض" وهو تعبير لا ادرى مدى صحته :)

{ربى زدنى علما}

#4

اخي العزيز اليك هذا الكود الذي يوقف

caps,tab,shif,

 procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
.....

var
...
 NUMLOCK,CAPITAL,SHIFT,ALT:integer;
......
procedure TForm1.FormCreate(Sender: TObject);
var KeyState:  TKeyboardState;
begin
  GetKeyboardState(KeyState);
  NUMLOCK:=KeyState[VK_NUMLOCK];
  CAPITAL:=KeyState[VK_CAPITAL];
  SHIFT:=KeyState[VK_SHift];
  ALT:=KeyState[VK_menu];
 Application.OnMessage := AppMessage;
end;



procedure TForm1.appMessage(var Msg: TMsg; var Handled: Boolean);
var

 KeyState:  TKeyboardState;
    begin
      GetKeyboardState(KeyState);
     if Msg.Message = WM_KEYDOWN then
         if (Msg.wParam =VK_Tab ) then
              begin
               Label1.Caption:=Label1.Caption+'s';
               Handled:=true;
              end;

         KeyState[VK_NUMLOCK]:=NUMLOCK;
         KeyState[VK_CAPITAL]:=CAPITAL;
         KeyState[VK_SHift]:=Shift;
        KeyState[VK_Menu]:=ALT;
         SetKeyboardState(KeyState);


    end;

استخدمنا OnMessagу من االغرض ن لانه المكان الوحيد الذي نستطيع منه التقاط ال tab

لاحظ اننا حفظنا الحالية الابتدائية للازرار في OnCreate ثم اعدنا اهم القيم في MessageApp

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#5

لابد ان يفيدك هذا

/index.php?showtopic=70218

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#6

استاز romanof الكود السابق ذكره لم يعمل معى (لم يبطل عمل المفاتيح) وشكرا

{ربى زدنى علما}

#7

رغم ان الكود اشتغل لكن خذ الكود الذي يمنع NumLock,caps,

const
  MyHotKey=VK_NUMLOCK;//VK_CAPITAL;//VK_NUMLOCK;//

 procedure SetNumLock(bState:Boolean);
   var   KeyState : TKeyboardState;
   begin   GetKeyboardState(KeyState);
    if ( (bState) and (not ((KeyState[MyHotKey] and 1)=1) ) or
      ( (not (bState)) and ((KeyState[MyHotKey] and 1)=1))) then
    // Simulate a key press
       keybd_event(MyHotKey, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0);
       // Simulate a key release
       keybd_event(MyHotKey, $45,  (KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP), 0);
      end;


 //=========
procedure TForm1.Button2Click(Sender: TObject);
begin
  SetNumLock(false);
end;

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

هذا الموضوع مغلق.

مواضيع مشابهة