-
Posts
6,081 -
Joined
-
Days Won
213
argumentum last won the day on June 22
argumentum had the most liked content!
About argumentum

Profile Information
-
Member Title
✨Universalist ✨
-
Location
I'm in your browser now =)
-
WWW
https://www.youtube.com/watch?v=SjwX-zMRxO0&t=5s
-
Interests
Relax
Recent Profile Visitors
15,888 profile views
argumentum's Achievements
-
argumentum reacted to a post in a topic:
UC_Framework - Universal Controls
-
argumentum reacted to a post in a topic:
WMCDIPC ( x32/x64, user/admin, self triggering, slow WM_COPYDATA IPC )
-
mLipok reacted to a post in a topic:
RegExp question
-
argumentum reacted to a post in a topic:
RegExp question
-
..I don't know RegEx but if the answer is good, then is a good answer 👍
-
funkey reacted to a post in a topic:
_GUIRegisterMsgTell() - A wrapper UDF for GUIRegisterMsg
-
_GUIRegisterMsgTell() - A wrapper UDF for GUIRegisterMsg
argumentum replied to argumentum's topic in AutoIt Example Scripts
..ok. An example you can run. We'll need a UDF. Ok, here we have one for sliders: #include-once ; #include <_ScrollUDF_WM_SCROLL.au3> #include <_GUIRegisterMsgTell.au3> ; https://www.autoitscript.com/forum/topic/213746-_guiregistermsgtell-a-wrapper-udf-for-guiregistermsg/ #include <WinAPISysWin.au3> #include <WinAPIDlg.au3> #include <SendMessage.au3> #include <WindowsNotifsConstants.au3> #include <GUIConstantsEx.au3> _GUIRegisterMsgTell($WM_HSCROLL, _ScrollUDF_WM_SCROLL) _GUIRegisterMsgTell($WM_VSCROLL, _ScrollUDF_WM_SCROLL) ; GUIRegisterMsg($WM_HSCROLL, _ScrollUDF_WM_SCROLL) ; ..could just use it without the wrapper ( _GUIRegisterMsgTell.au3 ) ; but this is in great part, a demo for the wrapper. ; Either way is a nice "add-on" if you use any slider(s) in your GUI with just an include ;) ; #FUNCTION# ==================================================================================================================== ; Name...........: _ScrollUDF_WM_SCROLL ; Description ...: Intercepts slider (trackbar) scroll events and translates them into standard WM_COMMAND click notifications. ; This allows native AutoIt GUI loops to register real-time slider updates continuously while dragging. ; Syntax.........: _ScrollUDF_WM_SCROLL($hWnd, $iMsg, $wParam, $lParam) ; Parameters ....: $hWnd - The window handle of the GUI. ; $iMsg - The Windows message ID (typically $WM_HSCROLL or $WM_VSCROLL). ; $wParam - The scroll request and current position (Not used internally). ; $lParam - The handle of the control sending the scroll message. ; Return values .: Always returns $GUI_RUNDEFMSG to allow default Windows processing of the scroll event to continue. ; Author ........: argumentum ( blame me ) ; Related .......: GUIRegisterMsg, GUICtrlCreateSlider ; Examples ......: GUIRegisterMsg($WM_HSCROLL, "_ScrollUDF_WM_SCROLL") ; GUIRegisterMsg($WM_VSCROLL, "_ScrollUDF_WM_SCROLL") ; =============================================================================================================================== Func _ScrollUDF_WM_SCROLL($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam ; drop this in all your GUIs using : GUICtrlCreateSlider() If _WinAPI_GetClassName($lParam) = "msctls_trackbar32" Then ; get class matching slider Local $idCtrl = _WinAPI_GetDlgCtrlID($lParam) ; get AutoIt Control ID If $idCtrl > 0 Then _SendMessage($hWnd, $WM_COMMAND, $idCtrl, $lParam) EndIf ; send a click notification: $idCtrl + ($STN_CLICKED = 0) Return $GUI_RUNDEFMSG EndFunc ;==>_ScrollUDF_WM_SCROLL and the example that uses it: #include <_GUIRegisterMsgTell.au3> #include <_ScrollUDF_WM_SCROLL.au3> ; try with out this UDF to see what it does #include <WindowsNotifsConstants.au3> #include <GUIConstantsEx.au3> #include <SliderConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <WinAPISysWin.au3> Global $g_aShowMe[7] Exit Example() Func Example() Local $iFormW = 400, $iFormH = 120 #Region ### START Koda GUI section ### Form= Local $sSliderName, $Form1 = GUICreate("Form1", $iFormW, $iFormH) GUISetBkColor(0xAABBCC) $g_aShowMe[0] = GUICtrlCreateLabel("Label1", 5, 5, $iFormW - 10, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_STATICEDGE) $g_aShowMe[1] = GUICtrlCreateSlider(5, 35, 30, $iFormH - 45, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_VERT)) $g_aShowMe[2] = GUICtrlCreateSlider(40, 35, $iFormW - 90, 30) $g_aShowMe[3] = GUICtrlCreateSlider(40, $iFormH - 45, $iFormW - 90, 35, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_TOP, $TBS_LEFT)) $g_aShowMe[4] = GUICtrlCreateSlider($iFormW - 45, 35, 35, $iFormH - 45, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_VERT, $TBS_TOP, $TBS_LEFT)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### _GUIRegisterMsgTell_Dump() _GUIRegisterMsgTell($WM_HSCROLL, _ShowMe_WM_SCROLL) _GUIRegisterMsgTell($WM_VSCROLL, _ShowMe_WM_SCROLL) _GUIRegisterMsgTell_Dump() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete() Exit Case $g_aShowMe[1], $g_aShowMe[2], $g_aShowMe[3], $g_aShowMe[4] Switch $g_aShowMe[5] Case $g_aShowMe[1] $sSliderName = "LEFT" Case $g_aShowMe[2] $sSliderName = "TOP" Case $g_aShowMe[3] $sSliderName = "BOTTOM" Case $g_aShowMe[4] $sSliderName = "RIGHT" EndSwitch GUICtrlSetData($g_aShowMe[0], "Value of the slider on " & $sSliderName & _ " is " & GUICtrlRead($g_aShowMe[5]) & ($g_aShowMe[6] = "" ? "" : " ( via " & $g_aShowMe[6] & " )")) EndSwitch WEnd EndFunc ;==>Example Func _ShowMe_WM_SCROLL($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam $g_aShowMe[5] = _WinAPI_GetDlgCtrlID($lParam) ; get AutoIt Control ID ; --- Hand-off to the Previous Handler if any --- Local $sPrevFunc = _GUIRegisterMsgTell($iMsg, -2) $g_aShowMe[6] = $sPrevFunc If $sPrevFunc <> "" Then Return Call($sPrevFunc, $hWnd, $iMsg, $wParam, $lParam) Return $GUI_RUNDEFMSG EndFunc ;==>_ShowMe_WM_SCROLL ..that creates the above image. The UDF updates the state of the control no matter what changed it, while moving. The example adds the label. And there you have an example ( for the FAQ ) -
Control Viewer - AutoIt Window Info Tool
argumentum replied to Yashied's topic in AutoIt Example Scripts
if any of you have the time, make a group chat with @WildByDesign, @pixelsearch, @ioa747 ( and me ) and attend to it. That way we can keep it in this thread and not have many independent versions floating around. If later a user want to exit the chat, that user can just leave the conversation. This is a good way to not stagnate the tool because "the maintainer will not update it" -
Control Viewer - AutoIt Window Info Tool
argumentum replied to Yashied's topic in AutoIt Example Scripts
..am so far behind in all my coding chores, that I don't have time for CV at the moment 🥹 -
ok, I think this is better: <removed the code showing the idea> ..so that it'll run on the non running SciTE
-
..my bad: it works as expected running both sessions from explorer. I'll figure something out 🤷♂️
-
in "Version 5.5.6 Scintilla:5.5.6 Lexilla:5.4.4 Jun 5 2025 10:01:05" added: # scite_overlaytab - Initialize a startup flag to use in "PersonalTools.lua" sciteOverlaytab.startup.ran=0 to SciTEUser.properties then in "PersonalTools.lua" added: function PersonalTools:OnStartup() -- Run once per session "flag" from the "SciTEUser.properties" entry if props['sciteOverlaytab.startup.ran'] == '1' then return end props['sciteOverlaytab.startup.ran'] = '1' -- Paths go here local sciteDir = props['SciteDefaultHome'] local interpreter = sciteDir .. "\\..\\AutoIt3_x64.exe" local scriptFile = sciteDir .. "\\..\\Extras\\scite_overlaytab\\scite_overlaytab_v1.1.au3" -- FileExists() check local f1 = io.open(interpreter, "r") local f2 = io.open(scriptFile, "r") if f1 and f2 then f1:close() f2:close() -- Build the command to run: -- local cmd = [[start /b "" "]] .. interpreter .. [[" "]] .. scriptFile .. [[" "]] .. props['WindowID'] .. [["]] -- testing stuff :) local cmd = [[start /b "" "]] .. interpreter .. [[" "]] .. scriptFile .. [["]] -- Debug Print. Remove it if unneeded print("> DBG: Launching: " .. cmd) os.execute(cmd) else -- Clean up handles here, if only one file was found if f1 then f1:close() end if f2 then f2:close() end print("![ERROR] scite_overlaytab startup Failed: Check paths for AutoIt and/or the script (" .. interpreter .. ") (" .. scriptFile .. ")") end end But even running it from explorer, it's wrong 🤔 ..it applies to the 1st one instead of the 2nd one
-
..what about: ... Local $vDefSubclassProc = __WinAPI_DefSubclassProc($hWnd, $iMsg, $wParam, $lParam) If @error + @extended Then ConsoleWrite('@@(' & @ScriptLineNumber & ') : ! DefSubclassProc = ' & $vDefSubclassProc & ' (' & @error & ',' & @extended & ')' & @CRLF) Return SetError(@error, @extended, $vDefSubclassProc) Func _WinAPI_DefSubclassProc($hWnd, $iMsg, $wParam, $lParam) Local $aCall = DllCall('comctl32.dll', 'lresult', 'DefSubclassProc', 'hwnd', $hWnd, 'uint', $iMsg, 'wparam', $wParam, 'lparam', $lParam) ; If DllCall failed or not array, Return 0. If Not IsArray($aCall) Then Return SetError(10 + @error, (IsArray($aCall) ? 1000 + @extended: @extended), 0) ; @extended = 1000+ for debug Return $aCall[0] EndFunc ;==>_WinAPI_DefSubclassProc ...
-
..the Ctrl+Shift+6/7 don't work on the 2nd one 🥹
-
if we uncheck "Open Files Here" we can have more than one SciTE editor loaded and I use that when I have a client - server type of script. scite_overlaytab ( v1.1.1 ) as is works on the 1st one with all feature but not on the 2nd one. Any way around that 🙏
-
In v2.2.0 now the messages can be queued to... in my case ( and reason for the addition ), get a burst of data and deal with that data without slowing down the sender. The default is up to 100 messages in queue. If you need to store more, rethink the IPC ?
- 7 replies
-
- adlibregister
- funcname
-
(and 3 more)
Tagged with:
-
_GUIRegisterMsgTell() - A wrapper UDF for GUIRegisterMsg
argumentum replied to argumentum's topic in AutoIt Example Scripts
FAQ Q: will you ever make the FAQ ? A: ..well, yeah. I will !. ...pinky swear 🤙 Q: can you at least show a running example ? A: ok, I'll make one. You'll find it on the next post. -
Control Viewer - AutoIt Window Info Tool
argumentum replied to Yashied's topic in AutoIt Example Scripts
...and next week never came 😅 I'll upload this week month.