Что нового

[Элементы GUI] GUIFinder поиск цвета вместо поиска окна

dimcomp

Новичок
Сообщения
66
Репутация
0
Как сделать чтобы вместо заголовка окна GUIFinder возвращал цвет?

Код:
#include <..\GUIFinder.au3>

$hGUI = GUICreate("_GUICtrlFinder_Create Example", 300, 40)

$hFinder = _GUICtrlFinder_Create($hGUI, 4, 4)

$hBtn = GUICtrlCreateButton("Read!", 40, 6, 80, 30)
$hInp = GUICtrlCreateInput("", 124, 10, 170, 20)

GUISetState()

While True
	Switch GUIGetMsg()
		Case -3
			ExitLoop
		Case $hBtn
			$hWnd = _GUICtrlFinder_GetLastWnd($hFinder)
			
			If $hWnd = 0 Then
				MsgBox(16, "Error", "You are supposed to select a window first :P")
				ContinueLoop
			EndIf
			
			GUICtrlSetData($hInp, "Handle: " & $hWnd)
	EndSwitch
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Цвет под курсором не подойдёт?
Код:
While Sleep(100)
  ToolTip("0x" & Hex(PixelGetColor(MouseGetPos(0), MouseGetPos(1)), 6))
WEnd
 
Автор
D

dimcomp

Новичок
Сообщения
66
Репутация
0
InnI сказал(а):
Цвет под курсором не подойдёт?
Нет. В идеале нужно чтобы пользователь наводил курсор в ту область которая ему нужна, наподобие Finder Tool, и после отпускания ЛКМ цвет сохранялся в переменную, координаты не важны, нужен только цвет.

А в принципе чего нет то :smile:

Код:
#include <..\GUIFinder.au3>

$hGUI = GUICreate("_GUICtrlFinder_Create Example", 300, 40)

$hFinder = _GUICtrlFinder_Create($hGUI, 4, 4)

$hBtn = GUICtrlCreateButton("Read!", 40, 6, 80, 30)
$hInp = GUICtrlCreateInput("", 124, 10, 170, 20)

GUISetState()

While True
	Switch GUIGetMsg()
		Case -3
			ExitLoop
		Case $hBtn
			$hWnd = "0x" & Hex(PixelGetColor(MouseGetPos(0), MouseGetPos(1)), 6)
			
			If $hWnd = 0 Then
				MsgBox(16, "Error", "You are supposed to select a window first :P")
				ContinueLoop
			EndIf
			
			GUICtrlSetData($hInp, "Handle: " & $hWnd)
	EndSwitch
WEnd


Работает :beer:
 
Автор
D

dimcomp

Новичок
Сообщения
66
Репутация
0
InnI сказал(а):
dimcomp
Только исправьте 0 на 1
Уже :smile: Спасибо!


Добавлено:
Сообщение автоматически объединено:

В общем рано радовался, скрипт сохраняет цвет когда нажимаю по кнопке "Read" (то есть сохраняет цвет кнопки), а нужно чтобы сохранял тот цвет, на котором отпустил цель.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
dimcomp
на котором отпустил цель
Что вы зациклились на этой мишени? :smile:
Для получения цвета эта UDF вообще не нужна
Код:
#include "Misc.au3"

MsgBox(0, "Инструкция", "Нажмите ОК для закрытия этого окна." & @CRLF & @CRLF & "Затем наведите курсор на нужный цвет и либо кликните по нему либо нажмите Shift.")
Do
  $Color = PixelGetColor(MouseGetPos(0), MouseGetPos(1))
  ToolTip("Текущий цвет : 0x" & Hex($Color, 6))
  Sleep(30)
Until _IsPressed("01") Or _IsPressed("10")
ToolTip("")
MsgBox(0, "Color", "Выбран цвет : " & $Color)
 
Верх