Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
1
.NET 4.x

Снимок области рабочего стола

13.08.2015, 13:03. Показов 1542. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем знатокам доброе время суток!

Подскажите, как сделать снимок выделенной ОБЛАСТИ рабочего стола.
Есть такой код:
VB.NET
1
q.CopyFromScreen(New Point(0, 0), New Point(0, 0), ScreenSize)
а как получить координаты на рабочем столе?

Спасибо за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2015, 13:03
Ответы с готовыми решениями:

Обновление рабочего стола
Пробовал обновить рабочий стол таким образом: <DllImport("Shell32.dll",...

Передача удаленного рабочего стола
Добрые люди, помогите - как можно осуществить передачу удаленного рабочего стола? нужно для...

Просмотр удаленного рабочего стола
Реально ли сделать просмотр удаленного рабочего стола на VB6 или VB.NET? Можно примеры?

Программно установить обои рабочего стола
И еще вопрос: есть команда на вызов окна свойств файла?

15
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
13.08.2015, 15:33 2
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Imports System.Drawing.Imaging
Public Class Form2
    Dim xy1 As Point, xy2 As Point
 
    Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Form1.Close()
    End Sub
    Private Sub Form2_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        Dim bmp As New Bitmap(Me.PictureBox2.Width, Me.PictureBox2.Height)
        Dim g As Graphics = Graphics.FromImage(bmp)
        g.CopyFromScreen(New Point(PictureBox2.Left, PictureBox2.Top), New Point(0, 0), New Point(PictureBox2.Width, PictureBox2.Height))
        bmp.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\1.jpg", ImageFormat.Jpeg)
        MsgBox("Снимок создан") : PictureBox2.Size = New Size(0, 0)
        Me.Close()
    End Sub
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        InitializeComponent()
        Me.Left = 0
        Me.Top = 0
        Me.Width = Screen.PrimaryScreen.Bounds.Width
        Me.Height = Screen.PrimaryScreen.Bounds.Height
        Me.BackColor = Color.Black
        Me.TransparencyKey = Color.Yellow
        Me.Opacity = 0.7
        Me.TopMost = True
        Me.Cursor = Cursors.Cross
        Me.PictureBox2.BackColor = Color.White
    End Sub
 
    Private Sub Form2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        If e.Button = Windows.Forms.MouseButtons.Left Then
            xy2 = e.Location
            Me.PictureBox2.Location = New Point(Math.Min(xy1.X, xy2.X), Math.Min(xy1.Y, xy2.Y))
            Me.PictureBox2.Size = New Size(Math.Max(xy1.X, xy2.X) - Me.PictureBox2.Location.X, Math.Max(xy1.Y, xy2.Y) - Me.PictureBox2.Location.Y)
        End If
    End Sub
 
    Private Sub Form2_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        xy1 = e.Location
    End Sub
End Class
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
13.08.2015, 16:39  [ТС] 3
Faraon, А в названии "Form2" и "PictureBox2" есть какой-то смысл или это из другой программы?
0
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
13.08.2015, 16:42 4
Это у меня было расположено на форме 2 ("Form2") компонент "PictureBox2" завесит как ты их назвал при создании
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
13.08.2015, 16:49  [ТС] 5
Название: 1.jpg
Просмотров: 51

Размер: 10.1 КбУ меня строчка
VB.NET
1
  Dim bmp As New Bitmap(Me.PictureBox2.Width, Me.PictureBox2.Height)
при втором запуске (????) намертво подвешивает комп. Приходиться делать ресет.
Кроме того изображение получается темным.
Во всяком случае СПАСИБО.
Буду разбираться.
0
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
13.08.2015, 17:07 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

у меня все нормально делает . вот для form1
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Imports System.Drawing.Imaging
Public Class Form1
    Dim xy1 As Point, xy2 As Point
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        InitializeComponent()
        Me.Left = 0
        Me.Top = 0
        Me.Width = Screen.PrimaryScreen.Bounds.Width
        Me.Height = Screen.PrimaryScreen.Bounds.Height
        Me.BackColor = Color.Lime
        Me.TransparencyKey = Color.White
        Me.Opacity = 0.2
        Me.TopMost = True
        Me.Cursor = Cursors.Cross
        Me.PictureBox1.BackColor = Color.White
    End Sub
 
    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        xy1 = e.Location
 
    End Sub
 
    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        If e.Button = Windows.Forms.MouseButtons.Left Then
            xy2 = e.Location
            Me.PictureBox1.Location = New Point(Math.Min(xy1.X, xy2.X), Math.Min(xy1.Y, xy2.Y))
            Me.PictureBox1.Size = New Size(Math.Max(xy1.X, xy2.X) - Me.PictureBox1.Location.X, Math.Max(xy1.Y, xy2.Y) - Me.PictureBox1.Location.Y)
        End If
    End Sub
 
    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        Dim bmp As New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
        Dim g As Graphics = Graphics.FromImage(bmp)
        g.CopyFromScreen(New Point(PictureBox1.Left, PictureBox1.Top), New Point(0, 0), New Point(PictureBox1.Width, PictureBox1.Height))
        bmp.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\1.jpg", ImageFormat.Jpeg)
        MsgBox("Снимок создан") : PictureBox1.Size = New Size(0, 0)
       
      
    End Sub
End Class
2
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
13.08.2015, 17:18  [ТС] 7
Faraon, на этой строчке,после втогого клика, комп подвисает
VB.NET
1
 Dim bmp As New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
2. Зеленоватый цвет экрана остается и программа не выцходит из режима после создания снимка.

Если хотите могу сделать видио.
0
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
13.08.2015, 17:29 8
запусти мой
Вложения
Тип файла: zip ScreenD.zip (69.9 Кб, 17 просмотров)
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
14.08.2015, 10:00  [ТС] 9
Faraon,
Не получается скачать ваш зир. При клике на него появляется новая страница с текстом -
Просмотр вложений разрешен только со страниц нашего форума. Для просмотра вложения, перейдите по ссылке ниже.

Кликните здесь для перехода к сообщению.


Кликаю и ....возвращаюсь обратно на страницу с вашим сообщением. И так до бесконечности...даже палец устал.

Есть хороший хранитель файлов
0
edward_freedom
14.08.2015, 10:13
  #10

Не по теме:

Anderis49, Один раз нажал по вложению ScreenD.zip, все с первого раза скачало. Какие бесконечности, о чем ты вообще. Скрин делает тоже нормально, черного экрана как у тебя нету и после первого скрина, больше не скринит. И на форуме запрещено, другими файлообменниками пользоваться, во избежания потери файлов!

0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
14.08.2015, 10:23 11
Faraon, хм, прикольно.

Anderis49, у Вас очень часто не работают рабочие примеры с форума, замечаю по многим темам.
Возможно, что-то не так с самой Windows.
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
14.08.2015, 10:31  [ТС] 12
Цитата Сообщение от Памирыч Посмотреть сообщение
Возможно, что-то не так с самой Windows
2 недели назад автоматом обновился Windows с 8.1 до 10.
Ни на одном форуме никаких падений или сбоев не наблюдалось.
Сейчас проверю на хр, 7 и 8-ой версии.

А пока, в подтверждении моих слов посмотрите малюсенький ролик.
http://www39.zippyshare.com/v/Yz40g1qE/file.html
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
14.08.2015, 10:33 13
На десятке есть такое поведение. Не любит она полупрозрачные формы и все, что с этим связано, натыкался тоже
0
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
14.08.2015, 10:52  [ТС] 14
Цитата Сообщение от Памирыч Посмотреть сообщение
На десятке есть такое поведение. Не любит она полупрозрачные формы и все, что с этим связано, натыкался тоже
На ХР страница и вообще форум не загрузился, на 7-ки и 8-ки полет нормальный, скачивание зира получилось.

Сырая еще 10-ка, сырая.
0
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
14.08.2015, 18:45 15
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Anderis49 Посмотреть сообщение
2. Зеленоватый цвет экрана остается и программа не выцходит из режима после создания снимка.
а если так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  Function скрин_D() As System.Drawing.Bitmap
        Dim bmp As New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
        Dim g As Graphics = Graphics.FromImage(bmp)
        g.CopyFromScreen(New Point(PictureBox1.Left, PictureBox1.Top), New Point(0, 0), New Point(PictureBox1.Width, PictureBox1.Height))
        bmp.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\1.jpg", ImageFormat.Jpeg)
        MsgBox("Снимок создан")
        PictureBox1.Size = New Size(0, 0)
        ' Form1.PictureBox1.ImageLocation = (Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\1.jpg")
        ' Me.Close()
        Me.TransparencyKey = Color.GreenYellow
        Me.Width = 0
        Me.Height = 0
        Return bmp
    End Function
    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        скрин_D()
    End Sub
у меня win 10 все нормально вроде
1
-135 / 40 / 6
Регистрация: 07.08.2013
Сообщений: 1,092
Записей в блоге: 1
15.08.2015, 15:32  [ТС] 16
Доброго всем времени суток!

Faraon, я немного переделал ваш код, вот так и поставил кнопку.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        If Me.PictureBox1.Width And PictureBox1.Height Then
            Dim bmp As New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
            Dim g As Graphics = Graphics.FromImage(bmp)
            g.CopyFromScreen(New Point(PictureBox1.Left, PictureBox1.Top), New Point(0, 0), New Point(PictureBox1.Width, PictureBox1.Height))
            '/  Save Image
            '  bmp.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\1.jpg", ImageFormat.Jpeg)
            Dim SaveFileDialog1 As New SaveFileDialog()
            SaveFileDialog1.Title = "Save File"
            '  savefiledialog1.FileName = "*.jpg"
            SaveFileDialog1.Filter = "JPEG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif|Png Files (*.png)|*.png|Wmf Files (*.wmf)|*.wmf| Tiff Files (*.tiff)|*.tiff|Bitmap Files (*.bmp)|*.bmp"
            ' If savefiledialog1.ShowDialog() = DialogResult.OK Then
            If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
                If Windows.Forms.DialogResult.OK Then
                    If SaveFileDialog1.FileName.EndsWith(".jpg") Then
                        bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
                    ElseIf SaveFileDialog1.FileName.EndsWith(".bmp") Then
                        bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
                    ElseIf SaveFileDialog1.FileName.EndsWith(".png") Then
                        bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Png)
                    ElseIf SaveFileDialog1.FileName.EndsWith(".gif") Then
                        bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Gif)
                    ElseIf SaveFileDialog1.FileName.EndsWith(".wmf") Then
                        bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Wmf)
                    ElseIf SaveFileDialog1.FileName.EndsWith(".emf") Then
                        bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Emf)
                    ElseIf SaveFileDialog1.FileName.EndsWith(".tiff") Then
                        bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Tiff)
                    End If
 
                End If
            End If
            '// Save Image
            MsgBox("Снимок создан")
 
            bmp.Dispose()
            Me.BackColor = bc
            PictureBox1.Size = New Size(0, 0)
            PictureBox1.Dispose()
            ' Form1.PictureBox1.ImageLocation = (Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\1.jpg")
            '   Me.Close()
            Me.Cursor = Cursors.Default
        Else
            Me.Close()
        End If
        Exit Sub
    End Sub
 
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        InitializeComponent()
        Me.Left = 0
        Me.Top = 0
        Me.Width = Screen.PrimaryScreen.Bounds.Width
        Me.Height = Screen.PrimaryScreen.Bounds.Height
        Me.BackColor = Color.BlueViolet
        Me.TransparencyKey = Color.White
        Me.Opacity = 0.2
        Me.TopMost = True
        Me.Cursor = Cursors.Cross
        Me.PictureBox1.BackColor = Color.White
    End Sub
Теперь нормалек.

Огромное спасибо вам за помощь и понимание.
0
15.08.2015, 15:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2015, 15:32
Помогаю со студенческими работами здесь

Remote Desktop - просмотр удаленного рабочего стола
Доброе время суток, наткнулся на видос на youtube и у меня возник вопрос, можно ли сделать тот же...

Как нарисовать линию поверх рабочего стола?
Всем доброго времени суток! Вопрос в заголовке.

Изменение картинки рабочего стола - растянуть, замостить и т.д.
И еще вопрос! А как сделать так чтобы картинка на desctop е была растянута, или по центру или...

Блокировка рабочего стола windows - внедрить виртуальную клавиатуру
Господа как можно прикрутить к этой программке экранную клавиатуру?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru