اسکرین شات با سی شارپ :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

💢 دوستانم بی دفاع و دشمنانم بی جواب نخواهند ماند 💢

-->
آخرین نظرات
  • ۶ ارديبهشت ۰۳، ۱۶:۱۵ - hidden
    test

توی این پست در مورد ساخت برنامه ی اسکرین شات به زبان پایتون بحث کرده بودیم و گفته بودم که چه کاربردی میتونه داشته باشه که توی این پست هم قراره یه همچین چیزی رو به زبان سی شارپ درست کنیم

یه پروژه به زبان سی شارپ ایجاد کنین و بعد از ایجاد کردن

یه دکمه با اسم ScreenShot و یدونه هم تکست باکس بدون متن روی فرم قرار بدین

حالا دو بار روی دکمه ی اسکرین شات کلیک کنین تا قسمت کدنویسی اون باز بشه و بعدش کدای پایین رو توی اون قرار بدین

int screenWidth = Screen.PrimaryScreen.Bounds.Width;
            int screenHeight = Screen.PrimaryScreen.Bounds.Height;

            Graphics Graphics1;
            Bitmap Bitmap1 = new Bitmap(screenWidth, screenHeight);
            Graphics1 = Graphics.FromImage(Bitmap1);
            Graphics1.CopyFromScreen(Point.Empty, Point.Empty, Screen.PrimaryScreen.Bounds.Size);
            Bitmap1.Save(textBox1.Text);

در واقع ما با استفاده از این کدها ، طول و عرض صفحه ی اصلی رو خوندیم و بعدا در ادامه اسکرین شات انداختیم که بین اونها اندازه ی اون طول و عرض رو آوردیم که باعث میشه از کل صفحه ی ما اسکرین انداخته بشه

در خط آخر هم دستور ذخیره شدن اون اسکرین شات رو میدیم و همونطور که مشخصه دستور دادیم که مسیرش رو باید از تو تکست باکس بخونه

در نتیجه با اجرای پروژه برنامه ازمون یه مسیر میخواد که با وارد کردن اون و زدن دکمه ی ScreenShot این اتفاق میفته و اسکرین شاتمون تو مسیر مورد نظر ذخیره میشه

البته میتونیم خط آخر رو بجای اینکه بگیم از textBox1 مسیر بگیر ، بگیم که بره تو فلان مسیر ذخیره کنه که اینم دیگه نیازی به گفتن نداره و اگه یه ذره هم سی شارپ کار کرده باشین میدونین چیکار کنین !!!

یادتون نره وقتی تو تکست باکس داشتین مسیر میدادین آخر سر اسم فایل و پسوند Bmp رو هم بزارین !!!

Try و Catch هم فراموش نشه

موفق باشید

نظر (۷)

"در نتیجه با اجرای پروژه برنامه ازمون یه مسیر میخواد"
کدهای فورم لود رو ننوشتی برادر
با کدهایی که تو پست قبلی گفتم به نظرت بهتر نیست مسیر رو هم انتخابی کنیم؟
و اینکه یه کار دیگه کنیم خیلی جالب میشه کارمون
و اون اینه که توی عکسمون خود برنامه نباشه
نظرت چیه؟
Virus32 MR_C0D3R ‌ :
کدهای Form_Load ؟
اینارو زدیم تو رویداد دکممون دیگه !!!
آره کاری هم که گفتی جالبه ، یعنی فرممون برای چند لحظه مخفی شه و مجددا برگرده به حالت اول
اینجوری تقریبا میشه گفت شبیه برنامه ی Snipping Tool ویندوز میشه ، یعنی وقتی میخوایم اسکرین شات بندازیم
اگه بهش دقت کنیم چند صدم ثانیه برنامه محو میشه و مجددا به نمایش در میاد
برای اینکار میتونیم از کد پایین برای مخفی کردن Form استفاده کنیم :
this.Hide();
از کد پایین هم میتونیم برای نمایش مجدد فرم استفاده کنیم :
this.Show();
اگه سوالی بود در خدمتیم ...
اینارو زدیم تو رویداد دکممون دیگه !!!
خوب پس چرا گفتی :
"در نتیجه با اجرای پروژه برنامه ازمون یه مسیر میخواد"
برنامه رو خودت اجرا کن ببین مسیر میخواد ازت؟
ویروس همه چیز رو تست میکنه توام تست میکنی حرفاتو؟
الان با این دستورات جدیدی که گفتی کار نتیجه میده؟
من که میگم نتیجه نمیده
Virus32 Virus 32 :
سلام علی برگشتن بخیر
آره عزیز داداشم همه چیزو تست میکنه
ممکنه از قلم بیوفته بعضی حرفا ولی تست شده هستن
کدهای فورم لود :
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Title = "لطفا محل ذخیره سازی فایل را انتخاب کنید";
saveFile.FileName = ("V32.bmp");
saveFile.ShowDialog();
textBox1.Text = saveFile.FileName;
کدهای دکمه :
Form1.ActiveForm.Opacity = 0;
int screenWidth = Screen.PrimaryScreen.Bounds.Width;
int screenHeight = Screen.PrimaryScreen.Bounds.Height;
Graphics Graphics1;
Bitmap Bitmap1 = new Bitmap(screenWidth, screenHeight);
Graphics1 = Graphics.FromImage(Bitmap1);
Graphics1.CopyFromScreen(Point.Empty, Point.Empty, Screen.PrimaryScreen.Bounds.Size);
Bitmap1.Save(textBox1.Text);
Form1.ActiveForm.Opacity = 100;
فقط خط های قرمز رنگ به کدهای متن اضافه میشه
چه خبر این سی شارپ >:
توی پایتون با یک خط کد اسکرین شات میگیره
Virus32 MR_C0D3R ‌ :
خب تو سی شارپ هم میتونیم تبدیل به یک خط کنیم
کافیه بعد از سیمی کالن کد خط بعد رو قرار بدیم :))
سلام داداش کد This.Hide & This Show رو کجا بزاریم !؟
Virus32 Virus 32 :
سلام عزیز این کامنت جواب بهتری میده
سلام
خیلی دوست دارم برنامه نویسی یاد بگیریم
رشته کامپیوتر دهمم و تازه کار میشه یه صفحه برای آموزش از پایه درست کنید و مطالب رو ساده تر توضیح بدید(خیلی کلی و کوتاه)
میخواستم ببینم میشه که هر د0 دقیقه یه بار از صفحه نمایش یه اسکرین بگیره و خودش توی پوشه فایل ذخیره بشه؟
Virus32 MR_C0D3R ‌ :
سلام
برای اینکه هر فلان دقیقه یا فلان ثانیه عکس بندازه
میتونیم کدامونو بزاریم توی تایمر
کار با تایمرو یه مبتدی تر از مبتدی هم بلده
اینم کدهایی که میتونی ازشون استفاده کنی
int screenWidth = Screen.PrimaryScreen.Bounds.Width;
int screenHeight = Screen.PrimaryScreen.Bounds.Height;
Graphics Graphics1;
Bitmap Bitmap1 = new Bitmap(screenWidth, screenHeight);
Graphics1 = Graphics.FromImage(Bitmap1);
Graphics1.CopyFromScreen(Point.Empty, Point.Empty, Screen.PrimaryScreen.Bounds.Size);
Bitmap1.Save(@"C:\Users\ViRus32\Desktop\Your-name.png", System.Drawing.Imaging.ImageFormat.Png);
مسیرو باید تو خط آخر تغییر بدیم
اگه خواستی فرمتم مخفی باشه
میتونی از تو ویژگی های فرم ، میزان Opacity اون رو تغییر بدی
سلام
من تو پاسخی که به آقای Sh@D0W دادی یه سوال برام پیش اومد....
چجوری میشه یه عدد رندوم تو سی شارپ درست کرد؟
میخوام نام فایلی که ذخیره میشه رندوم باشه.... مثلا :
256.bmp
563.bmp
...
Virus32 MR_C0D3R ‌ :
سلام
Random random = new Random();  
MessageBox.Show(random.Next(1, 32)).ToString();
البته الان چون ویژوال دم دست نبود بخاطر همین بصورت دستی و از حفظ نوشتم که نمیدونم درسته یا نه
البته به اون ToString آخرش شک دارم که MessageBox میتونه فقط رشته برگردونه و من چون خروجیم عددی بود بخاطر همین از ToString استفاده کردم
اینا یا کار میکنه یا باید یه دستی روش بکشی :)

سلام مستر کدر :)

میگم چجوری میشه وقتی که روی دکمه اسکرین شات کلیک شد روی صفحه مثلا تا ۳ بشماره و بعد عکسو بگیره؟

خودم یکم ور رفتم ولی نشد.

میشه روششو بگی ;)

Virus32 ناشناس قرن جدید :
از Thread.Sleep استفاده کنید
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی