Я хочу сохранить цвет проверки координат сразу после нажатия кнопки запуска и остановки, когда я нажму кнопку остановки, для меня это будет похоже на макрос, но когда я нажал кнопку запуска, ничего не происходит, это не нажимается кнопка S с клавиатуры вообще, мне нужно сохранить нажал кнопку S, пока условие истинно, и вот мой код

using Eyedropper;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace macro
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Bitmap m_ScreenImage;

        private void btnstart_Click(object sender, EventArgs e)
        {
            while (m_ScreenImage.GetPixel(1002, 109).ToString() == "Color [A=255, R=55, G=114, B=173]")
            {

                m_ScreenImage = Utility.CaptureScreen();
                SendKeys.Send("s");
            }
        }
    }
}
-1
Mohammed.A 22 Сен 2018 в 05:43

1 ответ

Лучший ответ

Не совсем уверен, что вы пытаетесь сделать, но я дам вам несколько советов

Это односторонний путь к огромной утечке памяти и нехватке ресурсов GDI .

m_ScreenImage = Utility.CaptureScreen();

Вам следует утилизировать свой Bitmaps

m_ScreenImage?.Dispose();
m_ScreenImage = Utility.CaptureScreen();

Это очень длинный подход к проверке цвета пикселей.

m_ScreenImage.GetPixel(1002, 109).ToString() == "Color [A=255, R=55, G=114, B=173]"

Лучше сохранить нужный цвет и просто сравнить его с цветом, возвращенным из GetPixel

FromArgb (Int32, Int32, Int32, Int32)

Создает структуру Color из значений четырех компонентов ARGB (альфа, красный, зеленый и синий). Хотя этот метод позволяет передавать 32-битное значение для каждого компонента, значение каждого компонента ограничено 8 битами.

public Color targetColor = Color.FromArgb(255, 55, 114, 173);

...

while (m_ScreenImage.GetPixel(1002, 109) == targetColor)
{ ... }

Что касается того, почему ваш ключ отправки не работает, я не уверен. Однако я чувствую, что вы застряли в бесконечной петле.

0
halfer 28 Окт 2019 в 23:15