أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية الحصول على مقبض إطار التي تستخدم خط الهاتف وحدة تحكم (HWND)

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

اضغط هنا لرابط المقالة باللغة الانجليزية124103
الموجز
قد يكون مفيداً لمعالجة إطار إقرانه مع تطبيق وحدة تحكم. يوفر Win32 API يوجد أسلوب مباشر الحصول على مقبض الإطار إقرانه مع تطبيق وحدة تحكم. ومع ذلك، يمكنك الحصول على مقبض الإطار قبل FindWindow() الاستدعاء. استرداد هذه الدالة مقبض إطار استناداً إلى اسم الفئة أو اسم الإطار.

استدعاء GetConsoleTitle() لتحديد عنوان وحدة التحكم الحالية. ثم وفر عنوان وحدة التحكم الحالية إلى FindWindow().
معلومات أخرى
لأنه قد يكون لديك عدة إطارات نفس العنوان ، يجب عليك تغيير عنوان إطار وحدة التحكم الحالية إلى عنوان فريد. يساعد هذا في منع يتم إرجاعها مقبض الإطار غير صحيح. استخدم SetConsoleTitle() لتغيير عنوان إطار وحدة التحكم الحالية. وفيما يلي العملية:
  1. استدعاء GetConsoleTitle() لحفظ عنوان إطار وحدة التحكم الحالية.
  2. استدعاء SetConsoleTitle() لتغيير عنوان وحدة التحكم إلى عنوان فريد.
  3. تم تحديث Sleep(40) استدعاء للتأكد من عنوان الإطار.
  4. إرجاع FindWindow المكالمة (NULL, uniquetitle) للحصول على هذا الاستدعاء HWND HWND--أو NULL إذا فشلت العملية.
  5. استرداد المكالمة SetConsoleTitle() مع القيمة من الخطوة 1، لاستعادة عنوان الإطار الأصلي.
يجب اختبار HWND الناتج. على سبيل المثال، يمكنك اختبار لمعرفة ما إذا كان HWND التي تم إرجاعها يتوافق مع العملية الحالية عن طريق استدعاء GetWindowText() على HWND مقارنة النتيجة مع GetConsoleTitle().

ولا يُضمن HWND الناتج يتناسب مع كافة عمليات مقبض الإطار.

رمز نموذج

يسترد الدالة التالية الحالي وحدة تطبيق مقبض الإطار (HWND). في حال نجاح الدالة قيمة الإرجاع هي مقبض إطار وحدة التحكم. في حالة فشل الدالة قيمة الإرجاع هي NULL. تدقيق الأخطاء في بعض تجاهل لـ brevity.
   HWND GetConsoleHwnd(void)   {       #define MY_BUFSIZE 1024 // Buffer size for console window titles.       HWND hwndFound;         // This is what is returned to the caller.       char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated                                           // WindowTitle.       char pszOldWindowTitle[MY_BUFSIZE]; // Contains original                                           // WindowTitle.       // Fetch current window title.       GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);       // Format a "unique" NewWindowTitle.       wsprintf(pszNewWindowTitle,"%d/%d",                   GetTickCount(),                   GetCurrentProcessId());       // Change current window title.       SetConsoleTitle(pszNewWindowTitle);       // Ensure window title has been updated.       Sleep(40);       // Look for NewWindowTitle.       hwndFound=FindWindow(NULL, pszNewWindowTitle);       // Restore original window title.       SetConsoleTitle(pszOldWindowTitle);       return(hwndFound);   }				

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 124103 - آخر مراجعة: 07/11/2005 22:34:21 - المراجعة: 1.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbhowto kbwndw KB124103 KbMtar
تعليقات
/html> acker.init();