I have a program that has a control that changes color a few seconds into running. So ideally, I would poll this to tell when an event has occurred.
I can't seem to retrieve the correct color value for a control. It always seems to return white indicating that its selecting somewhere else in the window.
In the PixelGetColor call I'm adding half the width to the x value and subtracting half the height to the y value in order to get the center of the control. (assuming the coords returned by ControlGetPos are top left - which i can't be sure of) But I've also tried without modifying the x/y and with changing the PixelCoordMode option to 2. Maybe I'm making a silly mistake and can't see it? Any help would be appreciated.
Code is below:
FileChangeDir( "C:\Where\My\File\Is" );
Run( "MyProgram.exe" )
Local $hClient = WinWaitActive( $CLIENT_TITLE, "", 10 )
Local $systemIndicatorClassNN= "[CLASS:Qt5QWindowIcon; INSTANCE:99]"
Local $hSystemIndicator = ControlGetHandle ( $hClient, "", $systemIndicatorClassNN)
Local $xywh = ControlGetPos ( $hClient, "", $hSystemIndicator )
For $i = 10 To 1 Step -1
$color = PixelGetColor ( $xywh + ($xywh/2), $xywh - ($xywh/2), $hClient )
LogToFile( $color )
Sleep( 2000 )
I have a program XX that asks for user confirmation on exit, which hangs the system reboot/shutdown process until I confirm. So I decided create a autoit script that would automatically close that dialog and let the system reboot/shutdown.
The problem I'm facing is that my scripts now exits before the XX.
Is there a way delay script exit until the XX is closed but only when system is rebooting/shutting down?
Hi, I created a gui with date field but formatted as time in HH:mm. It always shows "now-time". Even if I try to set it with GUICtrlSetData.
#include <DateTimeConstants.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> Example() Func Example() GUICreate("My GUI get date", 200, 200, 800, 200) Local $idDate = GUICtrlCreateDate("", 20, 20, 100, 20, $DTS_TIMEFORMAT) ; to select a specific default format Local $sStyle = "HH:mm" ; Just display hours and minutes <<<<<<<<<<<<<<<<<<<<<<<<<<<< GUICtrlSendMsg($idDate, $DTM_SETFORMATW, 0, $sStyle) ConsoleWrite(GUICtrlRead($idDate) & @CRLF) GUICtrlSetData($idDate, "00:00") ConsoleWrite(GUICtrlRead($idDate) & @CRLF) GUISetState(@SW_SHOW) ; Loop until the user exits. While GUIGetMsg() <> $GUI_EVENT_CLOSE WEnd MsgBox($MB_SYSTEMMODAL, "Time", GUICtrlRead($idDate)) EndFunc ;==>Example How can I set the time field with another time and how can this field be set blank?
Edit: The solution! Maybe?
I need to download an image from a website using AutoIt but the download, when viewed in a text editor, does not appear to be the same as if I had downloaded it from a web browser.
Could anyone help me figure out why this is happening?
I've already tried _INetGetSource, InetGet, _IENavigate, wget, this, and a few .bat and .vbs scripts.
#include <Inet.au3> Local $source = _INetGetSource("http://c0.rbxcdn.com/0db36a45eae4838667ae9a46ba0c082a") Local $newfile = FileOpen(@ScriptDir & "\test.txt", 2) FileWrite($newfile, $source) FileClose($newfile) Image URL: http://c0.rbxcdn.com/0db36a45eae4838667ae9a46ba0c082a
I have to set a resizing mode to differents controls in a hidden gui, that gui is initialised (hidden) and resized by a WinMove.
But when i show it, control are not resized where thez should.
There is a simple code that reproduce the problem.
Same gui, same content, one displayed then moved, the other moved then displayed :
#include <GUIConstantsEx.au3> Opt("GUIOnEventMode", 1) Opt("MustDeclareVars", 1) Global $gui Global $labels Global $taille = [200, 100] For $i = 0 To UBound($gui, 1) - 1 $gui[$i] = GUICreate($i, $taille, $taille, $i * ($taille+100) + 500, (@DesktopHeight-$taille)/2) GUISetOnEvent($GUI_EVENT_CLOSE, "quit", $gui) $labels[$i] = GUICtrlCreateLabel("Test resizing...", $taille-105, $taille-25, 100, 20) GUICtrlSetBkColor($labels[$i], 0xE0E0E0) GUICtrlSetResizing($labels[$i], BitOR($GUI_DOCKRIGHT, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT)) Next GUISetState(@SW_SHOW, $gui) For $i = 0 To UBound($gui, 1) - 1 WinMove($gui[$i], "", Default, Default, $taille+100, $taille+100) Next GUISetState(@SW_SHOW, $gui) While(True) Sleep(10) WEnd Func quit() Exit EndFunc Is that a bug or do miss i something ?
EDIT : This bug disapear if gui is shown at lease one time (even if hide then)