سؤال

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

HMCG.

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

المحلول

هذا أمر مثير للاهتمام أعتقد أنه من الممكن بطريقة ما باستخدام واجهة برمجة تطبيقات Windows، وأنا لست على آلة فيستا في الوقت الحالي، لكنني أعتقد أن Windows Media Player لا يزال يظهر تشغيل الفيديو عند التقليل.

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

نصائح أخرى

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

لا نقوم بعنانة [T] لتوفير وسيلة لتطبيق لإنشاء تمثيل مصغرة بديلة مخصصة، ولكن سنوفر API لإلغاء الاشتراك في الصورة المصغرة العادية تماما ....

يبدو أن هذه الخطط قد تغيرت في هذه الأثناء، إذا حكمنا من وجود MSDN للوظائف DwmSetIconicLivePreviewBitmap و DwmSetIconicThumbnail بالنسبة لنظام التشغيل Windows 7. في الوقت الحالي، لا تحتوي هذه الإدخالات حقا على أي تفسيرات، لكن أسمائها تبدو واعدة.

وأشار شخص ما إلى أن المصغرة ل Windows Media Player يظهر تحريك الفيديو حتى أثناء تقليل النافذة. شرح بلانكو:

يستخدم WMP خط أنابيب فيديو جديد يتحدث مباشرة إلى [إدارة نافذة سطح المكتب] لتحقيق تجربة تشغيل أكثر سلاسة. يعتمد هذا الخط الأنابيب على [DirectX] ولا يعتمد على معلومات رؤية النافذة، لذلك يمكن إبقاء الصورة المصغرة حية على الرغم من تقليل النافذة، طالما استمر التطبيق في تقديم إطارات. ومع ذلك، قد تلاحظ أن واجهة المستخدم حول الفيديو لا يعثر بعد الآن (هذا صعب المراقبة لأن المستخدم حول الفيديو لا يتم تحديثه عادة). للحصول على معلومات أكثر قليلا حول هذه الطريقة، راجع DwmSetPresentParameters API.

أخشى أنني لا أستطيع العثور على أي شيء أكثر حول هذا. وثائق وظائف DWM متناثرة.

بالنظر إلى طبيعة طلبك، ربما الأمر يستحق النظر في أداة للعيش على الشريط الجانبي ويندوز.

أنا لا أعرف إذا هذا الحل البديل لا تزال تعمل في دلفي 2009: تجاوز Createparams لتعيين getdesktopwindow ك WnDParent.

لقد غيرت Application.title في الماضي لإظهار بعض المعلومات في زر شريط المهام. لا أفترض أن هذا يسبب إعادة رسم أيقونة؟

في دلفي 2007 النموذج الرئيسي الخاص بك هو في شريط المهام إذا قمت بتعيين

  Application.MainFormOnTaskbar := True;

لإبقائه في التحديث، تحتاج إلى منع تطبيقك من التقليل من التقليل والكل من مجرد نقله إلى الوراء. يمكنك القيام بذلك عن طريق وضع tabplicationEvents. على النموذج وتعيين معالج الأحداث إلى onminimize. الحدث ثم اتصل application.restore. هناك. سوف ترغب في تتبع حالة التقليل الخاصة بك وتأكد من إخفاء كل النماذج الأخرى (إذا كان لديك) ولديها سوى النموذج الرئيسي الخاص بك مرئيا، ولكن عند أدنى مستوى Z عندما يكون "minimized".

لا أعتقد أن نظام التشغيل Windows Vista يتيح لك نقل النماذج من الشاشة، أو يمكنك القيام بذلك فقط. ربما هناك اختراق حول ذلك.

حظ سعيد!

انتقل إلى مشروعك المصدر وتغيير التطبيق. mainformontaskbar إلى False: Application.mainformontaskbar: = FALSE؛

التحيات، المايوكوريو

http://sourceforge.net/projects/tcycomponents/

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