Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
1

Мониторинг определенного пиксела экрана

06.02.2012, 22:02. Просмотров 3089. Ответов 14
Метки нет (Все метки)

Можно ли указать координаты точки (на рабочем столе) и если изменится ее цвет то допустим выдать сообщение что изменился цвет.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 22:02
Ответы с готовыми решениями:

Как открыть очень большое изображение для получения цвета определенного пиксела
Имеется GEO TIF, очень большой 36001х36001. Нужно получить код цвета конкретного пикселя. Ничего...

Получение пиксела с экрана и исключение ArgumentOutOfRangeException
Здравствуйте, решил сделать бота. Вот кусок кода, в котором после запуска вылетает исключение...

Получение заданной области экрана и цвета пиксела
Здравствуйте! Есть такая задача: 1. В заданной области экрана необходимо отслеживать цвет...

Доступ к видеопамяти: получить и изменить цвет пиксела экрана
Доброго времени суток! Задача такая - получить и изменить цвет пиксела экрана (хочу сделать...

Как сделать так, чтобы при нажатии на кнопку прямоугольник перемещался на 2 пиксела вниз а если еще раз нажать то на два пиксела вверх
Привет Всем!!! Помогите справится с задачей, такая ситуация, как в Дельфи сделать так что бы при...

14
edward_freedom
1557 / 1436 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
06.02.2012, 22:08 2
vb.net
1
GetPixel
1
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
06.02.2012, 22:18  [ТС] 3
Не пойму как с этим работать).
0
edward_freedom
1557 / 1436 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
06.02.2012, 22:27 4
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If ScreenshotForm().GetPixel(1386, 465) = Color.FromArgb(219, 214, 211) Then MsgBox("D")
    End Sub
 
 
 
    Function ScreenshotForm() As Bitmap
        Dim screensize As Size = New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
        Dim screenshot As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
        Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(screenshot)
        g.CopyFromScreen(New Point(0, 0), New Point(0, 0), screensize)
        Return screenshot
    End Function
1
06.02.2012, 22:27
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
06.02.2012, 22:32  [ТС] 5
А можно в кратце, что она делает?)
0
edward_freedom
1557 / 1436 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
06.02.2012, 22:34 6
Делает скриншот экрана, проверяет цвет Color.FromArgb(219, 214, 211) в точке GetPixel(1386, 465)
1
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
06.02.2012, 23:03  [ТС] 7
То есть мне допустим надо чтобы при изменении в точке 10, 10 при измене цвета появлялось сообщение но не чего не происходит.

Добавлено через 1 минуту
Оно же сверяется с тем скриншотом который она сделала при загрузке?

Добавлено через 2 минуты
Цитата Сообщение от edward_freedom Посмотреть сообщение
Делает скриншот экрана, проверяет цвет Color.FromArgb(219, 214, 211) в точке GetPixel(1386, 465)
Это она проверяет не стал ли таким цвет?

Добавлено через 21 минуту
Во, все разобрался а как узнать цвет точки на которую наведен курсор?
0
edward_freedom
1557 / 1436 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
06.02.2012, 23:18 8
Вот, делал для себя... Получить цвет Ctrl+Q
1
Вложения
Тип файла: rar ColorPicker.rar (46.5 Кб, 158 просмотров)
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
06.02.2012, 23:23  [ТС] 9
Вот а как получить, цвет пикселя. Просто там же сама программа.)
0
edward_freedom
1557 / 1436 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
06.02.2012, 23:24 10
Ну наводишь на то место, где нужно узнать цвет пиксиля и жмешь Ctrl+Q
0
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
06.02.2012, 23:29  [ТС] 11
Не мне нужен код чтобы в определенном пикселе узнать цвет. Все поперепробывал.

Добавлено через 2 минуты
Просто через 2 программы неудобно.
0
edward_freedom
1557 / 1436 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
06.02.2012, 23:32 12
Вот старый способ, можно придумать покороче и покрасивее
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
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
    Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Integer
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Integer) As Integer
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)
    Private Structure POINTAPI
        Dim x As Integer
        Dim y As Integer
    End Structure
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim tPOS As POINTAPI
        Dim lColor As Integer
        Dim lDC As Integer
        lDC = GetWindowDC(0)
        Call GetCursorPos(tPOS)
        lColor = GetPixel(lDC, tPOS.x, tPOS.y)
        Dim r As Integer = lColor Mod 256
        Dim g As Integer = (lColor \ 256) Mod 256
        Dim b As Integer = lColor \ 256 \ 256
        TextBox1.Text = r & "," & g & "," & b
        TextBox2.Text = Cursor.Position.X & ", " & Cursor.Position.Y
        TextBox3.Text = lColor
    End Sub
1
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
06.02.2012, 23:40  [ТС] 13
Во все спс.
0
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
07.02.2012, 00:47  [ТС] 14
test1.rar посмотри что то не получается(
В общем надо чтобы при нажатии кнопки S запомнить координаты и цвета, и после этого если измениться выдать сообщение.
0
Jason
400 / 400 / 54
Регистрация: 25.12.2011
Сообщений: 905
08.02.2012, 18:15  [ТС] 15
Цитата Сообщение от Hennasy Посмотреть сообщение
test1.rar посмотри что то не получается(
В общем надо чтобы при нажатии кнопки S запомнить координаты и цвета, и после этого если измениться выдать сообщение.
Так мне кто нибудь поможет с этим?
0
08.02.2012, 18:15
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2012, 18:15

Отслеживание определенного цвета пикселя в квадрате в центре экрана
var Dc: HDC; Pix: Cardinal; X: Integer; Y: Integer; begin Dc:=GetDC(0); for i :=...

Как в Trace Mode создать для определенного экрана пароль?
Пожалуйста подскажите, как в Trace Mode создать для определенного экрана пароль, с помощью канала...

Эмуляция нажатия клавиш при попадании в центр экрана определенного цвета.
Добрый день. Такая проблема, хочу написать программу, чтобы при попадании в центр экрана...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru