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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение монитора, Определить монитор под курсором 
:(
    Опции темы
Doff
Дата 3.2.2009, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет, это снова я, и года не прошло  smile 
В общем, возникла задачка - надо написать прогу, которая скриншотит экран, причем надо делать снимок на экране, где находится курсор или активное окно. Это надо знакомому, который любит фоткать фильмы с экрана ЖК-телевизора, подключенного к компу... Ну еще и мне пригодится, для моей проги-скриншутера.
Нашел отличный модуль для фотографирования (приаттачил), там можно выбирать монитор, но по умолчанию ставится основной монитор. Вот привожу куски кода:
Это заполнение списка мониторов
Код

Dim sList As New List(Of Object)
For Each sc As Screen In Screen.AllScreens
sList.Add(New MyScreen(sc))
Next
Me.MonitoresComboBox.Items.AddRange(sList.ToArray)
Me.MonitoresComboBox.SelectedItem = New MyScreen(Screen.PrimaryScreen)

А вот фотографирование определенного монитора
Код

Dim img As Image = SCapture.DisplayMonitor( _
CType(Me.MonitoresComboBox.SelectedItem, MyScreen).value, Me.IncludeCursorButton.Image IsNot Nothing)
img.Save(filePath, Drawing.Imaging.ImageFormat.Png)

Жаль, что нет Screen.SelectedScreen... Вот уже неделю голову ломаю, теперь написал вам. Если у кого есть идеи - помогите пожалуйста.

Это сообщение отредактировал(а) Doff - 3.2.2009, 19:34

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  SCapture_Class_Demo.zip 26,90 Kb
PM   Вверх
Pilger
Дата 4.2.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

 Private Function ScreenShot() As System.Drawing.Bitmap

      Dim Screen As New Bitmap(sz.Width, sz.Height, Me.CreateGraphics())
      Dim ScreenGraphics As Graphics = Graphics.FromImage(Screen)
      ScreenGraphics.CopyFromScreen(0, 0, 0, 0, sz, CopyPixelOperation.SourceCopy)

      Return Screen

 End Function


пробуй


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
Doff
Дата 5.2.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Pilger, спасибо, но немного непонятно - какого типа sz? Если тип Size, то откуда возьмется значение у этой переменной?
PM   Вверх
Pilger
Дата 5.2.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я похоже не так понял твою проблему. Эта функция просто делает скриншот экрана.

sz это Size который равен SystemInformation.PrimaryMonitorSize

Это сообщение отредактировал(а) Pilger - 5.2.2009, 19:40


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
NoNames
Дата 15.5.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



"CopyFromScreen" is not a member of "System.Drawing.Graphics"

как с этим бороться ?
Модератор: Чтобы задать вопрос, надо создавать новую тему, тем более, что этот вопрос к данной теме не имеет отношения.

Это сообщение отредактировал(а) diadiavova - 15.5.2009, 22:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

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

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


 




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


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

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