Monty Posted August 5, 2008 Share Posted August 5, 2008 (edited) Ok, this is kind of hard to explain...but here it goes. I was using 'v3.2.12.0' and everthing was working fine...until I switched to 'v3.2.12.1'. At work we use a phone application. The statusbar of this application displays the current status of the representative. Examples: ---------- AgentStatus: Ready AgentStatus: NotReady AgentStatus: Talking and so on... This is the command I used in the older version to read the status: CODE$handle = ControlGetHandle("Agent Desktop", "", "[CLASS:WindowsForms10.msctls_statusbar32; INSTANCE:1]") $agentstatus = _GUICtrlStatusBar_GetText($handle, 3) Eversince I have switched to the newer version, using the above command does not display the full information...ie: instead of showing 'AgentStatus: Ready', it only shows 'Agentstatus'. Is there now a problem with this command or do I need to add some extra lines to fix this issue. Edited August 17, 2008 by Monty Link to comment Share on other sites More sharing options...
Zedna Posted August 5, 2008 Share Posted August 5, 2008 Replace _GUICtrlStatusBar_GetText() in "C:\Program Files\AutoIt3\Include\guistatusbar.au3" by this fix. This was fixed in 3.2.13.0 (7th June, 2008) (Beta) UDFs: - Fixed #321: _GUICtrlStatusBar_GetText buffer length for Unicode expandcollapse popup; #FUNCTION# ==================================================================================================================== ; Name...........: _GUICtrlStatusBar_GetText ; Description ...: Retrieves the text from the specified part ; Syntax.........: _GUICtrlStatusBar_GetText($hWnd, $iPart) ; Parameters ....: $hWnd - Handle to the control ; $iPart - Zero based part index ; Return values .: Success - Part text ; Author ........: Paul Campbell (PaulIA) ; Modified.......: ; Remarks .......: ; Related .......: _GUICtrlStatusBar_SetText ; Link ..........; ; Example .......; Yes ; =============================================================================================================================== Func _GUICtrlStatusBar_GetText($hWnd, $iPart) If $Debug_SB Then _GUICtrlStatusBar_ValidateClassName($hWnd) Local $iBuffer, $pBuffer, $tBuffer, $pMemory, $tMemMap Local $fUnicode = _GUICtrlStatusBar_GetUnicodeFormat($hWnd) $iBuffer = _GUICtrlStatusBar_GetTextLength($hWnd, $iPart) If $iBuffer = 0 Then Return "" If $fUnicode Then $iBuffer *= 2 $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]") Else $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]") EndIf $pBuffer = DllStructGetPtr($tBuffer) If _WinAPI_InProcess($hWnd, $__ghSBLastWnd) Then If $fUnicode Then _SendMessage($hWnd, $SB_GETTEXTW, $iPart, $pBuffer, 0, "wparam", "ptr") Else _SendMessage($hWnd, $SB_GETTEXT, $iPart, $pBuffer, 0, "wparam", "ptr") EndIf Else $pMemory = _MemInit($hWnd, $iBuffer, $tMemMap) If $fUnicode Then _SendMessage($hWnd, $SB_GETTEXTW, $iPart, $pMemory, 0, "wparam", "ptr") Else _SendMessage($hWnd, $SB_GETTEXT, $iPart, $pMemory, 0, "wparam", "ptr") EndIf _MemRead($tMemMap, $pMemory, $pBuffer, $iBuffer) _MemFree($tMemMap) EndIf Return DllStructGetData($tBuffer, "Text") EndFunc ;==>_GUICtrlStatusBar_GetText Parsix 1 Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Monty Posted August 5, 2008 Author Share Posted August 5, 2008 Thanks for this. Was not aware and thought I was going crazy. Will try first thing tomorrow morning at work. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now