Jump to content

argumentum

MVPs
  • Posts

    6,081
  • Joined

  • Days Won

    213

argumentum last won the day on June 22

argumentum had the most liked content!

7 Followers

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

  1. ..I don't know RegEx but if the answer is good, then is a good answer 👍
  2. ..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 )
  3. 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"
  4. ..am so far behind in all my coding chores, that I don't have time for CV at the moment 🥹
  5. 🤪 ..found it: https://github.com/mlibre2/autoit-php-3des-crypto
  6. ok, I think this is better: <removed the code showing the idea> ..so that it'll run on the non running SciTE
  7. ..my bad: it works as expected running both sessions from explorer. I'll figure something out 🤷‍♂️
  8. 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
  9. ..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 ...
  10. ..the Ctrl+Shift+6/7 don't work on the 2nd one 🥹
  11. 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 🙏
  12. 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 ?
  13. 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.
  14. ...but if installed by "User mode" that needs the function I gave you in a prior post. ..and I ever seen network mode anything. It would be interesting test.
  15. ...and next week never came 😅 I'll upload this week month.
×
×
  • Create New...