argumentum Posted March 14, 2020 Share Posted March 14, 2020 7 minutes ago, VeeDub said: UI_Automation doesn't work when the desktop is locked nothing, nothing will work on a locked screen. I would code my own Dropbox in AutoIt. Lol, I'd do it and charge you for the DropEmInThaBox(TM/R) service You should rethink your needs and approaches. Dropbox is not the only game in town, nor the best. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
VeeDub Posted March 14, 2020 Share Posted March 14, 2020 @argumentum I think we may be talking at cross-purposes When I click on the Dropbox icon on the SystemTray, the application opens. It is within the app that I wish to identify controls (not the icon on the System Tray). At the present time when I click on the 'Browse Tool', the Dropbox window / application closes. So I was hoping to have some way of using the Browse Tool without causing the Dropbox window to close. In the same way that UIASpy can report info on all windows that are accessible on the desktop. If this is going to be a hassle and you don't think it's going to work. I'll start looking into why _WinGetCntrlInfo doesn't returns [0][0] for the Dropbox window. Thanks VW Link to comment Share on other sites More sharing options...
argumentum Posted March 14, 2020 Share Posted March 14, 2020 3 minutes ago, VeeDub said: At the present time when I click on the 'Browse Tool', the Dropbox window / application closes. ..by now I feel aggravated. Kindly go back to your thread, where you're asking these questions. I can not help you any more. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
VeeDub Posted March 14, 2020 Share Posted March 14, 2020 13 minutes ago, argumentum said: nothing, nothing will work on a locked screen. I would code my own Dropbox in AutoIt. Lol, I'd do it and charge you for the DropEmInThaBox(TM/R) service Well I can click on the Dropbox icon on the SystemTray when the desktop is locked or unlocked However at the present time I am unable to work with the Dropbox application that is opened - regardless of whether the desktop is locked or not. I take your point that there are alternatives to Dropbox and that I may have to consider that option in this instance. At this point I consider the fact that UIA doesn't work when the desktop is locked as a major weakness generally. So I'm interested to see if I can use other approaches to access controls when the desktop is locked. That is why I'm persevering with Dropbox at the moment, because it would be useful for me to automate and the techniques I identified could be useful in other instances as well. Link to comment Share on other sites More sharing options...
bdr529 Posted March 23, 2020 Share Posted March 23, 2020 On 3/14/2020 at 2:55 AM, argumentum said: What's New in Version 0.2020.3.13 added: lock the "Browse Tool". Sec. and Main mouse key will lock the tool. Press SHIFT to unlock. What's New in Version 0.2020.01.14 ( unreleased ) changed func for IsItBootRun() changed TaskSched "_OnLogon" added 10 sec. delay What's New in Version 0.2019.11.22 ( unreleased ) added: refresh AutoIt tab when selected and restored from tray. changed: To speed up color picker when tab is AutoIt or Extras, will not update control info. added: icon for uncompiled script. The files are in the downloads area. I'm sorry but I do not write in English I need to google translatorhttps://www.virustotal.com/gui/file/44357b9cdcb224a2131a8a98a6f69c1d314951b3507dd52cdfaa477aff91b91e/detection why ? To community goes all my regards and thanks Link to comment Share on other sites More sharing options...
argumentum Posted March 23, 2020 Share Posted March 23, 2020 3 hours ago, bdr529 said: why ? because Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
quangvu1602 Posted May 9, 2020 Share Posted May 9, 2020 link? Link to comment Share on other sites More sharing options...
Danp2 Posted May 9, 2020 Share Posted May 9, 2020 Latest Webdriver UDF Release Webdriver Wiki FAQs Link to comment Share on other sites More sharing options...
duyfgtk Posted June 15, 2020 Share Posted June 15, 2020 like argumentum 1 Link to comment Share on other sites More sharing options...
pixelsearch Posted January 25, 2021 Share Posted January 25, 2021 I discovered this thread a couple of days ago and it's really a brilliant script. Bravo @Yashied (wherever you are now) and @argumentum who had the courage to rework it ! I'm experimenting a bit the reworked script of @boomingranny found in this link, which is Yashied's script adapted to newer versions of AutoIt, while trying to solve the following problem : As you notice, the styles of this AutoIt control (an Input control) are not all "translated" because we see in the picture, field Styles names : "0x00002081, WS_CHILD, WS_TABSTOP, WS_VISIBLE" In fact, 0x00002081 corresponds to : 0x2000 (ES_NUMBER) + 0x0080 (ES_AUTOHSCROLL) + 0x0001 (ES_CENTER) But as Yashied didn't include any Control style in his script (except the Window Styles & Dialog Styles) then you'll nearly always find some "0x......" in the Control field style names. I'll be back if experiments lead to something easy to script, probably based on additional arrays of styles (one per each type of AutoIt control) and a reworked Func _GetStyleString() which could use the Control Class ("Edit" in the pic) to pick up styles from the Edit array of styles. argumentum 1 Link to comment Share on other sites More sharing options...
argumentum Posted January 25, 2021 Share Posted January 25, 2021 4 minutes ago, pixelsearch said: I discovered this thread a couple of days ago and it's really a brilliant script. ...I'm experimenting a bit the reworked script ... I'll be back if experiments lead to something... I'll add the reworked code to the distribution and add some cosmetic tweak I was thinking of too. I never paid attention to that you point out, but it will be a welcomed patch/fix 10 minutes ago, pixelsearch said: In fact, 0x00002081 corresponds to : 0x2000 (ES_NUMBER) + 0x0080 (ES_AUTOHSCROLL) + 0x0001 (ES_CENTER) if you give me the list, I could do it myself, tho if you do it ... better Either way. Thanks for contributing. @Yashied really coded a nice tool pixelsearch 1 Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
pixelsearch Posted January 26, 2021 Share Posted January 26, 2021 (edited) Hi argumentum I took the Style list for all controls from this link :https://www.autoitscript.com/autoit3/docs/appendix/GUIStyles.htm Selected and copied (ctrl-a, ctrl-c) the whole Web page from the Browser, opened Excel, Pasted Special (as Text, not as HTML) forcing it to lose all Html format so all Excel rows would have the same small height, ending in something like this, where Style names and Styles numbers are automatically placed in 2 separate columns in Excel : ... Edit/Input Styles #include <EditConstants.au3> Default/forced $ES_AUTOHSCROLL 0x0080 $ES_AUTOVSCROLL 0x0040 $ES_CENTER 0x0001 $ES_LOWERCASE 0x0010 $ES_NOHIDESEL 0x0100 $ES_NUMBER 0x2000 $ES_OEMCONVERT 0x0400 $ES_MULTILINE 0x0004 $ES_PASSWORD 0x0020 $ES_READONLY 0x0800 $ES_RIGHT 0x0002 $ES_UPPERCASE 0x0008 $ES_WANTRETURN 0x1000 ... 8 hours ago, argumentum said: f you give me the list, I could do it myself Please be my guest if you wanna do it May I suggest, in the beginning, to try only a certain type of control (for example this Edit/Input Styles) and if you find the result satisfying, then add a 2nd type of control etc... If it can help, it took me some time to understand why Yashied did a test based on (Not BitAND($Data[$i][0], 0xFFFF)) in his Func _GetStyleString() For $i = 0 To UBound($Data) - 1 If BitAND($iStyle, $Data[$i][0]) Then If (Not BitAND($Data[$i][0], 0xFFFF)) Or ($fDialog) Or ($fExStyle) Then $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) $Text &= $Data[$i][1] & ', ' EndIf EndIf Next If I understood correctly, this test is done to prevent the Dialog Styles to be applied to Controls. We can notice that all Dialog Styles have a value < 0xFFFF and are unfortunately placed in the same array as the Window styles, which all have a value > 0xFFFF (the 1st one being [0x00010000, 'WS_TABSTOP'] as found in Yashied's Style array) An example in the pic below : The style "0x00000080" should be ES_AUTOHSCROLL. But if you look at Yashied's array, you'll find this : Global Const $Style[31][2] = _ ... [0x00000080, 'DS_MODALFRAME'], _ ... So, without the test based on (Not BitAND($Data[$i][0], 0xFFFF)), then "DS_MODALFRAME" would have been wrongly added to the Input Styles names list. I think it could have been avoided if the Dialog Styles and the Window Styles had been placed in 2 different arrays instead of being mixed in a single Style array. Always in Func _GetStyleString(), another thing I didn't understand is why the 2 following lines don't always give the same result ? $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) ; Yashied's code (brings correct results) $iStyle = BitXOR($iStyle, $Data[$i][0]) ; personal test (brings sometimes wrong results) I have a little idea why, but I'll open a new thread for this because it's not directly related to this thread. Good luck argumentum Edited January 26, 2021 by pixelsearch typo argumentum 1 Link to comment Share on other sites More sharing options...
argumentum Posted January 26, 2021 Share Posted January 26, 2021 (edited) On 1/25/2021 at 9:01 PM, pixelsearch said: Good luck argumentum Thanks ok, this post I will remove once you "ok" the patch. I made an include with the constants: Spoiler expandcollapse popup#include-once Global Const $Style_Gui[37][2] = _ [[0x00800000, "$WS_BORDER"], _ [0x80000000, "$WS_POPUP"], _ [0x00C00000, "$WS_CAPTION"], _ [0x02000000, "$WS_CLIPCHILDREN"], _ [0x04000000, "$WS_CLIPSIBLINGS"], _ [0x08000000, "$WS_DISABLED"], _ [0x00400000, "$WS_DLGFRAME"], _ [0x00100000, "$WS_HSCROLL"], _ [0x01000000, "$WS_MAXIMIZE"], _ [0x00010000, "$WS_MAXIMIZEBOX"], _ [0x20000000, "$WS_MINIMIZE"], _ [0x00020000, "$WS_MINIMIZEBOX"], _ [0x00000000, "$WS_OVERLAPPED"], _ [0x00CF0000, "$WS_OVERLAPPEDWINDOW"], _ [0x80880000, "$WS_POPUPWINDOW"], _ [0x00040000, "$WS_SIZEBOX"], _ [0x00080000, "$WS_SYSMENU"], _ [0x00040000, "$WS_THICKFRAME"], _ [0x00200000, "$WS_VSCROLL"], _ [0x10000000, "$WS_VISIBLE"], _ [0x40000000, "$WS_CHILD"], _ [0x00020000, "$WS_GROUP"], _ [0x00010000, "$WS_TABSTOP"], _ [0x00000080, "$DS_MODALFRAME"], _ [0x00000200, "$DS_SETFOREGROUND"], _ [0x00002000, "$DS_CONTEXTHELP"], _ [0x00000004, 'DS_3DLOOK'], _ [0x00000001, 'DS_ABSALIGN'], _ [0x00000800, 'DS_CENTER'], _ [0x00001000, 'DS_CENTERMOUSE'], _ [0x00000400, 'DS_CONTROL'], _ [0x00000008, 'DS_FIXEDSYS'], _ [0x00000020, 'DS_LOCALEDIT'], _ [0x00000010, 'DS_NOFAILCREATE'], _ [0x00000100, 'DS_NOIDLEMSG'], _ [0x00000040, 'DS_SETFONT'], _ [0x00000002, 'DS_SYSMODAL']] Global Const $Style_GuiExtended[23][2] = _ [[0x00000010, "$WS_EX_ACCEPTFILES"], _ [0x00040000, "$WS_EX_APPWINDOW"], _ [0x02000000, "$WS_EX_COMPOSITED"], _ [0x00000200, "$WS_EX_CLIENTEDGE"], _ [0x00000400, "$WS_EX_CONTEXTHELP"], _ [0x00000001, "$WS_EX_DLGMODALFRAME"], _ [0x400000, "$WS_EX_LAYOUTRTL"], _ [0x00000040, "$WS_EX_MDICHILD"], _ [0x00000300, "$WS_EX_OVERLAPPEDWINDOW"], _ [0x00020000, "$WS_EX_STATICEDGE"], _ [0x00000008, "$WS_EX_TOPMOST"], _ [0x00000020, "$WS_EX_TRANSPARENT"], _ [0x00000080, "$WS_EX_TOOLWINDOW"], _ [0x00000100, "$WS_EX_WINDOWEDGE"], _ [0x00080000, "$WS_EX_LAYERED"], _ [0x00100000, "$GUI_WS_EX_PARENTDRAG"], _ [0x00010000, 'WS_EX_CONTROLPARENT'], _ [0x00004000, 'WS_EX_LEFTSCROLLBAR'], _ [0x08000000, 'WS_EX_NOACTIVATE'], _ [0x00100000, 'WS_EX_NOINHERITLAYOUT'], _ [0x00000004, 'WS_EX_NOPARENTNOTIFY'], _ [0x00001000, 'WS_EX_RIGHT'], _ [0x00002000, 'WS_EX_RTLREADING']] Global Const $Style_Button[20][2] = _ [[0x0800, "$BS_BOTTOM"], _ [0x0300, "$BS_CENTER"], _ [0x0001, "$BS_DEFPUSHBUTTON"], _ [0x2000, "$BS_MULTILINE"], _ [0x0400, "$BS_TOP"], _ [0x0C00, "$BS_VCENTER"], _ [0x0040, "$BS_ICON"], _ [0x0080, "$BS_BITMAP"], _ [0x8000, "$BS_FLAT"], _ [0x4000, "$BS_NOTIFY"], _ [0x0005, "$BS_3STATE"], _ [0x0006, "$BS_AUTO3STATE"], _ [0x0003, "$BS_AUTOCHECKBOX"], _ [0x0002, "$BS_CHECKBOX"], _ [0x0100, "$BS_LEFT"], _ [0x1000, "$BS_PUSHLIKE"], _ [0x0200, "$BS_RIGHT"], _ [0x0020, "$BS_RIGHTBUTTON"], _ [0x0007, "$BS_GROUPBOX"], _ [0x0009, "$BS_AUTORADIOBUTTON"]] Global Const $Style_Combo[10][2] = _ [[0x0040, "$CBS_AUTOHSCROLL"], _ [0x0800, "$CBS_DISABLENOSCROLL"], _ [0x0002, "$CBS_DROPDOWN"], _ [0x0003, "$CBS_DROPDOWNLIST"], _ [0x4000, "$CBS_LOWERCASE"], _ [0x0400, "$CBS_NOINTEGRALHEIGHT"], _ [0x0080, "$CBS_OEMCONVERT"], _ [0x0001, "$CBS_SIMPLE"], _ [0x0100, "$CBS_SORT"], _ [0x2000, "$CBS_UPPERCASE"]] Global Const $Style_ListBox[7][2] = _ [[0x1000, "$LBS_DISABLENOSCROLL"], _ [0x0100, "$LBS_NOINTEGRALHEIGHT"], _ [0x4000, "$LBS_NOSEL"], _ [0x0001, "$LBS_NOTIFY"], _ [0x0002, "$LBS_SORT"], _ [0xA00003, "$LBS_STANDARD"], _ [0x0080, "$LBS_USETABSTOPS"]] Global Const $Style_Edit[13][2] = _ [[0x0080, "$ES_AUTOHSCROLL"], _ [0x0040, "$ES_AUTOVSCROLL"], _ [0x0001, "$ES_CENTER"], _ [0x0010, "$ES_LOWERCASE"], _ [0x0100, "$ES_NOHIDESEL"], _ [0x2000, "$ES_NUMBER"], _ [0x0400, "$ES_OEMCONVERT"], _ [0x0004, "$ES_MULTILINE"], _ [0x0020, "$ES_PASSWORD"], _ [0x0800, "$ES_READONLY"], _ [0x0002, "$ES_RIGHT"], _ [0x0008, "$ES_UPPERCASE"], _ [0x1000, "$ES_WANTRETURN"]] Global Const $Style_Progress[4][2] = _ [[0x08, "$PBS_MARQUEE"], _ [0x01, "$PBS_SMOOTH"], _ [0x10, "$PBS_SMOOTHREVERSE"], _ [0x04, "$PBS_VERTICAL"]] Global Const $Style_UpDown[6][2] = _ [[0x08, "$UDS_ALIGNLEFT"], _ [0x04, "$UDS_ALIGNRIGHT"], _ [0x20, "$UDS_ARROWKEYS"], _ [0x40, "$UDS_HORZ"], _ [0x80, "$UDS_NOTHOUSANDS"], _ [0x01, "$UDS_WRAP"]] Global Const $Style_Label[19][2] = _ [[0x07, "$SS_BLACKFRAME"], _ [0x04, "$SS_BLACKRECT"], _ [0x01, "$SS_CENTER"], _ [0x0200, "$SS_CENTERIMAGE"], _ [0x12, "$SS_ETCHEDFRAME"], _ [0x10, "$SS_ETCHEDHORZ"], _ [0x11, "$SS_ETCHEDVERT"], _ [0x08, "$SS_GRAYFRAME"], _ [0x05, "$SS_GRAYRECT"], _ [0x0000, "$SS_LEFT"], _ [0x0C, "$SS_LEFTNOWORDWRAP"], _ [0x80, "$SS_NOPREFIX"], _ [0x0100, "$SS_NOTIFY"], _ [0x0002, "$SS_RIGHT"], _ [0x0400, "$SS_RIGHTJUST"], _ [0x0B, "$SS_SIMPLE"], _ [0x1000, "$SS_SUNKEN"], _ [0x09, "$SS_WHITEFRAME"], _ [0x06, "$SS_WHITERECT"]] Global Const $Style_Tab[20][2] = _ [[0x0001, "$TCS_SCROLLOPPOSITE"], _ [0x0002, "$TCS_BOTTOM"], _ [0x0002, "$TCS_RIGHT"], _ [0x0004, "$TCS_MULTISELECT"], _ [0x0008, "$TCS_FLATBUTTONS"], _ [0x0010, "$TCS_FORCEICONLEFT"], _ [0x0020, "$TCS_FORCELABELLEFT"], _ [0x0040, "$TCS_HOTTRACK"], _ [0x0080, "$TCS_VERTICAL"], _ [0x0000, "$TCS_TABS"], _ [0x0100, "$TCS_BUTTONS"], _ [0x0000, "$TCS_SINGLELINE"], _ [0x0200, "$TCS_MULTILINE"], _ [0x0000, "$TCS_RIGHTJUSTIFY"], _ [0x0400, "$TCS_FIXEDWIDTH"], _ [0x0800, "$TCS_RAGGEDRIGHT"], _ [0x1000, "$TCS_FOCUSONBUTTONDOWN"], _ [0x2000, "$TCS_OWNERDRAWFIXED"], _ [0x4000, "$TCS_TOOLTIPS"], _ [0x8000, "$TCS_FOCUSNEVER"]] Global Const $Style_Avi[4][2] = _ [[0x04, "$ACS_AUTOPLAY"], _ [0x01, "$ACS_CENTER"], _ [0x02, "$ACS_TRANSPARENT"], _ [0x10, "$ACS_NONTRANSPARENT"]] Global Const $Style_Date[6][2] = _ [[0x01, "$DTS_UPDOWN"], _ [0x02, "$DTS_SHOWNONE"], _ [0x04, "$DTS_LONGDATEFORMAT"], _ [0x09, "$DTS_TIMEFORMAT"], _ [0x20, "$DTS_RIGHTALIGN"], _ [0x00, "$DTS_SHORTDATEFORMAT"]] Global Const $Style_MonthCal[3][2] = _ [[0x10, "$MCS_NOTODAY"], _ [0x08, "$MCS_NOTODAYCIRCLE"], _ [0x04, "$MCS_WEEKNUMBERS"]] Global Const $Style_TreeView[13][2] = _ [[0x0001, "$TVS_HASBUTTONS"], _ [0x0002, "$TVS_HASLINES"], _ [0x0004, "$TVS_LINESATROOT"], _ [0x0010, "$TVS_DISABLEDRAGDROP"], _ [0x0020, "$TVS_SHOWSELALWAYS"], _ [0x0040, "$TVS_RTLREADING"], _ [0x0080, "$TVS_NOTOOLTIPS"], _ [0x0100, "$TVS_CHECKBOXES"], _ [0x0200, "$TVS_TRACKSELECT"], _ [0x0400, "$TVS_SINGLEEXPAND"], _ [0x1000, "$TVS_FULLROWSELECT"], _ [0x2000, "$TVS_NOSCROLL"], _ [0x4000, "$TVS_NONEVENHEIGHT"]] Global Const $Style_Slider[10][2] = _ [[0x0001, "$TBS_AUTOTICKS"], _ [0x0008, "$TBS_BOTH"], _ [0x0000, "$TBS_BOTTOM"], _ [0x0000, "$TBS_HORZ"], _ [0x0002, "$TBS_VERT"], _ [0x0080, "$TBS_NOTHUMB"], _ [0x0010, "$TBS_NOTICKS"], _ [0x0004, "$TBS_LEFT"], _ [0x0000, "$TBS_RIGHT"], _ [0x0004, "$TBS_TOP"]] Global Const $Style_ListView[12][2] = _ [[0x0000, "$LVS_ICON"], _ [0x0001, "$LVS_REPORT"], _ [0x0002, "$LVS_SMALLICON"], _ [0x0003, "$LVS_LIST"], _ [0x0200, "$LVS_EDITLABELS"], _ [0x4000, "$LVS_NOCOLUMNHEADER"], _ [0x8000, "$LVS_NOSORTHEADER"], _ [0x0004, "$LVS_SINGLESEL"], _ [0x0008, "$LVS_SHOWSELALWAYS"], _ [0x0010, "$LVS_SORTASCENDING"], _ [0x0020, "$LVS_SORTDESCENDING"], _ [0x0080, "$LVS_NOLABELWRAP"]] Global Const $Style_ListViewExtended[12][2] = _ [[0x00000020, "$LVS_EX_FULLROWSELECT"], _ [0x00000001, "$LVS_EX_GRIDLINES"], _ [0x00000010, "$LVS_EX_HEADERDRAGDROP"], _ [0x00000008, "$LVS_EX_TRACKSELECT"], _ [0x00000004, "$LVS_EX_CHECKBOXES"], _ [0x00008000, "$LVS_EX_BORDERSELECT"], _ [0x00010000, "$LVS_EX_DOUBLEBUFFER"], _ [0x00000100, "$LVS_EX_FLATSB"], _ [0x00002000, "$LVS_EX_MULTIWORKAREAS"], _ [0x00080000, "$LVS_EX_SNAPTOGRID"], _ [0x00000002, "$LVS_EX_SUBITEMIMAGES"], _ [0x00000400, "$LVS_EX_INFOTIP"]] ...so add #include <GUIStyles.inc.au3> ; this code and find and change: _SetData($Input[22], _GetStyleString($Data, 0, 0, GUICtrlRead($Input[16]))) ; and _SetData($Input[24], _GetStyleString($Data, 0, 1, "Ex" & GUICtrlRead($Input[16]))) and replace: expandcollapse popupFunc _GetStyleString($iStyle, $fDialog = 1, $fExStyle = 0, $sClass = '') If $sClass <> '' Then ConsoleWrite($sClass & @CRLF) Local $Data, $Text = '' If $sClass <> '' Then _GetCtrlStyleString($iStyle, $Text, $sClass) If $fExStyle Then $Data = $Style_GuiExtended ; $ExStyle Else $Data = $Style_Gui ; $Style EndIf Local $iStyleRet = $iStyle ; ..save the missing match in $iStyleRet For $i = 0 To UBound($Data) - 1 If BitAND($iStyle, $Data[$i][0]) Then ; ..found a match in the array If (Not BitAND($Data[$i][0], 0xFFFF)) Or ($fDialog) Or ($fExStyle) Or $sClass <> '' Then $iStyleRet = BitAND($iStyleRet, BitNOT($Data[$i][0])) ; ..remove THAT from the return $iStyleRet $Text &= $Data[$i][1] & ', ' EndIf EndIf Next If $iStyleRet Then $Text = '0x' & Hex($iStyleRet, 8) & ', ' & $Text EndIf Return StringRegExpReplace($Text, ',\s\z', '') EndFunc ;==>_GetStyleString Func _GetCtrlStyleString($iStyle, ByRef $Text, $sClass) Switch $sClass ; $Input[16] Case "Button" $Data = $Style_Button Case "ComboBox" $Data = $Style_Combo Case "ListBox" $Data = $Style_ListBox Case "Edit" $Data = $Style_Edit Case "msctls_progress32" $Data = $Style_Progress Case "msctls_updown32" $Data = $Style_UpDown Case "Static" $Data = $Style_Label Case "SysTabControl32" $Data = $Style_Tab Case "SysAnimate32" $Data = $Style_Avi Case "SysDateTimePick32" $Data = $Style_Date Case "SysMonthCal32" $Data = $Style_MonthCal Case "SysTreeView32" $Data = $Style_TreeView Case "msctls_trackbar32" $Data = $Style_Slider Case "SysListView32" $Data = $Style_ListView Case "ExSysListView32" $Data = $Style_ListViewExtended EndSwitch For $i = 0 To UBound($Data) - 1 If BitAND($iStyle, $Data[$i][0]) Then $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) $Text &= $Data[$i][1] & ', ' EndIf Next EndFunc That is the corrected implementation. The control styles are added ( from the link ) and also the window styles, as a control is in itself a window of sorts. Try it out and I'll post the new build on Wednesday. ( I'll be busy doing woodwork with the neighbor tomorrow ) Edited January 28, 2021 by argumentum fixed an oops / changes Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
pixelsearch Posted January 26, 2021 Share Posted January 26, 2021 Hi argumentum Wow... you are fast, it takes me much (much) more time to script and test. Just a few comments on your precedent post, but there are still plenty of tests to be done I notice you added Windows styles & extended styles to Yashied's original list, probably because they are in the web page we worked on (this web page is in fact an exact copy of the help file page named "GUI Control Styles"). But see what happens now : Global Const $ExStyle[21][2] ; Yashied's Global Const $Style_GuiExtended[23][2] ; now 2 added styles are : [0x00000300, "$WS_EX_OVERLAPPEDWINDOW"] [0x00100000, "$GUI_WS_EX_PARENTDRAG"] * $WS_EX_OVERLAPPEDWINDOW : to be suppressed, it combines WS_EX_CLIENTEDGE (0x00000200) and WS_EX_WINDOWEDGE (0x00000100) * $GUI_WS_EX_PARENTDRAG : to be placed in a new array. It's an AutoIt special extended style that allows a label or pic control to be used as the title bar to drag the whole parent window. Leaving it in the $Style_GuiExtended array creates a duplicate with [0x00100000, 'WS_EX_NOINHERITLAYOUT'] I don't know who decided one day to suppress $WS_EX_NOINHERITLAYOUT from the help file and to replace it with $GUI_WS_EX_PARENTDRAG. Gladly I was lucky enough to find $WS_EX_NOINHERITLAYOUT on MSDN and it gave a great result in the script found in this link. Following your array names, this new array could be named $Style_LabelExtended (the same way you did with $Style_ListView and $Style_ListViewExtended) and could correspond to a Case "ExStatic" (the same way you did with Case "SysListView32" and Case "ExSysListView32") Also this new array should contain only 1 element [0x00100000, "$GUI_WS_EX_PARENTDRAG"] As Pic and Label controls both have the Static Class, then it should be ok (all this needs further tests). Two thoughts come to my mind : 1st thought: If a "link" existed between all array names and control class names, then it could avoid the numerous Case found in the _GetCtrlStyleString() function. Here is a script that shows this behavior : expandcollapse popup#include <Array.au3> Global Const $Style_Edit[3][2] = _ [[0x0080, "$ES_AUTOHSCROLL"], _ [0x0040, "$ES_AUTOVSCROLL"], _ [0x0001, "$ES_CENTER"]] ; Edit styles (cropped, just for test) Global Const $Style_SysTabControl32[2][2] = _ [[0x0001, "$TCS_SCROLLOPPOSITE"], _ [0x0002, "$TCS_BOTTOM"]] ; Tab styles (cropped, just for test) $sClass = "Edit" $Data = Eval("Style_" & $sClass) _ArrayDisplay($Data) $sClass = "SysTabControl32" $Data = Eval("Style_" & $sClass) _ArrayDisplay($Data) #cs It seems to work, then, instead of 16 Case (15 + 1 for "ExStatic") in the following function : Func _GetCtrlStyleString(ByRef $iStyle, ByRef $Text, $sClass) Switch $sClass ; $Input[16] Case "Button" $Data = $Style_Button Case "ComboBox" $Data = $Style_Combo Case "ListBox" $Data = $Style_ListBox Case "Edit" $Data = $Style_Edit Case "msctls_progress32" $Data = $Style_Progress Case ... EndSwitch It could be scripted with 1 line only : Func _GetCtrlStyleString(ByRef $iStyle, ByRef $Text, $sClass) $Data = Eval("Style_" & $sClass) #ce 2nd thought: maybe _GetCtrlStyleString() should be called only at the very end of Func _GetStyleString(), within the final test : If $iStyle Then ; Call _GetCtrlStyleString() only now, because style value is still <> 0 ; When it returns, if $iStyle is still <> 0 then apply the following original line. $Text = '0x' & Hex($iStyle, 8) & ', ' & $Text EndIf By the way, a first (quick) test on the styles of an Input control gives me bad results : 0x00000080, WS_CHILD, WS_GROUP, WS_TABSTOP, WS_VISIBLE ; Yashied's (ok) $ES_AUTOHSCROLL, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_VISIBLE, $WS_CHILD ; now This is probably because 6 styles were added to Yashied's list : Global Const $Style[31][2] ; Yashied's Global Const $Style_Gui[37][2] ; now [0x00010000, "$WS_MAXIMIZEBOX"] ; duplicates the already existing $WS_TABSTOP [0x00020000, "$WS_MINIMIZEBOX"] ; duplicates the already existing $WS_GROUP [0x00000000, "$WS_OVERLAPPED"] ; 0 value (should be ignored) [0x00CF0000, "$WS_OVERLAPPEDWINDOW"]; sums other styles (help file) [0x80880000, "$WS_POPUPWINDOW"] ; sums other styles (help file) [0x00040000, "$WS_THICKFRAME"] ; duplicates the already existing $WS_SIZEBOX Ok dinner time and the fridge is empty, how great ! By the way, in your precedent post, I like your "Edited: fixed an oops" , I'll sure use it when I Edit my posts argumentum 1 Link to comment Share on other sites More sharing options...
argumentum Posted January 26, 2021 Share Posted January 26, 2021 5 hours ago, pixelsearch said: notice you added Windows styles & extended styles to Yashied's original list, probably because they are in the web page we worked on yes, I pulled the data: Spoiler #include <File.au3> #include <Debug.au3> main() Func main() Local $aTemp, $aFile, $StyleName = "", $iCount = 0 _FileReadToArray("GUIStyles.htm.txt", $aFile) ; https://www.autoitscript.com/autoit3/docs/appendix/GUIStyles.htm ;~ _DebugArrayDisplay($aFile) For $n = 1 To $aFile[0] $aFile[$n] = StringStripWS($aFile[$n], 3) If StringInStr($aFile[$n], '<th class="c1">') Then ConsoleWrite(@TAB & $iCount & @CRLF) $aTemp = StringSplit($aFile[$n], '"') $StyleName = "gui" For $m = 1 To $aTemp[0] If $aTemp[$m] = '><a id=' Then $StyleName = $aTemp[$m + 1] Next $iCount = 0 ConsoleWrite($StyleName & @CRLF) ContinueLoop EndIf If StringInStr($aFile[$n], '<td>$') And StringInStr($aFile[$n + 1], '<td>0x') Then $iCount += 1 ConsoleWrite('[' & deHtmlEd($aFile[$n + 1]) & ', "' & deHtmlEd($aFile[$n]) & '"], _' & @CRLF) EndIf Next ConsoleWrite(@TAB & $iCount & @CRLF) EndFunc Func deHtmlEd($sStr) $sStr = StringReplace($sStr, '<td>', '') $sStr = StringReplace($sStr, '</td>', '') Return StringStripWS($sStr, 8) EndFunc from the web page and Arrayfy it the way Yashied did. Then added those entries Yashied have and the page don't have. 5 hours ago, pixelsearch said: Following your array names, this new array could be named $Style_LabelExtended (the same way you did with $Style_ListView.... Had to give'em a name so I used those from the webpage, tho, yes, renaming would make shorter code possible. 5 hours ago, pixelsearch said: By the way, a first (quick) test on the styles of an Input control gives me bad results You are much more proficient with all this GUI stuff than me. The modifications are simple to find and change. You know what you have in mind and are familiar with the challenges. I say you give me the code to include/patch and I'll post it. It'll be easier than back and forth ideas, and I trust your coding ideas. So its been decided, all in favor say yey ( yey ), motion passes for you to supply a working patch 5 hours ago, pixelsearch said: I like your "Edited: fixed an oops" lol, me too pixelsearch 1 Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
pixelsearch Posted January 27, 2021 Share Posted January 27, 2021 Ok argumentum, I'll let you know when this working patch is ready and fully tested. It will take some time as I got, starting tomorrow, some tax return to prepare. Bravo for your script in your last comment, which pulled the data and created the arrays, nicely done argumentum 1 Link to comment Share on other sites More sharing options...
sarawt Posted February 6, 2021 Share Posted February 6, 2021 thanks Link to comment Share on other sites More sharing options...
pixelsearch Posted February 28, 2021 Share Posted February 28, 2021 @argumentum : here is the working patch to display the control styles and ex_styles names corresponding to MS classes. To make it easier for you, I'll indicate the line numbers (from bottom to top) to change in your file CV.au3, version 0.2020.3.13 dated March 14, 2020 * Line 2963 : _SetData($Input[8], _GetStyleString($Data, 1, 1)) to be replaced with : _SetData($Input[8], _GetStyleString($Data, 1)) ; GUI extended styles names * Line 2954 : _SetData($Input[6], _GetStyleString($Data)) to be replaced with : _SetData($Input[6], _GetStyleString($Data, 0)) ; GUI styles names * Line 2879 : _SetData($Input[24], _GetStyleString($Data, 0, 1)) to be replaced with : Local $Data2 = 0 If GUICtrlRead($Input[16]) = "SysListView32" Then $Data2 = _GUICtrlListView_GetExtendedListViewStyle($hWnd) _SetData($Input[24], _GetCtrlStyleString($Data, 1, "Ex_" & GUICtrlRead($Input[16]), $Data2)) ; Control extended styles names * Line 2870 : _SetData($Input[22], _GetStyleString($Data, 0, 0)) to be replaced with : _SetData($Input[22], _GetCtrlStyleString($Data, 0, GUICtrlRead($Input[16]))) ; Control styles names * Lines 1747 -> 1768 Func _GetStyleString($iStyle, $fDialog = 1, $fExStyle = 0) to be replaced with 3 functions (code in 1st spoiler below) Func _GetStyleString($iStyle, $fExStyle) Func _GetCtrlStyleString($iStyle, $fExStyle, $sClass, $iLVExStyle = 0) Func _GetCtrlStyleString2(ByRef $iStyle, ByRef $Text, $sClass, $iLVExStyle = 0) Spoiler expandcollapse popup;===================================================================== Func _GetStyleString($iStyle, $fExStyle) Local $Text = '', $Data = $fExStyle ? $Style_GuiExtended : $Style_Gui For $i = 0 To UBound($Data) - 1 If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) If StringLeft($Data[$i][1], 1) <> "!" Then $Text &= $Data[$i][1] & ', ' Else ; ex. '! WS_MINIMIZEBOX ! WS_GROUP' => 'WS_MINIMIZEBOX, ' $Text &= StringMid($Data[$i][1], 3, StringInStr($Data[$i][1], "!", 2, 2) -4) & ', ' EndIf EndIf Next If $iStyle Then $Text = '0x' & Hex($iStyle, 8) & ', ' & $Text Return StringRegExpReplace($Text, ',\s\z', '') EndFunc ;==>_GetStyleString ;===================================================================== Func _GetCtrlStyleString($iStyle, $fExStyle, $sClass, $iLVExStyle = 0) If $sClass = "AutoIt v3 GUI" Or $sClass = "#32770" Or $sClass = "MDIClient" Then ; control = child GUI, dialog box (msgbox) etc... Return _GetStyleString($iStyle, 0) EndIf If StringLeft($sClass, 8) = "RichEdit" Then $sClass = "RichEdit" ; RichEdit, RichEdit20A, RichEdit20W, RichEdit50A, RichEdit50W Local $Text = '' _GetCtrlStyleString2($iStyle, $Text, $sClass, $iLVExStyle) ; 4th param. in case $sClass = "Ex_SysListView32" (special treatment) If $sClass = "ReBarWindow32" Or $sClass = "ToolbarWindow32" Or $sClass = "msctls_statusbar32" Then $sClass = "Common" ; "for rebar controls, toolbar controls, and status windows" (msdn) _GetCtrlStyleString2($iStyle, $Text, $sClass) ElseIf $sClass = "RichEdit" Then $sClass = "Edit" ; "Richedit controls also support many edit control styles (not all)" (msdn) _GetCtrlStyleString2($iStyle, $Text, $sClass) EndIf Local $Data = $fExStyle ? $Style_GuiExtended : $Style_Gui For $i = 0 To UBound($Data) - 1 If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then If (Not BitAND($Data[$i][0], 0xFFFF)) Or ($fExStyle) Then $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) If StringLeft($Data[$i][1], 1) <> "!" Then $Text &= $Data[$i][1] & ', ' Else ; ex. '! WS_MINIMIZEBOX ! WS_GROUP' => 'WS_GROUP, ' $Text &= StringMid($Data[$i][1], StringInStr($Data[$i][1], "!", 2, 2) + 2) & ', ' EndIf EndIf EndIf Next If $iStyle Then $Text = '0x' & Hex($iStyle, 8) & ', ' & $Text Return StringRegExpReplace($Text, ',\s\z', '') EndFunc ;==>_GetCtrlStyleString ;===================================================================== Func _GetCtrlStyleString2(ByRef $iStyle, ByRef $Text, $sClass, $iLVExStyle = 0) Local $Data Switch $sClass ; $Input[16] Case "Button" $Data = $Style_Button Case "ComboBox", "ComboBoxEx32" $Data = $Style_Combo Case "Common" $Data = $Style_Common ; "for rebar controls, toolbar controls, and status windows (msdn)" Case "Edit" $Data = $Style_Edit Case "ListBox" $Data = $Style_ListBox Case "msctls_progress32" $Data = $Style_Progress Case "msctls_statusbar32" $Data = $Style_StatusBar Case "msctls_trackbar32" $Data = $Style_Slider Case "msctls_updown32" $Data = $Style_UpDown Case "ReBarWindow32" $Data = $Style_Rebar Case "RichEdit" $Data = $Style_RichEdit Case "Scrollbar" $Data = $Style_Scrollbar Case "Static" $Data = $Style_Static Case "SysAnimate32" $Data = $Style_Avi Case "SysDateTimePick32" $Data = $Style_DateTime Case "SysHeader32" $Data = $Style_Header Case "SysListView32" $Data = $Style_ListView Case "Ex_SysListView32" ; special treatment below $Data = $Style_ListViewExtended Case "SysMonthCal32" $Data = $Style_MonthCal Case "SysPager" $Data = $Style_Pager Case "SysTabControl32", "SciTeTabCtrl" $Data = $Style_Tab Case "SysTreeView32" $Data = $Style_TreeView Case "ToolbarWindow32" $Data = $Style_Toolbar Case Else Return EndSwitch If $sClass <> "Ex_SysListView32" Then For $i = 0 To UBound($Data) - 1 If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) $Text = $Data[$i][1] & ', ' & $Text EndIf Next Else For $i = 0 To UBound($Data) - 1 If BitAND($iLVExStyle, $Data[$i][0]) = $Data[$i][0] Then $iLVExStyle = BitAND($iLVExStyle, BitNOT($Data[$i][0])) $Text = $Data[$i][1] & ', ' & $Text If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then $iStyle = BitAND($iStyle, BitNOT($Data[$i][0])) EndIf EndIf Next If $iLVExStyle Then $Text = 'LVex: 0x' & Hex($iLVExStyle, 8) & ', ' & $Text ; next test bc LVS_EX_FULLROWSELECT (default AutoIt LV ext style) and WS_EX_TRANSPARENT got both same value 0x20 (hard to solve in some cases) If BitAND($iStyle, $WS_EX_TRANSPARENT) = $WS_EX_TRANSPARENT Then ; note that $WS_EX_TRANSPARENT has nothing to do with listview $iStyle = BitAND($iStyle, BitNOT($WS_EX_TRANSPARENT)) EndIf EndIf EndFunc ;==>_GetCtrlStyleString2 * Lines 217 -> 271 : to be suppressedGlobal Const $Style[31][2] = _ ... Global Const $ExStyle[21][2] = _ ... * Line 194 : to be added #include <UDFs\GUIStyles.inc.au3> * Content of preceding include file in 2nd spoiler below : Spoiler expandcollapse popup#include-once Global Const $Style_Gui[32][2] = _ [[0x80000000, 'WS_POPUP'], _ [0x40000000, 'WS_CHILD'], _ [0x20000000, 'WS_MINIMIZE'], _ [0x10000000, 'WS_VISIBLE'], _ [0x08000000, 'WS_DISABLED'], _ [0x04000000, 'WS_CLIPSIBLINGS'], _ [0x02000000, 'WS_CLIPCHILDREN'], _ [0x01000000, 'WS_MAXIMIZE'], _ [0x00CF0000, 'WS_OVERLAPPEDWINDOW'], _ ; (WS_CAPTION | WS_SYSMENU | WS_SIZEBOX | WS_MINIMIZEBOX | WS_MAXIMIZEBOX) aka 'WS_TILEDWINDOW' [0x00C00000, 'WS_CAPTION'], _ ; (WS_BORDER | WS_DLGFRAME) [0x00800000, 'WS_BORDER'], _ [0x00400000, 'WS_DLGFRAME'], _ [0x00200000, 'WS_VSCROLL'], _ [0x00100000, 'WS_HSCROLL'], _ [0x00080000, 'WS_SYSMENU'], _ [0x00040000, 'WS_SIZEBOX'], _ [0x00020000, '! WS_MINIMIZEBOX ! WS_GROUP'], _ ; ! GUI ! Control [0x00010000, '! WS_MAXIMIZEBOX ! WS_TABSTOP'], _ ; ! GUI ! Control [0x00002000, 'DS_CONTEXTHELP'], _ [0x00001000, 'DS_CENTERMOUSE'], _ [0x00000800, 'DS_CENTER'], _ [0x00000400, 'DS_CONTROL'], _ [0x00000200, 'DS_SETFOREGROUND'], _ [0x00000100, 'DS_NOIDLEMSG'], _ [0x00000080, 'DS_MODALFRAME'], _ [0x00000040, 'DS_SETFONT'], _ [0x00000020, 'DS_LOCALEDIT'], _ [0x00000010, 'DS_NOFAILCREATE'], _ [0x00000008, 'DS_FIXEDSYS'], _ [0x00000004, 'DS_3DLOOK'], _ [0x00000002, 'DS_SYSMODAL'], _ [0x00000001, 'DS_ABSALIGN']] ; ; [0x80880000, 'WS_POPUPWINDOW'] ; [0x20000000, 'WS_ICONIC'] ; [0x00040000, 'WS_THICKFRAME'] ; ; [0x00000000, 'WS_OVERLAPPED'] ; also named 'WS_TILED' Global Const $Style_GuiExtended[21][2] = _ [[0x08000000, 'WS_EX_NOACTIVATE'], _ [0x02000000, 'WS_EX_COMPOSITED'], _ [0x00400000, 'WS_EX_LAYOUTRTL'], _ [0x00100000, '! WS_EX_NOINHERITLAYOUT ! GUI_WS_EX_PARENTDRAG'], _ ; ! GUI ! Control (label or pic, AutoIt "draggable" feature on 2 controls) [0x00080000, 'WS_EX_LAYERED'], _ [0x00040000, 'WS_EX_APPWINDOW'], _ [0x00020000, 'WS_EX_STATICEDGE'], _ [0x00010000, 'WS_EX_CONTROLPARENT'], _ ; AutoIt adds a "draggable" feature to this GUI extended style behavior [0x00004000, 'WS_EX_LEFTSCROLLBAR'], _ [0x00002000, 'WS_EX_RTLREADING'], _ [0x00001000, 'WS_EX_RIGHT'], _ [0x00000400, 'WS_EX_CONTEXTHELP'], _ [0x00000200, 'WS_EX_CLIENTEDGE'], _ [0x00000100, 'WS_EX_WINDOWEDGE'], _ [0x00000080, 'WS_EX_TOOLWINDOW'], _ [0x00000040, 'WS_EX_MDICHILD'], _ [0x00000020, 'WS_EX_TRANSPARENT'], _ [0x00000010, 'WS_EX_ACCEPTFILES'], _ [0x00000008, 'WS_EX_TOPMOST'], _ [0x00000004, 'WS_EX_NOPARENTNOTIFY'], _ [0x00000001, 'WS_EX_DLGMODALFRAME']] ; ; [0x00000300, 'WS_EX_OVERLAPPEDWINDOW'] ; [0x00000188, 'WS_EX_PALETTEWINDOW'] ; ; [0x00000000, 'WS_EX_LEFT'] ; [0x00000000, 'WS_EX_LTRREADING'] ; [0x00000000, 'WS_EX_RIGHTSCROLLBAR'] Global Const $Style_Avi[5][2] = _ [[0x0010, 'ACS_NONTRANSPARENT'], _ [0x0008, 'ACS_TIMER'], _ [0x0004, 'ACS_AUTOPLAY'], _ [0x0002, 'ACS_TRANSPARENT'], _ [0x0001, 'ACS_CENTER']] Global Const $Style_Button[20][2] = _ [[0x8000, 'BS_FLAT'], _ [0x4000, 'BS_NOTIFY'], _ [0x2000, 'BS_MULTILINE'], _ [0x1000, 'BS_PUSHLIKE'], _ [0x0C00, 'BS_VCENTER'], _ [0x0800, 'BS_BOTTOM'], _ [0x0400, 'BS_TOP'], _ [0x0300, 'BS_CENTER'], _ [0x0200, 'BS_RIGHT'], _ [0x0100, 'BS_LEFT'], _ [0x0080, 'BS_BITMAP'], _ [0x0040, 'BS_ICON'], _ [0x0020, 'BS_RIGHTBUTTON'], _ [0x0009, 'BS_AUTORADIOBUTTON'] , _ [0x0007, 'BS_GROUPBOX'], _ [0x0006, 'BS_AUTO3STATE'], _ [0x0005, 'BS_3STATE'], _ [0x0003, 'BS_AUTOCHECKBOX'], _ [0x0002, 'BS_CHECKBOX'], _ [0x0001, 'BS_DEFPUSHBUTTON']] Global Const $Style_Combo[13][2] = _ [[0x4000, 'CBS_LOWERCASE'], _ [0x2000, 'CBS_UPPERCASE'], _ [0x0800, 'CBS_DISABLENOSCROLL'], _ [0x0400, 'CBS_NOINTEGRALHEIGHT'], _ [0x0200, 'CBS_HASSTRINGS'], _ [0x0100, 'CBS_SORT'], _ [0x0080, 'CBS_OEMCONVERT'], _ [0x0040, 'CBS_AUTOHSCROLL'], _ [0x0020, 'CBS_OWNERDRAWVARIABLE'], _ [0x0010, 'CBS_OWNERDRAWFIXED'], _ [0x0003, 'CBS_DROPDOWNLIST'], _ [0x0002, 'CBS_DROPDOWN'], _ [0x0001, 'CBS_SIMPLE']] Global Const $Style_Common[12][2] = _ ; "for rebar controls, toolbar controls, and status windows (msdn)" [[0x0083, 'CCS_RIGHT'], _ [0x0082, 'CCS_NOMOVEX'], _ [0x0081, 'CCS_LEFT'], _ [0x0080, 'CCS_VERT'], _ [0x0040, 'CCS_NODIVIDER'], _ [0x0020, 'CCS_ADJUSTABLE'], _ [0x0010, 'CCS_NOHILITE'], _ [0x0008, 'CCS_NOPARENTALIGN'], _ [0x0004, 'CCS_NORESIZE'], _ [0x0003, 'CCS_BOTTOM'], _ [0x0002, 'CCS_NOMOVEY'], _ [0x0001, 'CCS_TOP']] Global Const $Style_DateTime[7][2] = _ [[0x0020, 'DTS_RIGHTALIGN'], _ [0x0010, 'DTS_APPCANPARSE'], _ [0x000C, 'DTS_SHORTDATECENTURYFORMAT'], _ [0x0009, 'DTS_TIMEFORMAT'], _ [0x0004, 'DTS_LONGDATEFORMAT'], _ [0x0002, 'DTS_SHOWNONE'], _ [0x0001, 'DTS_UPDOWN']] ; ; [0x0000, 'DTS_SHORTDATEFORMAT'] Global Const $Style_Edit[13][2] = _ [[0x2000, 'ES_NUMBER'], _ [0x1000, 'ES_WANTRETURN'], _ [0x0800, 'ES_READONLY'], _ [0x0400, 'ES_OEMCONVERT'], _ [0x0100, 'ES_NOHIDESEL'], _ [0x0080, 'ES_AUTOHSCROLL'], _ [0x0040, 'ES_AUTOVSCROLL'], _ [0x0020, 'ES_PASSWORD'], _ [0x0010, 'ES_LOWERCASE'], _ [0x0008, 'ES_UPPERCASE'], _ [0x0004, 'ES_MULTILINE'], _ [0x0002, 'ES_RIGHT'], _ [0x0001, 'ES_CENTER']] Global Const $Style_Header[10][2] = _ [[0x1000, 'HDS_OVERFLOW'], _ [0x0800, 'HDS_NOSIZING'], _ [0x0400, 'HDS_CHECKBOXES'], _ [0x0200, 'HDS_FLAT'], _ [0x0100, 'HDS_FILTERBAR'], _ [0x0080, 'HDS_FULLDRAG'], _ [0x0040, 'HDS_DRAGDROP'], _ [0x0008, 'HDS_HIDDEN'], _ [0x0004, 'HDS_HOTTRACK'], _ [0x0002, 'HDS_BUTTONS']] ; ; [0x0000, '$HDS_HORZ'] Global Const $Style_ListBox[16][2] = _ [[0x8000, 'LBS_COMBOBOX'], _ [0x4000, 'LBS_NOSEL'], _ [0x2000, 'LBS_NODATA'], _ [0x1000, 'LBS_DISABLENOSCROLL'], _ [0x0800, 'LBS_EXTENDEDSEL'], _ [0x0400, 'LBS_WANTKEYBOARDINPUT'], _ [0x0200, 'LBS_MULTICOLUMN'], _ [0x0100, 'LBS_NOINTEGRALHEIGHT'], _ [0x0080, 'LBS_USETABSTOPS'], _ [0x0040, 'LBS_HASSTRINGS'], _ [0x0020, 'LBS_OWNERDRAWVARIABLE'], _ [0x0010, 'LBS_OWNERDRAWFIXED'], _ [0x0008, 'LBS_MULTIPLESEL'], _ [0x0004, 'LBS_NOREDRAW'], _ [0x0002, 'LBS_SORT'], _ [0x0001, 'LBS_NOTIFY']] ; ; [0xA00003, 'LBS_STANDARD'] ; i.e. (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) help file correct, ListBoxConstants.au3 incorrect Global Const $Style_ListView[17][2] = _ [[0x8000, 'LVS_NOSORTHEADER'], _ [0x4000, 'LVS_NOCOLUMNHEADER'], _ [0x2000, 'LVS_NOSCROLL'], _ [0x1000, 'LVS_OWNERDATA'], _ [0x0800, 'LVS_ALIGNLEFT'], _ [0x0400, 'LVS_OWNERDRAWFIXED'], _ [0x0200, 'LVS_EDITLABELS'], _ [0x0100, 'LVS_AUTOARRANGE'], _ [0x0080, 'LVS_NOLABELWRAP'], _ [0x0040, 'LVS_SHAREIMAGELISTS'], _ [0x0020, 'LVS_SORTDESCENDING'], _ [0x0010, 'LVS_SORTASCENDING'], _ [0x0008, 'LVS_SHOWSELALWAYS'], _ [0x0004, 'LVS_SINGLESEL'], _ [0x0003, 'LVS_LIST'], _ [0x0002, 'LVS_SMALLICON'], _ [0x0001, 'LVS_REPORT']] ; ; [0x0000, 'LVS_ICON'] ; [0x0000, 'LVS_ALIGNTOP'] Global Const $Style_ListViewExtended[20][2] = _ [[0x00100000, 'LVS_EX_SIMPLESELECT'], _ [0x00080000, 'LVS_EX_SNAPTOGRID'], _ [0x00020000, 'LVS_EX_HIDELABELS'], _ [0x00010000, 'LVS_EX_DOUBLEBUFFER'], _ [0x00008000, 'LVS_EX_BORDERSELECT'], _ [0x00004000, 'LVS_EX_LABELTIP'], _ [0x00002000, 'LVS_EX_MULTIWORKAREAS'], _ [0x00001000, 'LVS_EX_UNDERLINECOLD'], _ [0x00000800, 'LVS_EX_UNDERLINEHOT'], _ [0x00000400, 'LVS_EX_INFOTIP'], _ [0x00000200, 'LVS_EX_REGIONAL'], _ [0x00000100, 'LVS_EX_FLATSB'], _ [0x00000080, 'LVS_EX_TWOCLICKACTIVATE'], _ [0x00000040, 'LVS_EX_ONECLICKACTIVATE'], _ [0x00000020, 'LVS_EX_FULLROWSELECT'], _ [0x00000010, 'LVS_EX_HEADERDRAGDROP'], _ [0x00000008, 'LVS_EX_TRACKSELECT'], _ [0x00000004, 'LVS_EX_CHECKBOXES'], _ [0x00000002, 'LVS_EX_SUBITEMIMAGES'], _ [0x00000001, 'LVS_EX_GRIDLINES']] Global Const $Style_MonthCal[8][2] = _ [[0x0100, 'MCS_NOSELCHANGEONNAV'], _ [0x0080, 'MCS_SHORTDAYSOFWEEK'], _ [0x0040, 'MCS_NOTRAILINGDATES'], _ [0x0010, 'MCS_NOTODAY'], _ [0x0008, 'MCS_NOTODAYCIRCLE'], _ [0x0004, 'MCS_WEEKNUMBERS'], _ [0x0002, 'MCS_MULTISELECT'], _ [0x0001, 'MCS_DAYSTATE']] Global Const $Style_Pager[3][2] = _ [[0x0004, 'PGS_DRAGNDROP'], _ [0x0002, 'PGS_AUTOSCROLL'], _ [0x0001, 'PGS_HORZ']] ; ; [0x0000, 'PGS_VERT'] Global Const $Style_Progress[4][2] = _ [[0x0010, 'PBS_SMOOTHREVERSE'], _ [0x0008, 'PBS_MARQUEE'], _ [0x0004, 'PBS_VERTICAL'], _ [0x0001, 'PBS_SMOOTH']] Global Const $Style_Rebar[8][2] = _ [[0x8000, 'RBS_DBLCLKTOGGLE'], _ [0x4000, 'RBS_VERTICALGRIPPER'], _ [0x2000, 'RBS_AUTOSIZE'], _ [0x1000, 'RBS_REGISTERDROP'], _ [0x0800, 'RBS_FIXEDORDER'], _ [0x0400, 'RBS_BANDBORDERS'], _ [0x0200, 'RBS_VARHEIGHT'], _ [0x0100, 'RBS_TOOLTIPS']] Global Const $Style_RichEdit[8][2] = _ ; will also use plenty (not all) of Edit styles [[0x01000000, 'ES_SELECTIONBAR'], _ [0x00400000, 'ES_VERTICAL'], _ ; Asian-language support only (msdn) [0x00080000, 'ES_NOIME'], _ ; ditto [0x00040000, 'ES_SELFIME'], _ ; ditto [0x00008000, 'ES_SAVESEL'], _ [0x00004000, 'ES_SUNKEN'], _ [0x00002000, 'ES_DISABLENOSCROLL'], _ ; same value as 'ES_NUMBER' => issue ? [0x00000008, 'ES_NOOLEDRAGDROP']] ; same value as 'ES_UPPERCASE' but RichRdit controls do not support 'ES_UPPERCASE' style (msdn) Global Const $Style_Scrollbar[5][2] = _ [[0x0010, 'SBS_SIZEGRIP'], _ [0x0008, 'SBS_SIZEBOX'], _ [0x0004, 'SBS_RIGHTALIGN or SBS_BOTTOMALIGN'], _ ; i.e. use SBS_RIGHTALIGN with SBS_VERT, use SBS_BOTTOMALIGN with SBS_HORZ (msdn) [0x0002, 'SBS_LEFTALIGN or SBS_TOPALIGN'], _ ; i.e. use SBS_LEFTALIGN with SBS_VERT, use SBS_TOPALIGN with SBS_HORZ (msdn) [0x0001, 'SBS_VERT']] ; ; [0x0000, 'SBS_HORZ'] Global Const $Style_Slider[13][2] = _ ; i.e. trackbar [[0x1000, 'TBS_TRANSPARENTBKGND'], _ [0x0800, 'TBS_NOTIFYBEFOREMOVE'], _ [0x0400, 'TBS_DOWNISLEFT'], _ [0x0200, 'TBS_REVERSED'], _ [0x0100, 'TBS_TOOLTIPS'], _ [0x0080, 'TBS_NOTHUMB'], _ [0x0040, 'TBS_FIXEDLENGTH'], _ [0x0020, 'TBS_ENABLESELRANGE'], _ [0x0010, 'TBS_NOTICKS'], _ [0x0008, 'TBS_BOTH'], _ [0x0004, 'TBS_LEFT or TBS_TOP'], _ ; i.e. TBS_LEFT tick marks when vertical slider, or TBS_TOP tick marks when horizontal slider [0x0002, 'TBS_VERT'], _ [0x0001, 'TBS_AUTOTICKS']] ; ; [0x0000, 'TBS_RIGHT'] ; [0x0000, 'TBS_BOTTOM'] ; [0x0000, 'TBS_HORZ'] Global Const $Style_Static[18][2] = _ [[0x1000, 'SS_SUNKEN'], _ [0x0400, 'SS_RIGHTJUST'], _ [0x0200, 'SS_CENTERIMAGE'], _ [0x0100, 'SS_NOTIFY'], _ [0x0080, 'SS_NOPREFIX'], _ [0x0012, 'SS_ETCHEDFRAME'], _ [0x0011, 'SS_ETCHEDVERT'], _ [0x0010, 'SS_ETCHEDHORZ'], _ [0x000C, 'SS_LEFTNOWORDWRAP'], _ [0x000B, 'SS_SIMPLE'], _ [0x0009, 'SS_WHITEFRAME'], _ [0x0008, 'SS_GRAYFRAME'], _ [0x0007, 'SS_BLACKFRAME'], _ [0x0006, 'SS_WHITERECT'], _ [0x0005, 'SS_GRAYRECT'], _ [0x0004, 'SS_BLACKRECT'], _ [0x0002, 'SS_RIGHT'], _ [0x0001, 'SS_CENTER']] ; ; [0x0000, 'SS_LEFT'] Global Const $Style_StatusBar[2][2] = _ [[0x0800, 'SBARS_TOOLTIPS'], _ [0x0100, 'SBARS_SIZEGRIP']] ; ; [0x0800, 'SBT_TOOLTIPS'] Global Const $Style_Tab[17][2] = _ [[0x8000, 'TCS_FOCUSNEVER'], _ [0x4000, 'TCS_TOOLTIPS'], _ [0x2000, 'TCS_OWNERDRAWFIXED'], _ [0x1000, 'TCS_FOCUSONBUTTONDOWN'], _ [0x0800, 'TCS_RAGGEDRIGHT'], _ [0x0400, 'TCS_FIXEDWIDTH'], _ [0x0200, 'TCS_MULTILINE'], _ [0x0100, 'TCS_BUTTONS'], _ [0x0080, 'TCS_VERTICAL'], _ [0x0040, 'TCS_HOTTRACK'], _ [0x0020, 'TCS_FORCELABELLEFT'], _ [0x0010, 'TCS_FORCEICONLEFT'], _ [0x0008, 'TCS_FLATBUTTONS'], _ [0x0004, 'TCS_MULTISELECT'], _ [0x0002, 'TCS_RIGHT'], _ [0x0002, 'TCS_BOTTOM'], _ [0x0001, 'TCS_SCROLLOPPOSITE']] ; ; [0x0000, 'TCS_TABS'] ; [0x0000, 'TCS_SINGLELINE'] ; [0x0000, 'TCS_RIGHTJUSTIFY'] Global Const $Style_Toolbar[8][2] = _ [[0x8000, 'TBSTYLE_TRANSPARENT'], _ [0x4000, 'TBSTYLE_REGISTERDROP'], _ [0x2000, 'TBSTYLE_CUSTOMERASE'], _ [0x1000, 'TBSTYLE_LIST'], _ [0x0800, 'TBSTYLE_FLAT'], _ [0x0400, 'TBSTYLE_ALTDRAG'], _ [0x0200, 'TBSTYLE_WRAPABLE'], _ [0x0100, 'TBSTYLE_TOOLTIPS']] Global Const $Style_TreeView[16][2] = _ [[0x8000, 'TVS_NOHSCROLL'], _ [0x4000, 'TVS_NONEVENHEIGHT'], _ [0x2000, 'TVS_NOSCROLL'], _ [0x1000, 'TVS_FULLROWSELECT'], _ [0x0800, 'TVS_INFOTIP'], _ [0x0400, 'TVS_SINGLEEXPAND'], _ [0x0200, 'TVS_TRACKSELECT'], _ [0x0100, 'TVS_CHECKBOXES'], _ [0x0080, 'TVS_NOTOOLTIPS'], _ [0x0040, 'TVS_RTLREADING'], _ [0x0020, 'TVS_SHOWSELALWAYS'], _ [0x0010, 'TVS_DISABLEDRAGDROP'], _ [0x0008, 'TVS_EDITLABELS'], _ [0x0004, 'TVS_LINESATROOT'], _ [0x0002, 'TVS_HASLINES'], _ [0x0001, 'TVS_HASBUTTONS']] Global Const $Style_UpDown[9][2] = _ [[0x0100, 'UDS_HOTTRACK'], _ [0x0080, 'UDS_NOTHOUSANDS'], _ [0x0040, 'UDS_HORZ'], _ [0x0020, 'UDS_ARROWKEYS'], _ [0x0010, 'UDS_AUTOBUDDY'], _ [0x0008, 'UDS_ALIGNLEFT'], _ [0x0004, 'UDS_ALIGNRIGHT'], _ [0x0002, 'UDS_SETBUDDYINT'], _ [0x0001, 'UDS_WRAP']] Please let me know if everything went correctly Link to comment Share on other sites More sharing options...
argumentum Posted February 28, 2021 Share Posted February 28, 2021 ok!, i'll look at it tomorrow Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
argumentum Posted February 28, 2021 Share Posted February 28, 2021 (edited) What's New in Version 0.2021.02.28 fixed: GUI styles constants by @pixelsearch. compiled script on 3.3.15.3-beta Files download are in the files section. Edited February 28, 2021 by argumentum =P Professor_Bernd and pixelsearch 2 Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. 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