Custom Query
Results (142 - 144 of 3841)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#610 | Fixed | WinAPI.au3 _WinAPI_CreateFile() does not return 0 on failure as specified in beta help | Gary | Bowmore |
Description |
Tested on WinXP SP3 AutoIt Beta 3.2.13.8 WinAPI.au3 This may be either a documentation issue or a UDF bug From Beta Help Return Value Success: The open handle to a specified file Failure: 0 From testing I get 0xFFFFFFFF returned on failure #Include <WinAPI.au3> $sfile = "C:\I do not exist.txt" $hFile = _WinAPI_CreateFile($sFile, 2, 2, 2) MsgBox(0,"File Handle", $hFile) |
|||
#674 | Fixed | _GUICtrlTab_ClickTab() Clicks in the wrong place when $fMove = True | Gary | Bowmore |
Description |
Enviroment: Win XP Pro SP2 Autoit 3.2.12.1 Autoit 3.2.13.10 Beta If the $fMove option is set to True the mouse is moved to the wrong location when the window is not maximised. In the code below I've added the 2 highlighted lines to temporarily change the "MouseCoordMode" move the curusor and then reset "MouseCoordMode" to what it was. I've tested this on a few different scenarios and it works OK for me. Func _GUICtrlTab_ClickTab($hWnd, $iIndex, $sButton = "left", $fMove = False, $iClicks = 1, $iSpeed = 1) Local $iX, $iY, $tPoint, $tRect, $iMode, $aPos If $Debug_TAB Then _GUICtrlTab_ValidateClassName($hWnd) If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd) $tRect = _GUICtrlTab_GetItemRectEx($hWnd, $iIndex) $tPoint = _WinAPI_PointFromRect($tRect, True) $tPoint = _WinAPI_ClientToScreen($hWnd, $tPoint) _WinAPI_GetXYFromPoint($tPoint, $iX, $iY) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iX = ' & $iX & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iY = ' & $iY & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console If Not $fMove Then $iMode = Opt("MouseCoordMode", 1) $aPos = MouseGetPos() Opt("MouseCoordMode", $iMode) _WinAPI_ShowCursor(False) MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed) MouseMove($aPos[0], $aPos[1], 0) _WinAPI_ShowCursor(True) Else $iMode = Opt("MouseCoordMode", 1) ;;ADDED THIS LINE MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed) Opt("MouseCoordMode", $iMode) ;;ADDED THIS LINE EndIf EndFunc ;==>_GUICtrlTab_ClickTab |
|||
#700 | Fixed | _GUICtrlTreeView_ClickItem() function does not always click on Tree View item | Gary | Bowmore |
Description |
Enviroment: Win XP Home SP3 AutoIt 3.2.12.1 AutoIt Beta 3.2.13.11 The coords of the centre of the item are calculated relative to the top left origin of the tree view control, but the click is preformed using whatever MouseCoordMode the user has set. The MouseCoordMode option needs setting to 1 and then resetting back to the original value before exiting the function. The coords of the item and the origin of the Tree View control need to be added to get the coords relative to the screen. Code to demonstrate existing behaviour of existing function and that of the suggested fix below. GuiControlsItemClickTest.exe is a compiled version of the Sample GUI from the examples folder to give some tabs to click. Opt("MustDeclareVars", 1) Opt("WinWaitDelay", 100) Opt("WinTitleMatchMode", 4) Opt("WinDetectHiddenText", 1) Opt("MouseCoordMode", 2) Opt("PixelCoordMode", 2) #include <GuiTreeView.au3> Local $hWnd = 0 Local $iCommandID = 0 Local $hItem = 0 Run(@ScriptDir & "\GuiControlsItemClickTest.exe") For $ifunc = 0 To 1 ;Display behaviour when mouse is not moved and then when mouse is moved For $iMove = 0 To 1 ;Use each of the MouseCoordMode in turn For $iCoordMode = 0 To 2 Opt("MouseCoordMode", $iCoordMode) WinActivate("Sample GUI") $hwnd = ControlGetHandle("Sample GUI","","SysTreeView322") If $ifunc = 0 Then ;click on Tree View Item2 without moving mouse ToolTip("Standard UDF Function '_GUICtrlTreeView_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'Item2' moving mouse " & ($iMove <> 0), 20, 20) WinActivate("Sample GUI") $hItem = _GUICtrlTreeView_FindItem($hWnd, "Item2") _GUICtrlTreeView_EnsureVisible($hWnd, $hItem) WinActivate("Sample GUI") _GUICtrlTreeView_ClickItem($hWnd, $hItem, "left", ($iMove <> 0), 1, 50) Sleep(3000) ;click on Tree View foo moving mouse ToolTip("Standard UDF Function '_GUICtrlTreeView_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'TreeView' moving mouse " & ($iMove <> 0), 20, 20) WinActivate("Sample GUI") $hItem = _GUICtrlTreeView_FindItem($hWnd, "TreeView") _GUICtrlTreeView_EnsureVisible($hWnd, $hItem) WinActivate("Sample GUI") _GUICtrlTreeView_ClickItem($hWnd, $hItem, "left", ($iMove <> 0), 1, 50) Sleep(3000) Else ;click on Tree View Item1 without moving mouse ToolTip("Modified UDF Function '_GUICtrlTreeView_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'Foo' moving mouse " & ($iMove <> 0), 20, 20) WinActivate("Sample GUI") $hItem = _GUICtrlTreeView_FindItem($hWnd, "Foo") _GUICtrlTreeView_EnsureVisible($hWnd, $hItem) WinActivate("Sample GUI") MOD_GUICtrlTreeView_ClickItem($hWnd, $hItem, "left", ($iMove <> 0), 1, 50) Sleep(3000) ;click on Tree View TreeView moving mouse ToolTip("Modified UDF Function '_GUICtrlTreeView_ClickItem()' MouseCoordMode = " & $iCoordMode & @CRLF & "Attempting To click on item 'Item1' moving mouse " & ($iMove <> 0), 20, 20) WinActivate("Sample GUI") $hItem = _GUICtrlTreeView_FindItem($hWnd, "Item1") _GUICtrlTreeView_EnsureVisible($hWnd, $hItem) WinActivate("Sample GUI") MOD_GUICtrlTreeView_ClickItem($hWnd, $hItem, "left", ($iMove <> 0), 1, 50) Sleep(3000) EndIf Next Next Next Exit Func MOD_GUICtrlTreeView_ClickItem($hWnd, $hItem, $sButton = "left", $fMove = False, $iClicks = 1, $iSpeed = 0) If $Debug_TV Then _GUICtrlTreeView_ValidateClassName($hWnd) If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd) Local $tPoint, $tRect, $iX, $iY, $iXOrigin, $iYOrigin, $iMode, $aPos ;Get position of TreeView control $tRect = _WinAPI_GetWindowRect($hWnd) ;Get coords of TreeView top left corner $tPoint = _WinAPI_PointFromRect($tRect, False) _WinAPI_GetXYFromPoint($tPoint, $iXOrigin, $iYOrigin) ;Get centre if item relative to TreeView control $tRect = _GUICtrlTreeView_DisplayRectEx($hWnd, $hItem, True) $tPoint = _WinAPI_PointFromRect($tRect) _WinAPI_GetXYFromPoint($tPoint, $iX, $iY) ; Add coords to get screen coords $iX += $iXOrigin $iY += $iYOrigin ;Switch to screen MouseCoordMode $iMode = Opt("MouseCoordMode", 1) If Not $fMove Then $aPos = MouseGetPos() _WinAPI_ShowCursor(False) ;_WinAPI_ShowCursor does not seem to work on XP so set mouse speed it instant MouseClick($sButton, $iX, $iY, $iClicks, 0) MouseMove($aPos[0], $aPos[1], 0) _WinAPI_ShowCursor(True) Else MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed) EndIf ;Switch back to user MouseCoordMode Opt("MouseCoordMode", $iMode) EndFunc ;==>_GUICtrlTreeView_ClickItem |