با سلام
دوستان من یه کدی میخوام که هر ده دقیقه یه بار اتوماتیک از صفحه نمایش کامپیوترم عکس بگیره و فایل رو تو درایو c ذخیره کنه.
ممنون میشم کدشو بزارین برام.
با سلام
دوستان من یه کدی میخوام که هر ده دقیقه یه بار اتوماتیک از صفحه نمایش کامپیوترم عکس بگیره و فایل رو تو درایو c ذخیره کنه.
ممنون میشم کدشو بزارین برام.
این یه نمونه کد هست که از صفحه مانیتور عکس می گیره.
مطابق با نیازهای خودتون تغییرش بدین و استفاده کنید :
Rectangle bounds = Screen.GetBounds(Point.Empty);
using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
}
bitmap.Save("D:\\test.jpg", ImageFormat.Jpeg);
}
ممنون دوسته عزیز بابته جوابه خوبی که دادین.ولی اگر بخوام عکس ها رو هم دیگه ذخیره نشه باید به کد چی اضافه کنم؟مثلا میخوام به صورت 1 2 3 4 5 .... همین طوری به ترتیب ذخیره بشن کناره هم.
ممنون میشم بازم جوابمو بدین.
میتونید نام تصویر را از یه شمارنده بگیرید و هر بار شمارنده را افزایش بدید:
int Cnt=1;
Save("D:\\"+Cnt.ToString()+".jpg", ImageFormat.Jpeg);
Cnt++;
البته Cnt را باید سراسری تعریف کنید که هر بار مقدارش 1 نشه!
موق باشید
روشی که دوستمون گفتن خوبه ولی هر دفعه که برنامه اجرا بشه دوباره مقدارش 1 میشه و دوباره عکس ها روی هم ذخیره میشن.برای این کار بهتره از کد زیر استفاده کنید :
مثلا فرض کنید شما میخواین تصاویر رو در یک پوشه در درایو D به نام Images ذخیره کنید (Path = D:\Images)
کد :
int i = 1;
string Path = @"D:\Images";
string TempPath = Path + @"\" + i.ToString() + ".jpg";
while (System.IO.File.Exists(TempPath))
{
i++;
TempPath = Path + @"\" + i.ToString() + ".jpg";
}
Rectangle bounds = Screen.GetBounds(Point.Empty);
using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
}
bitmap.Save(TempPath, ImageFormat.Jpeg);
}
دوسته عزیز واقعا ممنون.همونی هست که میخواستم.تشکر
فقط یه چیز دیگه اگر بخوام مثلا این عکس ها رو همشو تو یه فایل zip یا rar ذخیره کنه و در صورت ممکن یه پسوردم بزاره روش که کسی نتونه بازشون کنه.باید چیکار کنم؟
میشه این کارو کرد؟
ممنون میشم بازم لطف کنید و جواب این سوالمو هم بدین.بازم ممنون که برام وقت گذاشتید دوستان
برای اینکه تمام عکس ها رو zip کنید باید مثلا زمانی که برنامتون بسته میشه این کار رو بکنید (البته چون شما گفته بودین که میخواین هر چند وقت یه بار یه عکس بگیره) پس باید در انتها تصاویر رو zip کنید.
برای اینکار میتونید از dllهای آماده استفاده کنید.
من یه نمونه که خودم ازش استفاده میکنم رو واستون میذارم ببینید بدردتون میخوره :
اول فایل dll رو به رفرنس هاتون اضافه کنید و بعد با استفاده از نمونه کد زیر میتونید ازش استفاده کنید :
این نمونه کد :
string[] strFiles = System.IO.Directory.GetFiles(@"D:\Images");
string strPath = @"D:\Images\Archive.zip";
zipper.compression.Zip.Compress(strFiles, strPath);
و اینم خود فایل dll :
zipper.compression.rar
موفق باشید