Jump to content

mLipok

MVPs
  • Posts

    12,003
  • Joined

  • Last visited

  • Days Won

    68

mLipok last won the day on May 11

mLipok had the most liked content!

About mLipok

Profile Information

  • Member Title
    Sometimes... even usually I'm nitpicky.
  • Location
    Europe, Poland, Upper Silesia, Zabrze
  • Interests
    ¯\_(ツ)_/¯

Recent Profile Visitors

31,620 profile views

mLipok's Achievements

  1. btw. Last month, we had a cumulative total of 352 working hours across 1,227 connections. This translates to an average of 17 minutes per connection. That's approximately 61 connection per day, theoretically for four people, which translates to approximately 4:20 hours of connections per day per person. In practice, of these four people, at least one person is often away from the office, i.e. visits the client's office in person, on average every other day. The actual average number of calls per person per day is therefore higher. When you have a busy daily schedule, even renaming and regrouping contacts can cause problems, especially when it's usually the entire group that needs to be changed, not just a single contact or device on the list. Not to mention the ongoing reporting of work completed, especially across multiple systems. From this point of view, I finally decided to start working again on this UDF as it was worth my time.
  2. Do you maintain 200 servers? Do you maintain 2,000 stations? How do you keep notes about what you did during each session to document/account for the connection?
  3. I'm currently working with ChatGPT AI to improve this UDF, as a lot has changed and I haven't been able to get around to it for several years. And as it turns out, it's finally time to start using this UDF daily in my company.
  4. Using _GUICtrlEdit_Create() seems to help.
  5. I tried to use _GUICtrlEdit_SetCueBanner() on EDIT control unfortunately, HelpFile says: Can this be made to work? my repro script: #include <GUIConstantsEx.au3> #include <GuiEdit.au3> #include <MsgBoxConstants.au3> Example() Func Example() Local $hGUI = GUICreate('Example', 300, 150) GUISetFont(9, 400, 0, 'Segoe UI') Local $idInp_Username = GUICtrlCreateInput('', 10, 10, 125, 25) _GUICtrlEdit_SetCueBanner($idInp_Username, "Search folder") Local $idEdit_Password = GUICtrlCreateEdit('', 10, 40, 125, 25) _GUICtrlEdit_SetCueBanner($idEdit_Password, "Search...") Local $idButton_Close = GUICtrlCreateButton("Close", 210, 120, 85, 25) ControlFocus($hGUI, "", $idButton_Close) GUISetState(@SW_SHOW, $hGUI) MsgBox($MB_SYSTEMMODAL, "", _GUICtrlEdit_GetCueBanner($idEdit_Password)) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idButton_Close ExitLoop EndSwitch WEnd GUIDelete($hGUI) EndFunc ;==>Example
  6. I'm actually on vacation. Will check ASAP
  7. Perhaps a general note would be helpful. Something like: I was looking for an explanation in the help file that would describe how AutoIt interprets such lines. And all of this is due to an error I encountered today: https://www.autoitscript.com/trac/autoit/ticket/4105
  8. "Language Reference - Directives" doesn't mention about: #Region #EndRegion Why?
  9. I have such example: #include <Array.au3> _Example() Func _Example() Local $sTest = _ "1a" & @CRLF & _ "1b" & @CRLF & _ "2" & @CRLF & _ "1c" & @CRLF & _ "1d" & @CRLF & _ "2" & @CRLF & _ "1e" & @CRLF & _ "1f" & @CRLF & _ "1g" & @CRLF & _ "2" & @CRLF & _ "" Local $aResult = StringRegExp($sTest, '(?is)1.*?2', $STR_REGEXPARRAYGLOBALMATCH) ConsoleWrite(_ArrayToString($aResult, @CRLF & @CRLF & @CRLF) & @CRLF ) EndFunc ;==>_Example Could somebody be so nice and explain 2 things: Why the result is: 1a 1b 2 1c 1d 2 1e 1f 1g 2 I expected to get the following results. How to get: 1b 2 1d 2 1g 2 ?
  10. As so far no. I will write to them and ask them to check your's code, with my little mod: ;~ https://www.autoitscript.com/forum/topic/169256-txtextcontrol-problem-with-objcreate-class-not-registered/#findComment-1553232 #AutoIt3Wrapper_UseX64=N #include <MsgBoxConstants.au3> _Example() Func _Example() ;========================================================= ; TEST ;========================================================= Local $sKey = "LICENSE" Local $sLog = @ScriptDir & "\tx_debug.log" Local $oTX = _TXTextControl_Create($sKey, True, $sLog) If IsObj($oTX) Then MsgBox($MB_ICONINFORMATION, "TX Text Control", "OK - control initialized") ; SAFE ACCESS $oTX.Text = "Hello TX Text Control" GUICreate("Test TX Text", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2) GUICtrlCreateObj($oTX, 10, 40, 600, 360) GUISetState(@SW_SHOW) ;Show GUI $oTX.Text = "Hello TX Text Control" ;~ $oTX.AboutBox() ; Loop until the user exits. Local $iMsg While 1 $iMsg = GUIGetMsg() Select Case $iMsg = -3 ExitLoop EndSelect WEnd GUIDelete() Else MsgBox($MB_ICONERROR, "TX Text Control", "Initialization error") EndIf EndFunc ;==>_Example ;========================================================= ; MAIN FUNCTION ;========================================================= Func _TXTextControl_Create($sLicenseKey, $bDebug = True, $sLogFile = "") Local Const $CLSCTX_INPROC_SERVER = 1 Local Const $CLSID_TX = "{4424D201-9EB2-11F0-BB49-7085C299DB80}" Local Const $IID_IClassFactory2 = "{B196B28F-BAB4-101A-B69C-00AA00341D07}" Local Const $IID_IDispatch = "{00020400-0000-0000-C000-000000000046}" Local Const $tagIClassFactory = "CreateInstance hresult(ptr;clsid;ptr*);" & _ "LockServer hresult(bool);" Local Const $tagIClassFactory2 = $tagIClassFactory & "GetLicInfo hresult(struct*);RequestLicKey hresult(dword;bstr*);CreateInstanceLic hresult(ptr;ptr;clsid;bstr;object*);" __log(@ScriptLineNumber, "INIT COM", $bDebug, $sLogFile) DllCall("ole32.dll", "long", "CoInitialize", "ptr", 0) ;========================================================= ; CLSID / IID ;========================================================= Local $tCLSID = DllStructCreate("byte[16]") Local $pCLSID = DllStructGetPtr($tCLSID) Local $tIIDFactory = DllStructCreate("byte[16]") Local $tIIDDispatch = DllStructCreate("byte[16]") Local $aCLSID = DllCall("ole32.dll", "long", "CLSIDFromString", _ "wstr", $CLSID_TX, _ "ptr", $pCLSID) If @error Or $aCLSID[0] <> 0 Then __log(@ScriptLineNumber, "CLSIDFromString FAILED", $bDebug, $sLogFile) Return 0 EndIf DllCall("ole32.dll", "long", "IIDFromString", _ "wstr", $IID_IClassFactory2, _ "ptr", DllStructGetPtr($tIIDFactory)) DllCall("ole32.dll", "long", "IIDFromString", _ "wstr", $IID_IDispatch, _ "ptr", DllStructGetPtr($tIIDDispatch)) ;========================================================= ; MODE 1 - SAFE IClassFactory2 (NO CRASH) ;========================================================= __log(@ScriptLineNumber, "MODE 1: CreateInstanceLic (SAFE)", $bDebug, $sLogFile) Local $aFactory = DllCall("ole32.dll", "long", "CoGetClassObject", _ "ptr", $pCLSID, _ "dword", $CLSCTX_INPROC_SERVER, _ "ptr", 0, _ "ptr", DllStructGetPtr($tIIDFactory), _ "ptr*", 0) If @error Or $aFactory[0] <> 0 Then __log(@ScriptLineNumber, "MODE 1 FAIL: CoGetClassObject", $bDebug, $sLogFile) Else Local $pFactory = $aFactory[5] ; SAFE COM WRAP (NO VTABLE, NO DLLCALLADDRESS) Local $oFactory = ObjCreateInterface($pFactory, $IID_IClassFactory2, $tagIClassFactory2) If IsObj($oFactory) Then Local $oObj = Null Local $hResult = $oFactory.CreateInstanceLic(0, 0, $IID_IDispatch, $sLicenseKey, $oObj) #forceref $hResult If IsObj($oObj) Then __log(@ScriptLineNumber, "MODE 1 SUCCESS", $bDebug, $sLogFile) Return $oObj EndIf EndIf __log(@ScriptLineNumber, "MODE 1 FAILED: CreateInstanceLic", $bDebug, $sLogFile) EndIf ;========================================================= ; MODE 2 - License Manager ;========================================================= __log(@ScriptLineNumber, "MODE 2: LicManager", $bDebug, $sLogFile) Local $oLic = ObjCreate("TIS.TX.LicManager.34") If IsObj($oLic) Then __log(@ScriptLineNumber, "LicManager OK", $bDebug, $sLogFile) Else __log(@ScriptLineNumber, "LicManager FAIL", $bDebug, $sLogFile) EndIf ;========================================================= ; MODE 3 - Direct ActiveX ;========================================================= __log(@ScriptLineNumber, "MODE 3: Direct Create", $bDebug, $sLogFile) Local $oTX = ObjCreate("TIS.TX.TextControl.34") If IsObj($oTX) Then __log(@ScriptLineNumber, "MODE 3 SUCCESS", $bDebug, $sLogFile) $oTX.LicenseKey = $sLicenseKey Return $oTX EndIf __log(@ScriptLineNumber, "ALL MODES FAILED", $bDebug, $sLogFile) Return 0 EndFunc ;==>_TXTextControl_Create ;========================================================= ; LOGGER ;========================================================= Func __log($_ScriptLineNumber, $msg, $bDebug, $sLogFile) If $bDebug Then ConsoleWrite("[TX] " & $_ScriptLineNumber & " : " & $msg & @CRLF) If $sLogFile <> "" Then FileWrite($sLogFile, "[TX] " & $msg & @CRLF) EndFunc ;==>__log
  11. ha.. Here is the answer from tech support:
  12. https://www.textcontrol.com/documentation/?param=index.htm&product=ocx https://www.textcontrol.com/documentation/?param=o_techarticle_licensing.htm&product=ocx
  13. btw. There is free version: https://www.textcontrol.com/product/tx-text-control-express/
  14. Hm... I back to this case with ChatGPT which uses: Local $oObj = $oFactory.CreateInstanceLic(0, 0, $IID_IDispatch, $sLicenseKey) here is example: #AutoIt3Wrapper_UseX64=N #include <MsgBoxConstants.au3> _Example() Func _Example() ;========================================================= ; TEST ;========================================================= Local $sKey = "YOUR_LICENSE_KEY" Local $sLog = @ScriptDir & "\tx_debug.log" Local $oTX = _TXTextControl_Create($sKey, True, $sLog) If IsObj($oTX) Then MsgBox($MB_ICONINFORMATION, "TX Text Control", "OK - control initialized") ; SAFE ACCESS $oTX.Text = "Hello TX Text Control" Else MsgBox($MB_ICONERROR, "TX Text Control", "Initialization error") EndIf EndFunc ;==>_Example ;========================================================= ; MAIN FUNCTION ;========================================================= Func _TXTextControl_Create($sLicenseKey, $bDebug = True, $sLogFile = "") Local Const $CLSCTX_INPROC_SERVER = 1 Local Const $CLSID_TX = "{510E4201-2487-11E4-A584-0013D350667C}" Local Const $IID_IClassFactory2 = "{B196B28F-BAB4-101A-B69C-00AA00341D07}" Local Const $IID_IDispatch = "{00020400-0000-0000-C000-000000000046}" __log("INIT COM", $bDebug, $sLogFile) DllCall("ole32.dll", "long", "CoInitialize", "ptr", 0) ;========================================================= ; CLSID / IID ;========================================================= Local $tCLSID = DllStructCreate("byte[16]") Local $pCLSID = DllStructGetPtr($tCLSID) Local $tIIDFactory = DllStructCreate("byte[16]") Local $tIIDDispatch = DllStructCreate("byte[16]") Local $aCLSID = DllCall("ole32.dll", "long", "CLSIDFromString", _ "wstr", $CLSID_TX, _ "ptr", $pCLSID) If @error Or $aCLSID[0] <> 0 Then __log("CLSIDFromString FAILED", $bDebug, $sLogFile) Return 0 EndIf DllCall("ole32.dll", "long", "IIDFromString", _ "wstr", $IID_IClassFactory2, _ "ptr", DllStructGetPtr($tIIDFactory)) DllCall("ole32.dll", "long", "IIDFromString", _ "wstr", $IID_IDispatch, _ "ptr", DllStructGetPtr($tIIDDispatch)) ;========================================================= ; MODE 1 - SAFE IClassFactory2 (NO CRASH) ;========================================================= __log("MODE 1: CreateInstanceLic (SAFE)", $bDebug, $sLogFile) Local $aFactory = DllCall("ole32.dll", "long", "CoGetClassObject", _ "ptr", $pCLSID, _ "dword", $CLSCTX_INPROC_SERVER, _ "ptr", 0, _ "ptr", DllStructGetPtr($tIIDFactory), _ "ptr*", 0) If @error Or $aFactory[0] <> 0 Then __log("MODE 1 FAIL: CoGetClassObject", $bDebug, $sLogFile) Else Local $pFactory = $aFactory[5] ; SAFE COM WRAP (NO VTABLE, NO DLLCALLADDRESS) Local $oFactory = ObjCreateInterface($pFactory, $IID_IClassFactory2) If IsObj($oFactory) Then Local $oObj = $oFactory.CreateInstanceLic(0, 0, $IID_IDispatch, $sLicenseKey) If IsObj($oObj) Then __log("MODE 1 SUCCESS", $bDebug, $sLogFile) Return $oObj EndIf EndIf __log("MODE 1 FAILED: CreateInstanceLic", $bDebug, $sLogFile) EndIf ;========================================================= ; MODE 2 - License Manager ;========================================================= __log("MODE 2: LicManager", $bDebug, $sLogFile) Local $oLic = ObjCreate("TIS.TX.LicManager.30") If IsObj($oLic) Then __log("LicManager OK", $bDebug, $sLogFile) Else __log("LicManager FAIL", $bDebug, $sLogFile) EndIf ;========================================================= ; MODE 3 - Direct ActiveX ;========================================================= __log("MODE 3: Direct Create", $bDebug, $sLogFile) Local $oTX = ObjCreate("TIS.TX.TextControl.30") If IsObj($oTX) Then __log("MODE 3 SUCCESS", $bDebug, $sLogFile) $oTX.LicenseKey = $sLicenseKey Return $oTX EndIf __log("ALL MODES FAILED", $bDebug, $sLogFile) Return 0 EndFunc ;==>_TXTextControl_Create ;========================================================= ; LOGGER ;========================================================= Func __log($msg, $bDebug, $sLogFile) If $bDebug Then ConsoleWrite("[TX] " & $msg & @CRLF) If $sLogFile <> "" Then FileWrite($sLogFile, "[TX] " & $msg & @CRLF) EndFunc ;==>__log almost with success as the control initialize with this following Trial Version info: But finally I get error in Exit code: Wondering how to fix this. Any help would be appreciated.
×
×
  • Create New...