سلام
(i) كلنا نستخدم لوحة المفاتيح في الكتابة وإدخال بعض الأوامر إلى الحاسب الآلي و يمكن إستخدام بعض المفاتيح الموجودة على لوحة المفاتيح بطريقة معينة لتسهل علينا الكثير من الخطوات والأوامر التي نريد الحاسب تنفيذها وهي ما تسمى بإختصارات لوحة المفاتيح أو Keyboard Sortcuts ومن أمثلتها كالتالي:-
مفتاح F10 + Shift : إظهار القائمة التي تظهر عند الضغط على المفتاح الأيمن للفأرة.
مفتاح R + Win : فتح نافذة Run
ضغط مفتاح Shift عند وضع أي أسطوانة مدمجة في الوحدة الخاصة بها: إلغاء التشغيل الأتوماتيكي للإسطوانة.
مفتاح R + Win ثم كتابة نقطة (.) في النافذة التي ستظهر لك ثم Ok : فتح ملف سطح المكتب وإظهار جميع محتويات سطح المكتب.
مفتاح D + Win : الإنتقال إلى سطح المكتب.
مفتاح F2 مع إختيار ما نريده : تغيير أسم الملف أو المجلد أو البرنامج المختار.
مفتاح M + Win : تصغير جميع النوافذ.
مفتاح M + Shift + Win : إعادة تكبير النوافذ التي تم تصغيرها من الأمر السابق.
مفتاح Esc + Alt : الإنتقال إلى النافذة التالية المفتوحة على الحاسب.
مفتاح Esc + Ctrl أو مفتاح Win : فاتح قائمة البداية.
مفتاح Del + Alt + Ctrl : إظهار نافذة إغلاق البرامج.
مفتاح Del + Shift : مسح ما تم إختياره نهائياً دون وضعه في سلة المهملات.
مفتاح E + Win : فتح نافذة مكتشف النوافذ.
مفتاح SysRq أو Print Scrn : وضع نسخة من الشاشة بالكامل في برنامج الحافظة Clipboard.
مفتاح Print Scrn + Alt : وضع نسخة من النافذة المستخدمة حالياً في برنامج الحافظة Clipboard
مفتاح F + Win أو مفتاح F3 : فتح نافذة البحث عن الملفات والمجلدات.
مفتاح Tab + Alt : فتح نافذة يمكن منها الإنتقال بين النوافذ المفتوحة على الشاشة.
مفتاح R + Win : فتح نافذة Run
------------------------------------------------------------------------------------
(i) الان لنرجع الى موضوع البرمجة
توجد في لغة دلفي اختصارات تسهل علين الوصول الى مفاتيح لوحة المفاتيح .
(Virtual Key ( VKموجودة في الدلفي لتساعدنا على البرمجة متلا
نستطيع ان نستخدمها عند الحدت KeyUp
متلا
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if( key = VK_UP) then
end;
اضن ان المتال اوضح كل شي ...
وهده هي كل VK الموجودة في الدلفي (مأخودة من مساعد دلفي)
Virtual Key Code معنى الاختصار
----------------------------------------------------------------------------
VK_LBUTTON Left mouse button
VK_RBUTTON Right mouse button
VK_CANCEL Control+Break
VK_MBUTTON Middle mouse button
VK_BACK Backspace key
VK_TAB Tab key
VK_CLEAR Clear key
VK_RETURN Enter key
VK_SHIFT Shift key
VK_CONTROL Ctrl key
VK_MENU Alt key
VK_PAUSE Pause key
VK_CAPITAL Caps Lock key
VK_KANA Used with IME
VK_HANGUL Used with IME
VK_JUNJA Used with IME
VK_FINAL Used with IME
VK_HANJA Used with IME
VK_KANJI Used with IME
VK_CONVERT Used with IME
VK_NONCONVERT Used with IME
VK_ACCEPT Used with IME
VK_MODECHANGE Used with IME
VK_ESCAPE Esc key
VK_SPACE Space bar
VK_PRIOR Page Up key
VK_NEXT Page Down key
VK_END End key
VK_HOME Home key
VK_LEFT Left Arrow key
VK_UP Up Arrow key
VK_RIGHT Right Arrow key
VK_DOWN Down Arrow key
VK_SELECT Select key
VK_PRINT Print key (keyboard-specific)
VK_EXECUTE Execute key
VK_SNAPSHOT Print Screen key
VK_INSERT Insert key
VK_DELETE Delete key
VK_HELP Help key
VK_LWIN Left Windows key (Microsoft keyboard)
VK_RWIN Right Windows key (Microsoft keyboard)
VK_APPS Applications key (Microsoft keyboard)
VK_NUMPAD0 0 key (numeric keypad)
VK_NUMPAD1 1 key (numeric keypad)
VK_NUMPAD2 2 key (numeric keypad)
VK_NUMPAD3 3 key (numeric keypad)
VK_NUMPAD4 4 key (numeric keypad)
VK_NUMPAD5 5 key (numeric keypad)
VK_NUMPAD6 6 key (numeric keypad)
VK_NUMPAD7 7 key (numeric keypad)
VK_NUMPAD8 8 key (numeric keypad)
VK_NUMPAD9 9 key (numeric keypad)
VK_MULTIPLY Multiply key (numeric keypad)
VK_ADD Add key (numeric keypad)
VK_SEPARATOR Separator key (numeric keypad)
VK_SUBTRACT Subtract key (numeric keypad)
VK_DECIMAL Decimal key (numeric keypad)
VK_DIVIDE Divide key (numeric keypad)
VK_F1 F1 key
VK_F2 F2 key
VK_F3 F3 key
VK_F4 F4 key
VK_F5 F5 key
VK_F6 F6 key
VK_F7 F7 key
VK_F8 F8 key
VK_F9 F9 key
VK_F10 F10 key
VK_F11 F11 key
VK_F12 F12 key
VK_F13 F13 key
VK_F14 F14 key
VK_F15 F15 key
VK_F16 F16 key
VK_F17 F17 key
VK_F18 F18 key
VK_F19 F19 key
VK_F20 F20 key
VK_F21 F21 key
VK_F22 F22 key
VK_F23 F23 key
VK_F24 F24 key
VK_NUMLOCK Num Lock key
VK_SCROLL Scroll Lock key
VK_LSHIFT Left Shift key (only used with GetAsyncKeyState and GetKeyState)
VK_RSHIFT Right Shift key (only used with GetAsyncKeyState and GetKeyState)
VK_LCONTROL Left Ctrl key (only used with GetAsyncKeyState and GetKeyState)
VK_RCONTROL Right Ctrl key (only used with GetAsyncKeyState and GetKeyState)
VK_LMENU Left Alt key (only used with GetAsyncKeyState and GetKeyState)
VK_RMENU Right Alt key (only used with GetAsyncKeyState and GetKeyState)
VK_PROCESSKEY Process key
VK_ATTN Attn key
VK_CRSEL CrSel key
VK_EXSEL ExSel key
VK_EREOF Erase EOF key
VK_PLAY Play key
VK_ZOOM Zoom key
VK_NONAME Reserved for future use
VK_PA1 PA1 key
VK_OEM_CLEAR Clear key
-----------------------------------------------------------------------------------
(i) بعد هده المقدمة يمكن ان نجعل من الدلفى تلعب بلوحة المفاتيح
باستخدام الدالة
keybd_event
متلا
(*)-لو الردنا تشغيل زر Start في الوندوز نضع الكود التالي
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0)
لحظ اننا استدعينا الدالة مرتين ....... ؟؟؟؟؟
السبب هو انه عندما نقوم بالضغط على اي زر في لوحة المفاتيح فاننا نقوم بخطوتين وهما الضغط تم افلات الزر .
وهدا ماقمنا به برمجيا فالدالة في الحالة الاولى تمتل الضغط على الزر , اما المرة التانية فتمتل افلات الزر .
(*) متلا نريد ان نعمل عمل CTR+TAB
نضع
keybd_event(VK_MENU , MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event(VK_TAB, MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event(VK_TAB, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU , MapVirtualKey(VK_TAB, 0), KEYEVENTF_KEYUP, 0) ;
(*) - تصغير جميع النوافد WIN+M
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
keybd_event(Ord('M'), MapVirtualKey(Ord('M'), 0), 0, 0);
keybd_event(Ord('M'), MapVirtualKey(Ord('M'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0)
(*)- فتح شاشة الرن WIN+R
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
keybd_event(Ord('R'), MapVirtualKey(Ord('R'), 0), 0, 0);
keybd_event(Ord('R'), MapVirtualKey(Ord('R'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0)
(*) - ويمكنك عمل المزيد منهم كما ورد في بداية القائمة
وشكرا (*)