Вывод скриншота на весь экран поверх всех окон - 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;
        }

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы