PDA

View Full Version : عکس برداری از صفحه دسکتاپ با سی شارپ



arastoahmadi
شنبه 20 شهریور 1400, 10:10 صبح
با سلام
وقت بخیر
دوستان چطوری میتوان در لحظه از صفحه دسکتاپ عکس برداری کرد دوستان من با استفاده از کلاس Graphics تونستم این کارو بکنم منتها من نمیخام داخل حلقه while بزارم میخام از یک کلاسی استفاده کتم که خودش event داشته باشه و نخوام از while استفاده کنم ، تو اینترنت گشتم چیزی پیدا نکردم یه جایی نوشته بود از GDI استفاده کنید که از کارت گرافیک بتونید تصویر رو بگیرید دوستان چطوری میتوان این کارو انجام داد ممنون میشم راهنمایی بفرمایید و یا اگه راه حل بهینه تری در نظر دارید ممنون میشم معرفی کنید

ebrahim.rayatparvar
شنبه 20 شهریور 1400, 10:26 صبح
ُلام دوست عزیز من برای یک پروژه ای نیاز به این قابلیت داشتم و داخل کلاس مورد نظر خودم این متد رو اضافه کردم و همه جای برنامه ازش استفاده کردم و جواب گرفتم امید وارم جواب سوال شما با این متد داده بشه.



public static Bitmap PrintScreen()
{
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen);
graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size - (new Size()));
return printscreen;
}


با تشکر
ابراهیم

arastoahmadi
شنبه 20 شهریور 1400, 16:00 عصر
ُلام دوست عزیز من برای یک پروژه ای نیاز به این قابلیت داشتم و داخل کلاس مورد نظر خودم این متد رو اضافه کردم و همه جای برنامه ازش استفاده کردم و جواب گرفتم امید وارم جواب سوال شما با این متد داده بشه.



public static Bitmap PrintScreen()
{
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen);
graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size - (new Size()));
return printscreen;
}


با تشکر
ابراهیم


ممنون از پاسختون دوست عزیز من هدفم فقط یک کپچر نیست و درواقع میخام در لحظه صفحه برام استریم ارسال بشه و کد شما نیاز به خلقه While داره و اینکه ضعف دیگه ای که این کد داره اینه که افکت های داخل ویندوز رو به هیچ عنوان کپچر نمیکنه منظورم اینه که به عنوان مثال شما وقتی که شاره گر موس رو در ویندوز 7 برروی دکمه start میبرید خب حالت دکمه تغییر میکنه این تغییر خالت توسط کد بالا کپچر نمیشه و درواقع دکمه بدون افکت استارت ویندوز رو نشون میده من میخام از یه کد دیگه استفاده کنم و اینکه نمیخام از حلقه while استفاده کنم میخام ایونت به کار بگیرم


153484

رامین مرادی
یک شنبه 21 شهریور 1400, 07:50 صبح
سلام
این لینک رو مطالعه کنید
https://www.c-sharpcorner.com/article/screen-capturing-a-form-in-net-using-gdi-and-gdi/