Я не знаю, как получить текущее изображение экрана в виде данных пикселей, но когда вы это сделаете, оно будет в виде примитивного массива (скорее всего, без знака).Массив может быть в любом из нескольких различных форматов, но наиболее распространенным является 4-байтовый RGBA, то есть каждый компонент получает 1 байт информации.Данные пикселей обычно располагаются в виде текста в книге: слева направо, сверху вниз.
Допустим, ваш пиксель находится в местоположении (x, y).Чтобы получить индекс данных пикселей, вам необходимо выполнить следующее:
int width; //set to the width of the image
int height; //set to the height of the image
int index;
//number of bytes per pixel * number of pixels per row * number of rows
index = 4 * width * y; //get the index of the start of the correct row
//number of bytes per pixel * number of pixels to go across
index += 4 * x; //get the index of the correct column in the row
// pixels[index] = red byte
// pixels[index + 1] = green byte
// pixels[index + 2] = blue byte
// pixels[index + 3] = alpha byte
// pixels[index - (any number)] = previous pixels
// pixels[index + (any number more than 3)] = future pixels
Теперь, когда вы знаете, как получить доступ к данным пикселей для определенного пикселя, просто сохраните значения RGBA дляданный пиксель в начале программы и при запуске программы иногда сравнивает текущий цвет с сохраненным цветом (используйте таймер).Когда они разные, делай что-нибудь (играй музыку).
Надеюсь, это поможет!