G
GenoTIP
Гость
как увидеть на экране координату, которую принимает вот эта функция при любых Х и У, главное чтобы координаты искала ВНУТРИ окна, в заданно области. оч нужно..спасибо.
Нашел проблему, из-за которой сохранялся неправильный битмап, теперь проблема в том, что картинка подгружается динамично в программу как Dummy и на битмапе её не видно, как заносить динамично картинку в обычный
?
я это делаю так :
тема решена, вот так добавлять картинку в цикле, сначала добавить
а потом
зациклить
Код:
#include <WinAPIEx.au3>
Opt("MouseCoordMode", 2)
Func _PixelGetColorEx ($iX, $iY, $hWnd)
Local $hDDC, $hCDC, $hBMP
;$aPos = WinGetPos("[TITLE:ProFinance]")
$iWidth = _WinAPI_GetWindowWidth($hWnd)
$iHeight = _WinAPI_GetWindowHeight($hWnd)
$hDDC = _WinAPI_GetDC($hWnd)
$hCDC = _WinAPI_CreateCompatibleDC($hDDC)
$hBMP = _WinAPI_CreateCompatibleBitmap($hDDC, $iWidth, $iHeight) ; создаем битовый массив
_WinAPI_SelectObject($hCDC, $hBMP)
DllCall("User32.dll", "int", "PrintWindow", "hwnd", $hWnd, "hwnd", $hCDC, "int", 0)
;_WinAPI_SaveHBITMAPToFile( @ScriptDir & '\MyImage.bmp', $hBMP)
;$xx = $aPos[0]+$iX+3
;$yy = $aPos[1]+$iY+25
$c = _WinAPI_GetPixel($hCDC, $iX, $iY)
;$sColor = PixelGetColor ($iX, $iY)
$R = _WinAPI_GetRValue($c)
$G = _WinAPI_GetGValue($c)
$B = _WinAPI_GetBValue($c)
;MsgBox(0,$c,Hex(_WinAPI_RGB($R, $G, $B), 6))
;MouseClick("left", $iX, $iY, 1)
;MsgBox(0,'',Hex($sColor),6)
_WinAPI_ReleaseDC($hWnd, $hDDC)
_WinAPI_DeleteDC($hCDC)
_WinAPI_DeleteObject($hBMP) ; очищаем битовый массив
Return Hex(_WinAPI_RGB($R, $G, $B), 6)
EndFunc ;==>_PixelGetColorEx
Нашел проблему, из-за которой сохранялся неправильный битмап, теперь проблема в том, что картинка подгружается динамично в программу как Dummy и на битмапе её не видно, как заносить динамично картинку в обычный
Код:
GUICtrlCreatePic
я это делаю так :
Код:
$hGUI = GUICreate("ProFinance by GenoTIP",660, 373) ; ,-1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX)
;$Pic1 = GUICtrlCreatePic(@ScriptDir & "\prochart_mini.gif", 0, 0, 660, 324)
$Dummy = GUICtrlCreateDummy()
$PxIn = GUICtrlCreateInput("Размер", 2, 328, 49, 21)
$Button1 = GUICtrlCreateButton("OK", 52, 328, 27, 21)
$StatusBar1 = _GUICtrlStatusBar_Create($hGUI)
GUISetState()
$hWnd2 = WinGetHandle("ProFinance by GenoTIP")
$hTimer = TimerInit()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Dummy
$FirstSquare = square_arr_pixel($red)
;ConsoleWrite(UBound($FirstSquare ,1) & "|")
$FirstSquareGr = square_arr_pixel($green)
;ConsoleWrite(UBound($FirstSquareGr ,1) & "|")
DisplayImage() ;ФУНКЦИЯ ПОДГРУЗКИ КАРТИНКИ С ПОМОЩЬЮ GDIP
Case $button1
$MaxPx = GUICtrlRead($PxIn)
EndSwitch
If TimerDiff($hTimer) > 200 Then
;FileDelete(@ScriptDir & "\prochart.gif")
GUICtrlSendToDummy($Dummy)
$hDownload = InetGet("адрес", @ScriptDir & "\картинка.gif",1,1)
Do
Sleep(250)
Until InetGetInfo($hDownload, 2) ; Проверка завершения загрузки
InetClose($hDownload) ; Закрыть дескриптор, чтобы освободить ресурсы.
$hTimer = TimerInit()
EndIf
WEnd
тема решена, вот так добавлять картинку в цикле, сначала добавить
Код:
$Pic1 = GUICtrlCreatePic('', 0, 0, 660, 324)
GUICtrlSetImage ($Pic1 , @ScriptDir & "\prochart_mini.gif")
а потом
зациклить
Код:
GUICtrlSetImage ($Pic1 , @ScriptDir & "\prochart_mini.gif")