Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> screenshort, сохранение screenshort-ов 
:(
    Опции темы
Ronin08
Дата 16.2.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

Репутация: 1
Всего: 1



проблема возникла! буду рад помощи)

Столкнулся с проблемой написания кода на C# для сохранения screenshort-ов.
Т.е. нужно чтобы каждые, скажем, 30мин изображение рабочего стола сохранялось на компьютере в виде jpg файлов
--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Ctrl
Дата 16.2.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 12.2.2008
Где: Tula

Репутация: 6
Всего: 7



Вот пример того, как сделать скринсшот экрана, надеюсь поможет:
Код

using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing.Imaging;

namespace CaptureDesktopTest {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e) {
            CaptureDesktop();
        }
        protected static void CaptureDesktop() {
            Size screenSize = Screen.PrimaryScreen.Bounds.Size;
            using (Image img = new Bitmap(screenSize.Width, screenSize.Height)) {
                using (Graphics g = Graphics.FromImage(img)) {
                    IntPtr desktopDC = WinAPIHelper.GetWindowDC(WinAPIHelper.GetDesktopWindow());
                    IntPtr imageDC = g.GetHdc();
                    try {
                        WinAPIHelper.BitBlt(imageDC, 0, 0, screenSize.Width, screenSize.Height, desktopDC, 0, 0, 13369376);
                    }
                    finally { g.ReleaseHdc(imageDC); }
                }
                img.Save("screenshot.jpg", ImageFormat.Jpeg);
            }
        }
    }
    class WinAPIHelper {
        [DllImport("user32.dll")]
        public static extern IntPtr GetDesktopWindow();
        [DllImport("user32.dll")]
        public static extern IntPtr GetWindowDC(IntPtr hwnd);
        [DllImport("gdi32.dll")]
        public static extern bool BitBlt(IntPtr hDestDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, Int32 dwRop);
    }
}

PM MAIL ICQ   Вверх
Ronin08
Дата 16.2.2008, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

Репутация: 1
Всего: 1



Благодарю!
Очень помог smile 
--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Exception
Дата 17.2.2008, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Зачем использовать WinAPI, если есть managed-аналоги? См. Graphics.CopyFromScreen method.

Это сообщение отредактировал(а) Exception - 17.2.2008, 02:01
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.