[ad_1]
يستورد System.Runtime.InteropServices
ByVal nInputs كـ UIteger،
ByVal pInputs كـ INPUT()،
ByVal cbSize كعدد صحيح
) كما UInteger
وظيفة النهاية
‘ تحديد بنية الإدخال
مدخلات الهيكل
النوع العام كعدد صحيح
الكي العام كـ KEYBOARDINPUT
هيكل النهاية
‘ تحديد بنية KEYBOARDINPUT
هيكل لوحة المفاتيح
wVk العام باسم UShort
wScan العام باسم UShort
علامات dw العامة كـ UInteger
الوقت العام كما UInteger
dwExtraInfo العام باسم IntPtr
هيكل النهاية
‘ ثوابت نوع الإدخال والأحداث الرئيسية
Const INPUT_KEYBOARD كعدد صحيح = 1
Const KEYEVENTF_KEYUP كـ UInteger = &H2
الزر الفرعي الخاص 1_Click (المرسل ككائن، e كـ EventArgs) يعالج Button1.Click
‘محاكاة الضغط على شريط المسافة باستخدام SendInput
سيند سباسي بار ()
نهاية الفرعية
فرعي خاص SendSpaceBar()
تعتيم الإدخال كـ INPUT جديد ()
input.type = INPUT_KEYBOARD
input.ki.wVk = &H20 ‘رمز VK_SPACE لشريط المسافة
‘اضغط على شريط المسافة
SendInput(1, {input}, Marshal.SizeOf(GetType(INPUT)))
‘حرر شريط المسافة
input.ki.dwFlags = KEYEVENTF_KEYUP
SendInput(1, {input}, Marshal.SizeOf(GetType(INPUT)))
نهاية الفرعية
ما حاولت:
أنا أستخدم vb لكتابة البرنامج النصي.
أريد كتابة الكود للتحكم في شريط المسافة chrome و edge broswer لكن الكود الخاص بي لا يعمل.
يمكن أن تساعدني في إلقاء نظرة شكرا لك.
الحل 1
Erm… لقد قرأت ما يفعله SendInput، أليس كذلك؟ يقوم بتغذية معلومات لوحة المفاتيح والماوس في قوائم الانتظار المناسبة – مما يعني أنه يتم استخراجها بواسطة التطبيق النشط.
والذي نظرًا لأنك ضغطت للتو على زر الماوس لا يعد Chrome: إنه تطبيقك.
تحتاج إلى إرسالها إلى نافذة معينة (جرب FindWindow وSetForegroundWindow) ثم استخدم SendKeys لإرسال المساحة إلى Chrome.
لا توجد ضمانات بأنها ستنجح، ولكن…
[ad_2]
コメント