منزل
Top.Mail.Ru Yandeks.Metrika
المنتدى: "Main";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

إلى

كيف ترسل رسالة إلى النظام تفيد بأن المفتاح مضغوط؟ البحث عن فروع مماثلة


Delphimun   (2001-12-20 12:10) [0]

كيف ترسل رسالة إلى النظام تفيد بأن المفتاح مضغوط؟ على سبيل المثال ، وضعت مؤقتًا هذه الرسالة على النظام الذي يتم فيه الضغط على المفتاح ، وأن المستخدم يعمل حاليًا في دفتر الملاحظات ، بحيث تتم كتابة هذه الرسائل في دفتر الملاحظات الذي قمت بإرساله إلى النظام (تم ضغط المفتاح)



gek   (2001-12-20 12:32) [1]

يمكنك الحصول على مقبض المفكرة وإرساله wm_keydown



Delphimun   (2001-12-20 13:10) [2]

لقد فهمت ذلك بالفعل (كنت بحاجة ليس فقط لإرسال دفتر الملاحظات ، ولكن في النظام العام)
هنا مثال من faq المهتم:

-------------------------------------------------- -----------------------
يتيح لك الإجراء الوارد أدناه إرسال نقرات إلى أي
عنصر تحكم (عنصر تحكم نافذة) قادر على قبول الإدخال من
لوحة المفاتيح. يمكنك استخدام هذه التقنية لتشغيل المفاتيح.
NumLock و CapsLock و ScrollLock تحت Windows NT. نفس الأسلوب يعمل
وتحت نظام Windows 95 for CapsLock و ScrollLock ، إلا أنه لا يعمل مع المفتاح
يكون NumLock.
لاحظ أن هناك أربعة إجراءات: SimulateKeyDown () -
محاكاة ضغط المفاتيح (دون تحرير) SimulateKeyUp () -
محاكاة مفتاح الإصدار SimulateKeystroke () - محاكاة نجاح
بواسطة المفتاح (الضغط والإفراج) و SendKeys () ، مما يتيح لك بمرونة
السيطرة أرسلت رسائل لوحة المفاتيح.
SimulateKeyDown () و SimulateKeyUp () و SimulateKeystroke () الحصول على رموز
المفاتيح الافتراضية (مثل VK_F1). إجراء
SimulateKeystroke () يحصل على معلمة إضافية ، ومفيدة عندما
مضاهاة الضغط على PrintScreen. عندما تكون هذه المعلمة صفر كله
سيتم نسخ الشاشة إلى الحافظة. إذا اضافية
المعلمة تساوي 1 سيتم نسخ النافذة النشطة فقط.
أربع طرق نقرة زر لشرح الاستخدام:
ButtonClick1 - يتيح capslock ButtonClick2 - اعتراض كامل
الشاشة إلى الحافظة (الحافظة). ButtonClick3 - اعتراض
نافذة نشطة إلى الحافظة (الحافظة). ButtonClick4 - يحدد التركيز في تحرير و
يرسل سلسلة لذلك.
على سبيل المثال:

الإجراء SimulateKeyDown (مفتاح: بايت)؛
بدأ
keybd_event (Key، 0، 0، 0)؛
الغاية؛

الإجراء SimulateKeyUp (مفتاح: بايت)؛
بدأ
keybd_event (Key، 0، KEYEVENTF_KEYUP، 0)؛
الغاية؛

الإجراء SimulateKeystroke (مفتاح: بايت ؛ إضافي: DWORD) ؛
بدأ
keybd_event (مفتاح ، إضافي ، 0,0) ؛
keybd_event (مفتاح ، إضافي ، KEYEVENTF_KEYUP ، 0) ؛
الغاية؛

الإجراء SendKeys (s: string) ؛
var i: integer؛
علم: منطقي؛
ث: كلمة
بدأ
{الحصول على حالة مفتاح قفل الحروف الكبيرة}
إشارة: = لا GetKeyState (VK_CAPITAL) و 1 = 0؛
{إذا كان مفتاح قفل الأحرف الاستهلالية قيد التشغيل ، فقم بإيقافه}
إذا العلم بعد ذلك
SimulateKeystroke (VK_CAPITAL، 0)؛
بالنسبة إلى i: = 1 to Length (s) do
بدأ
w: = VkKeyScan (s [i]) ؛
{إذا لم يكن هناك خطأ في الترجمة الرئيسية}
إذا ((HiByte (w) <> $ FF) و (LoByte (w) <> $ FF)) ثم
بدأ
{إذا كان المفتاح يتطلب مفتاح التحول لأسفل - اضغط عليه}
إذا HiByte (w) و 1 = 1 بعد ذلك
SimulateKeyDown (VK_SHIFT) ؛
{أرسل VK_KEY}
SimulateKeystroke (LoByte (w) ، 0) ؛
{إذا كان المفتاح يتطلب تحول المفتاح لأسفل - حرره}
إذا HiByte (w) و 1 = 1 بعد ذلك
SimulateKeyUp (VK_SHIFT) ؛
الغاية؛
الغاية؛
{إذا كان مفتاح قفل الأحرف الاستهلالية قيد التشغيل في البداية ، فقم بإعادة تشغيله}
إذا العلم بعد ذلك
SimulateKeystroke (VK_CAPITAL، 0)؛
الغاية؛

الإجراء TForm1.Button1Click (المرسل: TObject) ؛
بدأ
{تبديل قفل الغطاء}
SimulateKeystroke (VK_CAPITAL، 0)؛
الغاية؛

الإجراء TForm1.Button2Click (المرسل: TObject) ؛
بدأ
{التقاط الشاشة بأكملها إلى الحافظة}
{عن طريق محاكاة الضغط على مفتاح PrintScreen}
SimulateKeystroke (VK_SNAPSHOT، 0)؛
الغاية؛

الإجراء TForm1.Button3Click (المرسل: TObject) ؛
بدأ
{التقاط الإطار النشط إلى الحافظة}
{عن طريق محاكاة الضغط على مفتاح PrintScreen}
SimulateKeystroke (VK_SNAPSHOT، 1)؛
الغاية؛

الإجراء TForm1.Button4Click (المرسل: TObject) ؛
بدأ
{اضبط التركيز على نافذة (تحرير عنصر التحكم) وأرسله سلسلة}
Application.ProcessMessages.
Edit1.SetFocus.
SendKeys ("Delphi Is RAD!") ؛
الغاية؛
-------------------------------------------------- -------------------------

أحتاج الآن إلى تتبع نقرة المستخدم على زر clav (على سبيل المثال ، alpha) وإعادة ضبط هذا الضغط على \ ليحل محله بنفسي.




صفحات: 1 فرع كامل

المنتدى: "Main";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

الطابق العلوي





الذاكرة: 0.56 ميغابايت
الوقت: 0.023 ج
14-22330
أليكسي تي.
2001-11-02 13:25
2002.01.08
ساعدني !!!


1-22084
ميخائيلوف ديمتري
2001-12-19 14:53
2002.01.08
قفل الحدث


14-22408
fliz
2001-11-08 15:24
2002.01.08
هل هذا خطأ في دلفي؟! : ((


1-22198
T2
2001-12-16 07:23
2002.01.08
معالجة واحدة لمجموعة من الأزرار


7-22443
masik
2001-09-27 13:02
2002.01.08
القائمة المنبثقة Y2k





الأفريكانية الألبانية عربي الأرميني أذربيجان الباسكي البيلاروسية Bulgarian التشيكية الصينية المبسطة) تقاليد صينية) الكرواتية التشيكية دانماركي Dutch English الإستونية الفلبينية Finnish جيب
الجاليكية الجورجية الألمانيّة اليونانيّة الكريولية الهايتية اللغة العبرية الهندية الهنغارية أيسلندي Indonesian الأيرلندية Italian اليابانيّة الكوريّة اللاتفية اللتوانية المقدونية الملايو المالطية Norwegian
اللغة الفارسية بولنديّة البرتغاليّة رومانية Russian صربي السلوفاكيّة سلوفيني إسباني السواحيلي Swedish Thai التركية الأوكراني الأردية الفيتنامية ويلزي اليديشية البنغالي البوسنية
السيبيونو الاسبرانتو الغوجاراتية الهوسا همونغ الإيبو جاوي الكانادا الخمير لاو لاتينية الماوري المهاراتية المنغولية النيبالية البنجابية الصومالية التاميل التيلجو اليوروبا
زولو
Английский Французский ألماني Итальянский البرتغالية Русский Испанский