سؤال

وهناك بعض استدعاء API وين OS أو نحو ذلك من شأنه أن يسمح للمرء الحصول النص من الشاشة

وليس عن طريق الحصول على لقطة ومن ثم القيام OCR على ذلك، ولكن عن طريق API

والفكرة هي الحصول على النص الموجود تحت الماوس الذي يشير إليه المستخدم لوزيارة ل.

وهذه هي الطريقة التي أدوات مثل بابل ( http://www.babylon.com ) و 1 انقر الأجوبة ( http://www.answers.com/main/download_answers_win.jsp ) وغيرها الكثير العمل.

ويمكن للشخص لي نقطة في الاتجاه الصحيح للحصول على هذه الوظيفة؟

هل كانت مفيدة؟

المحلول

وليس هناك طريقة مباشرة للحصول على النص. تطبيق يمكن أن تجعل النص في زليون بطرق مختلفة (يجري ويندوز API واحد منهم)، وبعد انها أصدرته - انها مجرد حفنة من بكسل

وهناك طريقة يمكنك أن تحاول ذلك هو العثور على نافذة مباشرة تحت الماوس ومحاولة للحصول على النص منها. هذا من شأنه أن تعمل بشكل جيد في معظم الضوابط ويندوز القياسية (علامات، مربعات النص، وما إلى ذلك) لن تعمل على متصفحات الإنترنت بالرغم من ذلك.

وأعتقد أن أفضل ما يمكنك القيام به هو جعل التطبيق الخاص بك بحيث أنه يدعم العديد من مختلف الضوابط (مشتركة) ممكن على النحو المبين أعلاه.

نصائح أخرى

ويمكنك الحصول على نص كل نافذة مع API GetWindowText. موقف الماوس يمكن العثور عليها مع API GetCursorPos.

في دلفي هل يمكن استخدام هذه الوظيفة (مجد بيتر أدناه)

Function ChildWindowUnderCursor: HWND;
Var
  hw, lasthw: HWND;
  pt, clientpt: TPoint;
Begin
  Result := 0;
  GetCursorPos( pt );
  // find top-level window under cursor
  hw := WindowFromPoint( pt );
  If hw = 0 Then Exit;

  // look for child windows in the window recursively
  // until we find no new windows
  Repeat
    lasthw := hw;
    clientpt := Pt;
    Windows.ScreenToClient( lasthw, clientpt );
    // Use ChildwindowfromPoint if app needs to run on NT 3.51!
    hw := ChildwindowFromPointEx( lasthw, clientpt, CWP_SKIPINVISIBLE );
  Until hw = lasthw;
  Result := hw;
End;

والتحيات،
يفن

ويندوز لديها واجهات برمجة التطبيقات لأدوات الوصول مثل قارئ شاشة للمكفوفين. (تستخدم أحدث إصدارات أيضا لأغراض أخرى، مثل أتمتة UI والاختبار.) وهي تعمل مع العديد من التطبيقات، وحتى معظم برامج التصفح التي تجعل المحتوى الخاص بهم دون استخدام عناصر تحكم Windows القياسية. انها لن تعمل مع جميع التطبيقات، ولكن يمكن استخدامه لمعرفة النص تحت الماوس في معظم الحالات.

ويسمى API الحالي في أتمتة ويندوز API . تصف كيفية القيام بذلك بشكل عام هو خارج نطاق إجابة تجاوز المكدس، حتى لقد قدمت مجرد وصلة إلى الوثائق.

ووAPI القديمة التي كانت متاحة على نطاق واسع عندما يتم استدعاء هذا السؤال تم نشره لأول مرة في مايكروسوفت النشطة الوصول API . كما هو الحال مع واجهات برمجة التطبيقات الحديثة، ونطاق واسع هنا أيضا بالتفاصيل هنا.

ملاحظة هو مكتوب أن الوثائق لكل من واجهات برمجة التطبيقات على حد سواء لكل من المطورين بناء أدوات التشغيل (مثل قارئات الشاشة)، وكذلك للمطورين كتابة التطبيقات التي تريد أن تكون متوافقة مع تلك الأدوات للمعاقين.

والفكرة الأساسية هي أن أداة الوصول يحصل اجهات COM المقدمة من نافذة التطبيق الهدف (ق)، ويمكن استخدام هذه الواجهات لمعرفة الضوابط والنص، وكيف انهم ذات الصلة سواء منطقيا ومكانيا. تطبيقات الدعم التي تتكون من الضوابط ويندوز القياسية في الغالب تلقائيا. التطبيقات مع تطبيقات واجهة المستخدم المخصصة لها للقيام بالعمل لتوفير هذه الواجهات. لحسن الحظ، تلك المهمة، مثل المتصفحات الرئيسية، ويتم العمل على دعم هذه الواجهات.

وأعتقد دعا لها الحافظة. وانا ذاهب للمراهنة هذه البرامج حقن انقر والنقر المزدوج لوحة المفاتيح والأحداث ومن ثم نسخ العناصر هناك للتفتيش. بدلا من ذلك، فهي المصيبة jiggy مع الضوابط ويندوز النص، والاستيلاء على محتوى بهذه الطريقة. وأظن بسبب القضايا الأمنية، هذه الأدوات لديها مشاكل في تشغيل في ويندوز فيستا أيضا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top