У меня есть скрипт в AHK, который использует функцию PixelColorSimple.
PixelColorSimple(pc_x, pc_y, pc_wID) {
if pc_wID
{
pc_hDC := DllCall("GetDC", "UInt", pc_wID)
pc_fmtI := A_FormatInteger
SetFormat, IntegerFast, Hex
pc_c := DllCall("GetPixel", "UInt", pc_hDC, "Int", pc_x, "Int", pc_y, "UInt")
pc_c := pc_c >> 16 & 0xff | pc_c & 0xff00 | (pc_c & 0xff) << 16
pc_c .= ""
SetFormat, IntegerFast, %pc_fmtI%
DllCall("ReleaseDC", "UInt", pc_wID, "UInt", pc_hDC)
return pc_c
}
}
Он извлекает цвет пикселя из не минимизированного фона / переднего плана, даже если пиксель находится за другим окном.Мне нужно, чтобы мой скрипт запускался в фоновом окне, пока я работаю над другим окном, которое находится перед ним.Он отлично работает до тех пор, пока примерно через 6-10 минут он не закроется в цикле с этой функцией, и мне придется вывести окно на передний план, чтобы оно возобновило работу, как и должно.Я думаю, что мой компьютер не позволяет GetDC()
работать с фоновыми окнами по прошествии некоторого времени, поэтому любые идеи о том, как я могу убедиться, что он этого не делает?Или проблема здесь не в GetDC()
?Спасибо.