على ماذا يعتمد تصوير الشاشة على شكل فيديو'avi'
#1
السلام عليكم

على ماذا يعتمد تصوير الشاشة على شكل فيديو'avi'
اي ماهية الوظائف والاجراءات المتبعة .
وشكرا.
الرد
#2
السلام عليكم ورحمة الله وبركاتة
ليس لدي جواب لكني ساعطيك ما لدي ...

من ناحية الفكرة العامة :
سبق وان رأيت سروس كود برنامج لتصوير الشااشة ... كان يقوم بإلتقاط صور باقل من جز من الثانية ....
وبعد ان تضغط زر إنهاء التصوير يمت دمج الصور باحد الاكود

اما من ناحية اوامر التصوير ... حصلت على هذه الطريقة لاخذ صورة لشاشتك ووضعها في مكون TImage
ارفقت مثال ...

اتمنى اني افدتك ... والسلام عليكم ورحمة الله وبركاتة


الملفات المرفقة
.rar   ExampleScreen.rar (الحجم : 3.52 ك ب / التحميلات : 35)
الرد
#3
شكرا جزيلا اخي الكريم .
لقد جربت سابقا الطريقة الاولى اي اخذ صور متتابعة
لكنها تبطىء من سرعة الجهاز عداك عن التقطيع في مؤشر الفأرة
عسى ان تكون الطريقة الجديدة انجع
شكرا.
الرد
#4
اخي يوجد شيء اسمه Thread وهو سريع جداً مقارنة ان تضع الامر بـ Timer وعند استعماله ضع الامر Sleep لكي يكون الامر
جيد ولا يحصل اي تهنيق او بطئ بالجهاز ( لم اجرب الطريقة لكني اعرف ان الـ Thread سيرع جداً Smile )

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

بالنسبة للـ Thread لا املك الخبيرة الكافية التي تخولني لشرحه لك Smile ... ابحث بالمنتدى ستجد مواضيع تتكلم عنه ..

تحياتي

والسلام عليكم
الرد
#5
تعديل بسيط لدعم التقاط مؤشر الفأرة
PHP كود :
var
  
DC : HDC;
  
Re : TRect;
  
WidthWin, HeightWin : Integer;
  
BitmapScreen : TBitmap;
  
rPos:TPoint;
  
cInfo :TCursorInfo;

begin

  DC 
:= GetDC(GetDesktopWindow);
  
WidthWin := GetDeviceCaps(DC, HORZRES);
  
HeightWin := GetDeviceCaps(DC, VERTRES);
  
img1.Width := WidthWin;
  
img1.Height := HeightWin;
  
cInfo.cbSize := SizeOf(cInfo);
  
GetCursorInfo(cInfo);
  
GetCursorPos(rPos);
  
BitBlt(img1.Canvas.Handle,0,0,img1.Width,img1.Height,
  
DC,0,0,SRCCOPY);
  
DrawIcon(img1.Canvas.Handle,rPos.X,rPos.Y,cInfo.hCursor);
  
ReleaseDC(GetDesktopWindow,DC);

end; 
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم