 |
c# Perfect-World screenshot - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
02.11.2010, 16:05
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 30.10.2010
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
c# Perfect-World screenshot
Очень прошу помощи.
Кто поможет с кодом, необходимо чтобы при нажатии кнопки ( или через какое-то время ) делался скриншот окна Perfect World.
Заранее благодарен
|
|
|
02.11.2010, 16:15
|
#2
|
|
|
|
Главнокомандующий
|
 Регистрация: 17.11.2009
 Сообщений: 1,062
 Популярность: 64819
 Золото Zhyk.Ru: 170
 Сказал(а) спасибо: 1,456
Поблагодарили 2,062 раз(а) в 822 сообщениях
|
Re: c# Perfect-World screenshot
Зачем строить велосипед, если есть кнопка Принт-Скрин, и есть Paint.?
________________
Полные взломы игрулек VK:
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). (?fix) | [HOT-NEW] Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
02.11.2010, 16:36
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 30.10.2010
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: c# Perfect-World screenshot
может затем, что мне это для программы нужно? а не затем чтобы каждые 5 минут принскринить руками
|
|
|
02.11.2010, 16:52
|
#4
|
|
|
|
Главнокомандующий
|
 Регистрация: 17.11.2009
 Сообщений: 1,062
 Популярность: 64819
 Золото Zhyk.Ru: 170
 Сказал(а) спасибо: 1,456
Поблагодарили 2,062 раз(а) в 822 сообщениях
|
Re: c# Perfect-World screenshot
Ну тогда может надо было написать нужно для программы? А то уважаемый, вы написали "необходимо чтобы при нажатии кнопки" . От сюда и вывод что легче нажать ПС, чем писать программу.
И на по следок надо тебе было в раздел программирования шуровать.
________________
Полные взломы игрулек VK:
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). (?fix) | [HOT-NEW] Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
02.11.2010, 17:04
|
#5
|
|
|
|
Рыцарь
|
 Регистрация: 12.04.2009
 Сообщений: 394
 Популярность: 47903
 Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
|
Re: c# Perfect-World screenshot
 |
Цитата: |
 |
|
|
|
|
|
|
|
public static Bitmap PrintScreen(Screen screen)
{
Rectangle rect = screen.Bounds;
Bitmap bitmap = new Bitmap(
rect.Width, rect.Height);
using (Graphics bmpGraphics = Graphics.FromImage(bitmap))
bmpGraphics.CopyFromScreen(rect.X, rect.Y, 0, 0,
new Size(rect.Width, rect.Height));
return bitmap;
}
...
foreach (Screen screen in Screen.AllScreens)
{
Bitmap bitmap = PrintScreen(screen);
...
} |
|
 |
|
 |
|
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
02.11.2010, 17:07
|
#6
|
|
|
|
Главнокомандующий
|
 Регистрация: 20.01.2010
 Сообщений: 1,539
 Популярность: 22780
 Золото Zhyk.Ru: 600
 Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
|
Re: c# Perfect-World screenshot
Код:
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
namespace WindowScreenShot
{
public static class ScreenCapture
{
public static Image CaptureScreen()
{
return CaptureWindow(User32.GetDesktopWindow());
}
public static Image CaptureWindow(IntPtr handle)
{
IntPtr hdcSrc = User32.GetWindowDC(handle);
User32.RECT windowRect = new User32.RECT();
User32.GetWindowRect(handle, ref windowRect);
int width = windowRect.right - windowRect.left;
int height = windowRect.bottom - windowRect.top;
IntPtr hdcDest = GDI32.CreateCompatibleDC(hdcSrc);
IntPtr hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, width, height);
IntPtr hOld = GDI32.SelectObject(hdcDest, hBitmap);
GDI32.BitBlt(hdcDest, 0, 0, width, height, hdcSrc, 0, 0, GDI32.SRCCOPY);
GDI32.SelectObject(hdcDest, hOld);
GDI32.DeleteDC(hdcDest);
User32.ReleaseDC(handle, hdcSrc);
Image img = Image.FromHbitmap(hBitmap);
GDI32.DeleteObject(hBitmap);
return img;
}
public static void CaptureWindowToFile(IntPtr handle, string filename, ImageFormat format)
{
Image img = CaptureWindow(handle);
img.Save(filename, format);
}
public static void CaptureScreenToFile(string filename, ImageFormat format)
{
Image img = CaptureScreen();
img.Save(filename, format);
}
private class GDI32
{
public const int SRCCOPY = 0x00CC0020; // BitBlt dwRop parameter
[DllImport("gdi32.dll")]
public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hObjectSource,
int nXSrc, int nYSrc, int dwRop);
[DllImport("gdi32.dll")]
public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth, int nHeight);
[DllImport("gdi32.dll")]
public static extern IntPtr CreateCompatibleDC(IntPtr hDC);
[DllImport("gdi32.dll")]
public static extern bool DeleteDC(IntPtr hDC);
[DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);
[DllImport("gdi32.dll")]
public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
}
private class User32
{
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
[DllImport("user32.dll")]
public static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
public static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC);
[DllImport("user32.dll")]
public static extern IntPtr GetWindowRect(IntPtr hWnd, ref RECT rect);
}
}
}
Использование:
Код:
Image screenshot = ScreenCapture.CaptureWindow(handle); // handle окна передаете, скрин которого хотите
Так же есть методы:
CaptureScreen - скриншот всего экрана
CaptureWindowToFile - скрнишот окна сохранить в файл
CaptureScreenToFile - скриншот экрана сохранить в файл
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Быстрое снятие и загрузка скриншотов на хостинг.
Последний раз редактировалось Kitsune; 02.11.2010 в 17:09.
|
|
|
Пользователь сказал cпасибо:
|
|
02.11.2010, 17:25
|
#7
|
|
|
|
Разведчик
|
 Регистрация: 30.10.2010
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: c# Perfect-World screenshot
 |
Цитата: |
 |
|
|
|
|
|
|
|
Ну тогда может надо было написать нужно для программы? А то уважаемый, вы написали "необходимо чтобы при нажатии кнопки" . От сюда и вывод что легче нажать ПС, чем писать программу.
И на по следок надо тебе было в раздел программирования шуровать. |
|
 |
|
 |
|
в названиее си шарп я не просто так поставил.
TBX1n,
J-Fobos,
спасибо большое! буду разбираться
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Обменяю] Perfect World
|
Serdrik |
Товары/услуги в Сети |
0 |
24.09.2010 09:00 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:42.
|
 |