Modify

Opened 3 years ago

Closed 3 years ago

#3870 closed Bug (Fixed)

[Bug in Regexptitle & regexpclass]

Reported by: anonymous Owned by:
Milestone: Component: AutoIt
Version: 3.3.16.0 Severity: None
Keywords: Cc:

Description (last modified by mLipok)

in version v3.3.15.4(beta):->the script work fine
but,in version v3.3.16.0 -> script not work
below script:

#include <WinAPIGdi.au3>
#include <WinAPIIcons.au3>
#include <WinAPIRes.au3>
#include <WinAPISys.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>
#include <array.au3>
Global $g_bExit = False

_Example()
Func _Example()
    Local Const $sClass = 'WindowsForms10.Window.8.app.0.21373f6_r14_ad1'
    Local Const $sName = 'NCRE服务器设置'

    ; Get module handle for the current process
    Local $hInstance = _WinAPI_GetModuleHandle(0)

    ; Create a class cursor
    Local $hCursor = _WinAPI_LoadCursor(0, 32512) ; IDC_ARROW

    ; Create a class icons (large and small)
    Local $tIcons = DllStructCreate('ptr;ptr')
    _WinAPI_ExtractIconEx(@SystemDir & '\shell32.dll', 130, DllStructGetPtr($tIcons, 1), DllStructGetPtr($tIcons, 2), 1)
    Local $hIcon = DllStructGetData($tIcons, 1)
    Local $hIconSm = DllStructGetData($tIcons, 2)

    ; Create DLL callback function (window procedure)
    Local $hProc = DllCallbackRegister('_WndProc', 'lresult', 'hwnd;uint;wparam;lparam')

    ; Create and fill $tagWNDCLASSEX structure
    Local $tWCEX = DllStructCreate($tagWNDCLASSEX & ';wchar szClassName[' & (StringLen($sClass) + 1) & ']')
    DllStructSetData($tWCEX, 'Size', DllStructGetPtr($tWCEX, 'szClassName') - DllStructGetPtr($tWCEX))
    DllStructSetData($tWCEX, 'Style', 0)
    DllStructSetData($tWCEX, 'hWndProc', DllCallbackGetPtr($hProc))
    DllStructSetData($tWCEX, 'ClsExtra', 0)
    DllStructSetData($tWCEX, 'WndExtra', 0)
    DllStructSetData($tWCEX, 'hInstance', $hInstance)
    DllStructSetData($tWCEX, 'hIcon', $hIcon)
    DllStructSetData($tWCEX, 'hCursor', $hCursor)
    DllStructSetData($tWCEX, 'hBackground', _WinAPI_CreateSolidBrush(_WinAPI_GetSysColor($COLOR_3DFACE)))
    DllStructSetData($tWCEX, 'MenuName', 0)
    DllStructSetData($tWCEX, 'ClassName', DllStructGetPtr($tWCEX, 'szClassName'))
    DllStructSetData($tWCEX, 'hIconSm', $hIconSm)
    DllStructSetData($tWCEX, 'szClassName', $sClass)

    ; Register a window class
    _WinAPI_RegisterClassEx($tWCEX)

    ; Create a window
    _WinAPI_CreateWindowEx(0, $sClass, $sName, BitOR($WS_CAPTION, $WS_POPUPWINDOW, $WS_VISIBLE), (@DesktopWidth - 400) / 2, (@DesktopHeight - 400) / 2, 400, 400, 0)
    _ArrayDisplay(WinList("[TITLE:NCRE服务器设置]")) ; 1 window
    _ArrayDisplay(WinList("[REGEXPTITLE:NCRE服务器设置]")) ; 0 window, why ?
    _ArrayDisplay(WinList("[REGEXPTITLE:服务器设置]")) ; 1 window
    _ArrayDisplay(WinList("[REGEXPTITLE:NCRE]")) ; 0 windows, why ?


    _ArrayDisplay(WinList("[CLASS:WindowsForms10.Window.8.app.0.21373f6_r14_ad1]"))    ; 1 window
    _ArrayDisplay(WinList("[REGEXPCLASS:WindowsForms10.Window.8.app.0.21373f6_r14_ad1]")) ; 0 window, why ?
    _ArrayDisplay(WinList("[REGEXPCLASS:WindowsForms10]")) ; 0 window, why ?
    While 1
        Sleep(100)
        If $g_bExit Then
            ExitLoop
        EndIf
    WEnd

    ; Unregister window class and release unnecessary resources
    _WinAPI_UnregisterClass($sClass, $hInstance)
    _WinAPI_DestroyCursor($hCursor)
    _WinAPI_DestroyIcon($hIcon)
    _WinAPI_DestroyIcon($hIconSm)

    DllCallbackFree($hProc)

EndFunc   ;==>_Example

; Func _WinAPI_DefWindowProcW($hWnd, $iMsg, $wParam, $lParam)
; Local $aRet = DllCall('user32.dll', 'lresult', 'DefWindowProcW', 'hwnd', $hWnd, 'uint', $iMsg, 'wparam', $wParam, 'lparam', $lParam)

; If @error Then
; Return SetError(1, 0, 0)
; EndIf
; Return $aRet[0]
; EndFunc   ;==>_WinAPI_DefWindowProcW

Func _WndProc($hWnd, $iMsg, $wParam, $lParam)
    Switch $iMsg
        Case $WM_CLOSE
            $g_bExit = True
    EndSwitch
    Return _WinAPI_DefWindowProcW($hWnd, $iMsg, $wParam, $lParam)
EndFunc   ;==>_WndProc

Attachments (0)

Change History (5)

comment:1 Changed 3 years ago by Jpm

For me
the script works the same for 3.3.14.5, 3.3.15.4, 3.3.15.5, 3.3.16.0

Last edited 3 years ago by Jpm (previous) (diff)

comment:3 Changed 3 years ago by mLipok

  • Description modified (diff)

comment:4 Changed 3 years ago by anonymous

Yes, it will be the same.

comment:5 Changed 3 years ago by Jon

  • Resolution set to Fixed
  • Status changed from new to closed

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as closed The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.