Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
fiphiker
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
1

Рандомное движение курсора мыши вне формы при попадании на пиксель определенного цвета

09.06.2012, 19:58. Просмотров 1411. Ответов 2
Метки нет (Все метки)

Здравствуйте, можно ли реализовать рандомное движение мыши вне формы и нажатие мыши, при наведении на определенный цвет?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 19:58
Ответы с готовыми решениями:

Как отследить движение мыши вне моей формы?
Нужен аналог MouseMove, только не для формы, а для всего экрана без использования таймера. То есть,...

При попадании курсора мыши на кнопку изменить ее положение
procedure TForm2.OnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin...

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

Изменение цвета и текста при наведении курсора мыши
Добрый вечер. Вот такой вот вопрос: "Как менять одновременно цвет и текст при наведении курсора...

Вывести поточные координаты курсора мыши относительно формы и экрана, при нажатии на кнопку-реверсное изменение кнопок мыши C++
доброй ночи, уважаемые программисты, умные школьники, преуспевающие студенты, а также все участники...

2
Петррр
6192 / 3493 / 899
Регистрация: 28.10.2010
Сообщений: 5,928
09.06.2012, 21:43 2
Лучший ответ Сообщение было отмечено fiphiker как решение

Решение

C#
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
63
64
65
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using HDC = System.IntPtr;
 
class Program
{
    [DllImport("user32.dll")]
    static extern IntPtr GetDC(IntPtr hwnd);
 
    [DllImport("user32.dll")]
    static extern Int32 ReleaseDC(IntPtr hwnd, IntPtr hdc);
 
    [DllImport("gdi32.dll")]
    static extern uint GetPixel(IntPtr hdc, int nXPos, int nYPos);
 
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool SetCursorPos(int x, int y);
 
    [DllImport("user32.dll")]
    static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData,
       UIntPtr dwExtraInfo);
 
    const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
    const uint MOUSEEVENTF_LEFTUP = 0x0004;
 
    static void Main(string[] args)
    {
        // Для генерации случайных чисел
        Random random = new Random();
        // Область, куда не должен попадать курсор
        Rectangle rect = new Rectangle(150, 150, 200, 200);
        while (true)
        {
            Point point;
            do
            {
                int x = random.Next(0, Screen.PrimaryScreen.WorkingArea.Width);
                int y = random.Next(0, Screen.PrimaryScreen.WorkingArea.Height);
                point = new Point(x, y);
            }
            while (rect.Contains(point));
 
            SetCursorPos(point.X, point.Y);
 
            HDC hdc = GetDC(IntPtr.Zero);
            uint pixel = GetPixel(hdc, point.X, point.Y);
            ReleaseDC(IntPtr.Zero, hdc);
            Color color = Color.FromArgb((int)(pixel & 0x000000FF),
                     (int)(pixel & 0x0000FF00) >> 8,
                     (int)(pixel & 0x00FF0000) >> 16);
            // Щелчок только на белом цвете
            if (color.A == Color.White.A &&
                color.R == Color.White.R &&
                color.G == Color.White.G &&
                color.B == Color.White.B)
            {
                mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)point.X, (uint)point.Y, 0, UIntPtr.Zero);
                Console.WriteLine("Click");
            }
        }
    }
}
1
fiphiker
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
09.06.2012, 22:25  [ТС] 3
Спасибо,помогло, а как можно ее завершить? программа не определила цвет и не завершила работу, так и пришлось комп перезагружать....
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2012, 22:25

Не работает код смены цвета кнопки при наведении курсора мыши
Уважаемый пользователи портала, Есть docm word 2010 c несколькими кнопками в нём(button,button2...

Появляющаяся кнопка вне формы при наведении курсора
Пытаюсь реализовать что-то вроде гаджета для windows 7 на C# При наведении курсора на форму, сбоку...

Смена цвета картинки (SVG) и ссылки (буквы) при наведении курсора мыши
Здравствуйте, я никогда до этого не работал с svg. У меня есть ссылка <a...


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

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

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