![]() |
|
Introduction To Screen Capture - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (https://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (https://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (https://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : Introduction To Screen Capture (/showthread.php?tid=13112) |
Introduction To Screen Capture - silverlight - 22-09-15 السلام عليكم ورحمة الله وبركاته مقدمة: هذا الموضوع الهدف منه هو توضيح كيفية بناء برنامج يقوم بإلتقاط صور من شاشة الكمبيوتر باستخدام Timer و تحويلها بعد ذلك الي ملف يمكن ان يتم عرضه داخل PictureBox مثل شريط فيديو فكرة المشروع تعتمد علي إعطاء المستحدم إمكانية تحديد مكان التصوير علي شاشة الكمبيوتر عن طريق رسم مستطيل يستطيع المستخدم تحريكه وضبط أبعاده كما يحلو له ثم بعد ذلك يبدأ البرنامج و باستخدام Timer في التقاط صور بشكل مستمر للمكان الذي قام مستخدم البرنامج بتحديده علي سطح جهاز الكمبيوتر حيث سكون هناك إمكانية لحفظ الصور في ملف او استعراض هذا الملف داخل PictureBox مثل شريط فيديو لذلك سوف يتم تنفيذ هذا المشروع علي مرحلتين كالأتي 1- كتابة بعض الكلاسات التي سوف نستخدمها في رسم المستطيل و تحريكه علي شاشة الكمبيوتر 2- كتابة الطرق و الدوال التي سيتم استخدامها في تصوير شاشة الكمبيوتر و حفظ الصور في ملف واحد ثم عرض الصور مثل شريط فيديو رسم و تحريك مستطيل علي شاشة الكمبيوتر: الأسلوب المستخدم هنا هو نفس الأسلوب الذي يتم استخدامه في رسم و تحريك الفورم العادي علي شاشة الكمبيوتر وكما هو معلوم للجميع الفورم العادي به ثمانية مناطق يتم من خلالها تغيير أبعاد الفورم و هناك منطقة واحدة لتحريك الفورم الكلاسات و Interface و Enum المستخدمة لرسم و تحريك المستطيل هي كالأتي: 1- IBeltGlyph يمثل Interface المسئول عن تعريف و رسم اي مستطيل يتم رسمه علي الفورم و هو الأساس لبعض الكلاسات الخاصة بتحريك ورسم المستطيل كود : Public Interface IBeltGlyph2- IBeltBehaviour يمثل Interface المسئول عن كل العمليات الخاصة بتحريك و رسم المستطيل و به الحسابات الخاصة بحساب مكان المستطيل علي شاشة الكمبيوتر حتي يتمكن مستخدم البرنامج من تحريك المستطيل و تغيير أبعاده كود : Public Interface IBeltBehaviour3- BeltGlyphHitPosition يمثل Enum الذي يحدد مجموعة من المناطق سيتم الضغط عليها بالماوس 4- BeltLocationChangedEventArgs يمثل الكلاس الي سيخبرنا متي يتغير مكان المستطيل علي الفورم 5- BeltSizeChangedEventArgs يمثل الكلاس الي سيخبرنا متي تتغير ابعاد المستطيل علي الفورم 6- SizingGlyph يمثل الكلاس المسئول عن رسم المستطيلات التي ستستخدم لتغيير أبعاد المستطيل علي شاشة الكمبيوتر 7- ClientGlyph يمثل الكلاس المسئول عن رسم المنطقة الخاصة بمستخدم البرنامج علي شاشة الكمبيوتر 8- CaptionGlyph يمثل الكلاس المسئول عن رسم و تحريك المستطيل علي شاشة الكمبيوتر 9- GhostWindow يمثل الفورم الذي تحدث عليه عمليات الرسم الخاصة بالمستطيل الي سيتمكن مستخدم البرنامج من تحريكه و تغيير ابعاده كيفما شاء لتحديد المكان الذي يريد أن يلتقط صورا له من علي سطح شاشة الكمبيوتر 10- BeltButton هو باتون له شكل مختلف قليلا عن الباتون العادي الموجود في الفيجوال استوديو حيث سنستخدمه لإغلاق الفورم او بدء التصوير من علي سطح شاشة الكمبيوتر عموما و نظرا لحجم الكود المكتوب سيصعب توضيح و شرح كل شئ لكن علي المهتمين بالأمر أن يسألوا كيفما شاءوا و ساوضح لهم لاحقا بالرد علي استفساراتهم و بهذا تنتهي المرحلة الأولي من المشروع الذي نريد كتابته أخي الفاضل TheGhost عذرا للتأخير في كتابة الكود لك و لكن كان لدي ظروف طارئة منعتني من أن أضع الكود لك قبل هذا اليوم تقبل تحياتي بالنهاية الفكرة المستخدمة في هذه المرحلة تم كتابتها بالشكل الذي يجعلنا نستطيع تطويرها لاحقا لتستخدم في رسم فورم مثل الفورم الخاص بمايكروسوفت الكود الخاص ب المرحلة الأولي موجود ب المرفقات تقبلوا تحياتي و كل عام و أنتم بخير RE: Introduction To Screen Capture - silverlight - 03-10-15 السلام عليكم ورحمة الله و بركاته في الجزء الأول تم إعطاء مستخدم البرنامج إمكانية تحريك المستطيل و تغيير أبعاده لكي يستطيع تحديد الجزء الذي يريد تصويره من علي سطح الشاشة في هذه المشاركة سأوضح كيفية أخذ صورة واحدة فقط لجزء معين علي شاشة الكمبيوتر وحفظها في Debug Folder الخاص بالمشروع ولتنفيذ ذلك نحتاج الي تعديل الكود قليلا في الكلاس ClientGlyph حتي نتخلص من عمليات الرسم التي تحدث في هذا الكلاس الكود الخاص بالكلاس ClientGlyph يجب أن يكون كالتالي: كود : Public Class ClientGlyphالأن و في الفورم GhostWindow لنكتب الكود الذي ياخذ صورة واحدة لجزء من سطح المكتب و ذلك عند الضغط علي الباتون Capture لذلك سنقوم بالتعديل قليلا علي في الكود التالي بالتاكيد يمكنكم التعديل غلي كود حفظ الصورة لإعطاء مستخدم البرنامج امكانية حفظ الصورة في المكان الذي يريده كود : Private Sub BeltCaptureButtonClick(sender As Object, e As EventArgs) Implements IBeltBehaviour.BeltCaptureButtonClickRE: Introduction To Screen Capture - silverlight - 09-10-15 راجع اللينك التالي لمعرفة كيفية دمج مجموعة من الصور في صورة واحدة أو استخلاص الصور منها Create, Save Tiff Image & Extract Images From TIFF Image الأن يمكن اضافة تايمر الي المشروع و اخذ صورة لسطح كل فترة زمنية ثابتة و حفظها في مصفوفة Array ثم حفظ كل الصور في صورة واحدة و اعتقد ان هذا لن يكون امرا صعبا علي المهتمين بالموضوع |