Вывод скриншота на весь экран поверх всех окон - C#
Формулировка задачи:
Здравствуйте!
Сразу объясню - хочу сделать программу для друга. Он любитель ставить мне всякие пакостные програмки на комп, типа снега на рабочем столе, или фейковых уведомлений об удалении виндовса.
Суть программы в следующем: на форме всего 1 кнопка и таймер. Как только друг нажмет на кнопку - программа делает скриншот и сразу ставит его поверх всех окон. (у друга начинается паника и т.д.) и как только таймер прозвенит - всё становится как прежде. Как это сделать??
Заранее всем спасибо!!!
Решение задачи: «Вывод скриншота на весь экран поверх всех окон»
textual
Листинг программы
private void timer1_Tick(object sender, EventArgs e)
{
IntPtr hDC = GetDC(IntPtr.Zero);
using (Graphics g = Graphics.FromHdc(hDC))
{
Image img = Image.FromFile("C:/scr.jpg");
g.DrawImage(img, new Point(0, 0));
ReleaseDC(IntPtr.Zero, hDC);
}
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Image = ImageFromScreen();
Bitmap bmpSave = (Bitmap)pictureBox1.Image;
bmpSave.Save("C:/scr.jpg");
timer1.Enabled = true;
}
public Bitmap ImageFromScreen()
{
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height,
PixelFormat.Format32bppRgb);
using (Graphics gr = Graphics.FromImage(bmp))
{
gr.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y,
0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
}
return bmp;
}