Jump to content

Danyfirex

MVPs
  • Posts

    2,665
  • Joined

  • Last visited

  • Days Won

    40

Danyfirex last won the day on March 31 2022

Danyfirex had the most liked content!

About Danyfirex

  • Birthday 04/04/1915

Profile Information

  • Member Title
    DanysysTeam
  • WWW
    https://danysys.com/

Recent Profile Visitors

8,272 profile views

Danyfirex's Achievements

  1. this part & " .txt, " should be & " .txt" , so you end up with FileWrite(@ScriptDir & "\IC w-date (70perc)- " & $sInputBoxAnswer & ".01 - JAN " & $sInputBoxAnswer & " .txt","") Saludos
  2. Hello CoreWeView2_8 Extends from many other interfaces so youre adding tag for 10 vtable pointer (IUnkown + ICoreWebView2_8) and missing ICoreWebView2_2, ICoreWebView2_3 and so on. You need to add interface to the tag otherwise youre calling wrong vtable functions. #AutoIt3Wrapper_Au3Check_Parameters=-d -w- 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 #AutoIt3Wrapper_UseX64=y Opt("MustDeclareVars", 1) #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <WinAPICom.au3> #include <WinAPI.au3> Global $hGui ; Project includes #include "..\Includes\WV2Interfaces.au3" Global $dtag_ICoreWebView2Environment_mod = StringReplace($dtag_ICoreWebView2Environment, "get_BrowserVersionString hresult();", "get_BrowserVersionString hresult(wstr*);") ; == ICoreWebView2_8 Interface ==================================================== Global Const $sIID_ICoreWebView2_8 = "{E9632730-6E1E-43AB-B7B8-7B2C9E62E094}" ; ICoreWebView2_2 Global Const $dtag_ICoreWebView2_2 = $dtag_ICoreWebView2 & _ "add_WebResourceResponseReceived hresult(ptr;uint64*);" & _ "remove_WebResourceResponseReceived hresult(uint64);" & _ "NavigateWithWebResourceRequest hresult(ptr);" & _ "add_DOMContentLoaded hresult(ptr;uint64*);" & _ "remove_DOMContentLoaded hresult(uint64);" & _ "get_CookieManager hresult(ptr*);" & _ "get_Environment hresult(ptr*);" ; ICoreWebView2_3 Global Const $dtag_ICoreWebView2_3 = $dtag_ICoreWebView2_2 & _ "TrySuspend hresult(ptr);" & _ "Resume hresult();" & _ "get_IsSuspended hresult(int*);" & _ "SetVirtualHostNameToFolderMapping hresult(wstr;wstr;int);" & _ "ClearVirtualHostNameToFolderMapping hresult(wstr);" ; ICoreWebView2_4 Global Const $dtag_ICoreWebView2_4 = $dtag_ICoreWebView2_3 & _ "add_FrameCreated hresult(ptr;uint64*);" & _ "remove_FrameCreated hresult(uint64);" & _ "add_DownloadStarting hresult(ptr;uint64*);" & _ "remove_DownloadStarting hresult(uint64);" ; ICoreWebView2_5 Global Const $dtag_ICoreWebView2_5 = $dtag_ICoreWebView2_4 & _ "add_ClientCertificateRequested hresult(ptr;uint64*);" & _ "remove_ClientCertificateRequested hresult(uint64);" ; ICoreWebView2_6 Global Const $dtag_ICoreWebView2_6 = $dtag_ICoreWebView2_5 & _ "OpenTaskManagerWindow hresult();" ; ICoreWebView2_7 Global Const $dtag_ICoreWebView2_7 = $dtag_ICoreWebView2_6 & _ "PrintToPdf hresult(wstr;ptr;ptr);" ; ICoreWebView2_8 Global Const $dtag_ICoreWebView2_8 = $dtag_ICoreWebView2_7 & _ "add_IsMutedChanged hresult(ptr;uint64*);" & _ "remove_IsMutedChanged hresult(uint64);" & _ "get_IsMuted hresult(int*);" & _ "set_IsMuted hresult(int);" & _ "add_IsDocumentPlayingAudioChanged hresult(ptr;uint64*);" & _ "remove_IsDocumentPlayingAudioChanged hresult(uint64);" & _ "get_IsDocumentPlayingAudio hresult(int*);" Global $pICoreWebView2_8, $oCoreWebView2_8, $tICoreWebView2_8 Global $tRIID_ICoreWebView2_8 = _WinAPI_GUIDFromString($sIID_ICoreWebView2_8) #cs Global Const $ICoreWebView2_8_Prefix = "CoreWebView2_8_" $pICoreWebView2_8 = ObjectFromTag($ICoreWebView2_8_Prefix, $dtag_ICoreWebView2_8, $tICoreWebView2_8) #ce ; ================================================================================= WebView2() Func WebView2() ; Create WebView2 GUI $hGui = GUICreate("WebView2 Sample", 950, 600, -1, -1, $WS_OVERLAPPEDWINDOW) ; Create AutoIt controls Local $idButton1 = GUICtrlCreateButton("WebView2 version", 10, 150, 170, 40) Local $idButton2 = GUICtrlCreateButton("Test2", 190, 150, 170, 40) Local $idLabelResult = GUICtrlCreateLabel("", 370, 150, 170, 40) ; --- Initialize and embed WebView2 ---------- _WinAPI_CoInitialize($COINIT_APARTMENTTHREADED) CoreWebView2CreateCoreWebView2EnvironmentCompletedHandlerCreate(True) CoreWebView2CreateCoreWebView2ControllerCompletedHandlerCreate(True) Local $hWebView2Loader = DllOpen(@AutoItX64 ? "WebView2Loader-x64.dll" : "WebView2Loader-x86.dll") Local $aRet = DllCall($hWebView2Loader, "long", "CreateCoreWebView2EnvironmentWithOptions", "wstr", "", "wstr", @ScriptDir, _ "ptr", Null, "ptr", $pCoreWebView2CreateCoreWebView2EnvironmentCompletedHandler) If @error Or $aRet[0] Then Return ConsoleWrite("CreateCoreWebView2EnvironmentWithOptions ERR" & @CRLF) ; -------------------------------------------- ; after above initialization we have 3 main objects: ; $oCoreWebView2Environment ; $oCoreWebView2Controller ; $oCoreWebView2 ; Show WebView2 GUI GUISetState(@SW_SHOW) Local $vReturnedValue ; Loop While 1 Switch GUIGetMsg() Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESIZED, $GUI_EVENT_RESTORE Local $tRect = _WinAPI_GetClientRect($hGui) $oCoreWebView2Controller.put_Bounds($tRect) Case $idButton1 ; I use a simple method from the basic "Environment" interface. GUICtrlSetData($idLabelResult, "") $oCoreWebView2Environment.get_BrowserVersionString($vReturnedValue) ; get a simple synchronous property MsgBox(0, '', "WebView2 Version is " & $vReturnedValue) GUICtrlSetData($idLabelResult, "current WebView2 Version is" & @CRLF & $vReturnedValue) Case $idButton2 ; attempting to use methods of a later version interface (ICoreWebView2_8) #cs From interface ICoreWebView2_8 I would like to test this 2 synchronous methods get_IsMuted() - audio status put_IsMuted() — toggle audio get_IsDocumentPlayingAudio() - Is Audio Playing? #ce ;#cs --- This attempt to use QueryInterface fails --- Local $HRESULT = $oCoreWebView2.QueryInterface($tRIID_ICoreWebView2_8, $pICoreWebView2_8) ConsoleWrite('Debug: line ' & @ScriptLineNumber & ' @error: ' & @error & @TAB & _ '$HRESULT -> ' & VarGetType($HRESULT) & ' ' & $HRESULT & @TAB & _ '$pICoreWebView2_8 -> ' & VarGetType($pICoreWebView2_8) & ' ' & $pICoreWebView2_8 & @CRLF) $oCoreWebView2_8 = ObjCreateInterface($pICoreWebView2_8, $sIID_ICoreWebView2_8, $dtag_ICoreWebView2_8) Local $iPeek = 0 $oCoreWebView2_8.get_IsDocumentPlayingAudio($iPeek) MsgBox(32, 'Hello Gianni', $iPeek ? "I'm playing Sound" : "I'm NOT playing Sound" ) ; $oCoreWebView2.Navigate("https://learn.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/icorewebview2_8") Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd ; Cleanup CoreWebView2CreateCoreWebView2ControllerCompletedHandlerDelete() CoreWebView2CreateCoreWebView2EnvironmentCompletedHandlerDelete() DllClose($hWebView2Loader) EndFunc ;==>WebView2 ; Copied from WV2Interfaces.au3 ; Executed automatically when the callback interface is created Func CoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Invoke($pSelf, $long, $ptr) ; Ret: long Par: long;ptr* ConsoleWrite("CoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Invoke" & @CRLF) ; Create CoreWebView2Environment object $oCoreWebView2Environment = ObjCreateInterface($ptr, $sIID_ICoreWebView2Environment, $dtag_ICoreWebView2Environment_mod) ConsoleWrite("IsObj( $oCoreWebView2Environment ) = " & IsObj($oCoreWebView2Environment) & @CRLF & @CRLF) $oCoreWebView2Environment.AddRef() ; Set $pCoreWebView2CreateCoreWebView2ControllerCompletedHandler callback pointer for the WebView2 GUI $oCoreWebView2Environment.CreateCoreWebView2Controller($hGui, $pCoreWebView2CreateCoreWebView2ControllerCompletedHandler) ; Forces CoreWebView2CreateCoreWebView2ControllerCompletedHandler_Invoke() below to be executed Return 0 ; S_OK = 0x00000000 #forceref $pSelf, $long EndFunc ;==>CoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Invoke ; Copied from WV2Interfaces.au3 ; Executed as a consequence of $oCoreWebView2Environment.CreateCoreWebView2Controller() above Func CoreWebView2CreateCoreWebView2ControllerCompletedHandler_Invoke($pSelf, $long, $ptr) ; Ret: long Par: long;ptr* ConsoleWrite("CoreWebView2CreateCoreWebView2ControllerCompletedHandler_Invoke" & @CRLF) ; Create CoreWebView2Controller object $oCoreWebView2Controller = ObjCreateInterface($ptr, $sIID_ICoreWebView2Controller, $dtag_ICoreWebView2Controller) ConsoleWrite("IsObj( $oCoreWebView2Controller ) = " & IsObj($oCoreWebView2Controller) & @CRLF) $oCoreWebView2Controller.AddRef() ; Prevent the object from being deleted when the function ends ; Set bounds for the CoreWebView2 object Local $tRect = _WinAPI_GetClientRect($hGui) $oCoreWebView2Controller.put_Bounds($tRect) ; Create CoreWebView2 object $oCoreWebView2Controller.get_CoreWebView2($pCoreWebView2) $oCoreWebView2 = ObjCreateInterface($pCoreWebView2, $sIID_ICoreWebView2, $dtag_ICoreWebView2) ConsoleWrite("IsObj( $oCoreWebView2 ) = " & IsObj($oCoreWebView2) & @CRLF & @CRLF) ; Navigate to web page $oCoreWebView2.Navigate("https://www.youtube.com/watch?v=oSexfR0Ubzw") Return 0 ; S_OK = 0x00000000 #forceref $pSelf, $long EndFunc ;==>CoreWebView2CreateCoreWebView2ControllerCompletedHandler_Invoke ; -- Callback functions ----- Func CoreWebView2_8_QueryInterface($pSelf, $pRIID, $pObj) ; Ret: long Par: ptr;ptr* Return 0 ; S_OK = 0x00000000 #forceref $pSelf, $pRIID, $pObj EndFunc ;==>CoreWebView2_8_QueryInterface Func CoreWebView2_8_AddRef($pSelf) ; Ret: dword Return 1 ; For AddRef/Release #forceref $pSelf EndFunc ;==>CoreWebView2_8_AddRef Func CoreWebView2_8_Release($pSelf) ; Ret: dword Return 1 ; For AddRef/Release #forceref $pSelf EndFunc ;==>CoreWebView2_8_Release Saludos
  3. @WarMan thank you I'll fix it. Saludos
  4. Both are working perfect to me already Saludos
  5. Hello. X64 works fine for me. But for x86 I just get this. It just exits after one or two seconds. Saludos
  6. It does work but before play with VLC it says this: Saludos
  7. works fine using Windows 10 21H2. Saludos
  8. Hello, I wrote this. You need to make it more dynamic, but it's a start. #include <File.au3> #include <WinAPIReg.au3> #include <WinAPI.au3> #include <GUIConstantsEx.au3> Global Const $CLSCTX_INPROC_SERVER = 1 Global Const $CLSCTX_LOCAL_SERVER = 4 Global Const $CLSCTX_SERVER = BitOR($CLSCTX_INPROC_SERVER, $CLSCTX_LOCAL_SERVER) Global Const $sIID_IPreviewHandler = "{8895b1c6-b41f-4c1c-a562-0d564250836f}" Global Const $sTagIPreviewHandler = "SetWindow hresult(hwnd;ptr); SetRect hresult(hwnd); DoPreview hresult(); Unload hresult(); SetFocus hresult(); QueryFocus hresult(hwnd*);TranslateAccelerator hresult(ptr*);" Global Const $sIID_IInitializeWithStream = "{B824B49D-22AC-4161-AC8A-9916E8FA3F7F}" Global Const $sIID_IInitializeWithFile = "{B7D14566-0509-4CCE-A71F-0A554233BD9B}" Global Const $sTagIInitializeWithFiler = "Initialize hresult(wstr;uint);" Global Const $sTagIInitializeWithStream = "Initialize hresult(ptr;uint);" _Test() Func _Test() _WinAPI_CoInitialize() Local $sFilePath = @ScriptDir & "\Tests.odt" ;chage me for another file If Not FileExists($sFilePath) Then Local $sFilePath = FileOpenDialog("Select a file to be loaded", @ScriptDir, "Any File Type (*.*)", $FD_FILEMUSTEXIST) If @error Then MsgBox($MB_SYSTEMMODAL, "", "No file(s) were selected.") FileChangeDir(@ScriptDir) Exit Else ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder. FileChangeDir(@ScriptDir) $sFilePath = StringReplace($sFilePath, "|", @CRLF) EndIf EndIf Local $sExtension = _GetFilePathExtension($sFilePath) ConsoleWrite("$sExtension: " & $sExtension & @CRLF) Local $ExtensionCLSID = _GetShellExtensionCLSIDForFileType($sExtension) ConsoleWrite("$ExtensionClsid: " & $ExtensionCLSID & @CRLF) Local $tIIDExtensionCLSID = _WinAPI_GUIDFromString($ExtensionCLSID) Local $tIIDIPreviewHandler = _WinAPI_GUIDFromString($sIID_IPreviewHandler) Local $aRet = DllCall("ole32.dll", "long", "CoCreateInstance", "ptr", DllStructGetPtr($tIIDExtensionCLSID), "ptr", 0, "dword", $CLSCTX_SERVER, "ptr", DllStructGetPtr($tIIDIPreviewHandler), "ptr*", 0) Local $pIPreviewHandler = $aRet[5] ConsoleWrite("$pIPreviewHandler: " & $pIPreviewHandler & @CRLF) Local $oPreviewHandler = ObjCreateInterface($pIPreviewHandler, $sIID_IPreviewHandler, $sTagIPreviewHandler) ConsoleWrite("$oPreviewHandler: " & IsObj($oPreviewHandler) & @CRLF) Local $pIInitializeWithStream = 0 Local $pIInitializeWithFile = 0 $oPreviewHandler.QueryInterface($sIID_IInitializeWithStream, $pIInitializeWithStream) $oPreviewHandler.QueryInterface($sIID_IInitializeWithFile, $pIInitializeWithFile) ConsoleWrite("$pIInitializeWithStream: " & $pIInitializeWithStream & @CRLF) ConsoleWrite("$pIInitializeWithFile: " & $pIInitializeWithFile & @CRLF) If $pIInitializeWithStream Then Local $pIStream = 0 Local $aRet = DllCall("shlwapi.dll", "long", "SHCreateStreamOnFileEx", _ "wstr", $sFilePath, _ "dword", BitOR(0x00000000, 0x00000020), _ "dword", 0, _ "boolean", False, _ "ptr", 0, _ "ptr*", 0) $pIStream = $aRet[6] ConsoleWrite("$pIStream: " & $pIStream & @CRLF) Local $oIInitializeWithStream = ObjCreateInterface($pIInitializeWithStream, $sIID_IInitializeWithStream, $sTagIInitializeWithStream) $oIInitializeWithStream.Initialize($pIStream, 0) ElseIf $pIInitializeWithFile Then Local $oIInitializeWithFile = ObjCreateInterface($pIInitializeWithFile, $sIID_IInitializeWithFile, $sTagIInitializeWithFiler) ConsoleWrite("$oIInitializeWithFile: " & IsObj($oIInitializeWithFile) & @CRLF) ConsoleWrite("$oIInitializeWithFile.Initialize: " & $oIInitializeWithFile.Initialize($sFilePath, 0x00000000) & @CRLF) ;$STGM_READ = $STGM_READ Else ConsoleWrite("-Error Interface" & @CRLF) EndIf Local $hGUI = GUICreate("IPreviewHandler", 400, 400) Local $idPic = GUICtrlCreatePic("", 10, 10, 380, 380) Local $hWnd, $tRECT $hWnd = GUICtrlGetHandle($idPic) $tRECT = _WinAPI_GetClientRect($hWnd) ConsoleWrite("oPreviewHandler.etWindow: " & $oPreviewHandler.SetWindow($hWnd, DllStructGetPtr($tRECT)) & @CRLF) ConsoleWrite("oPreviewHandler.etWindow: " & $oPreviewHandler.DoPreview() & @CRLF) GUISetState(@SW_SHOW, $hGUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd GUIDelete($hGUI) EndFunc ;==>_Test Func _GetFilePathExtension($sFilePath) Local $sDrive = "", $sDir = "", $sFileName = "", $sExtension = "" Local $aPathSplit = _PathSplit($sFilePath, $sDrive, $sDir, $sFileName, $sExtension) Return $sExtension EndFunc ;==>_GetFilePathExtension Func _GetShellExtensionCLSIDForFileType($sExtension) Local $sAssoc = _WinAPI_AssocQueryString($sExtension, $ASSOCSTR_SHELLEXTENSION, $ASSOCF_INIT_DEFAULTTOSTAR, $sIID_IPreviewHandler) Return $sAssoc EndFunc ;==>_GetShellExtensionCLSIDForFileType Saludos
  9. You can get the shape this way: $oDoc.Shapes("Group 5").GroupItems("Text Box 8") Saludos
  10. Hello, I use COMView drag and drop the .ocx and copy the GUID Saludos
  11. Here You have. {F4F25428-BB33-4FAC-8B8C-7BF97E0232E5} Saludos
  12. Are you sure is an AutoIt issue? I tested with PureBasic and still can't use that api. I tested with GetMonitorCount and it works fine. Can you provide a working example using FB? Saludos
  13. @ptrex here you have. OrdoWebView.7z Saludos
  14. Hello friends, I haven't used AutoIt for a long time, but I always like these challenges, and I never forget you. Apparently there is some bug in how GUICtrlCreateObj works and I don't have time to look internally at the bug. This way I was able to create the instance of the object. #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global Const $gATL = DllOpen("ATL.DLL") Global Const $gOleaut32 = DllOpen("oleaut32.dll") Global $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc") _TestOrdoWebView() Func _TestOrdoWebView() ConsoleWrite("AtlAxWinInit: " & AtlAxWinInit() & @CRLF) Local $pProgID = SysAllocString('OrdoWebView2.OrdoWebView') ConsoleWrite("SysAllocString('OrdoWebView2.OrdoWebView'): " & $pProgID & @CRLF) Local $hGUI = GUICreate("OrdoWebView2.OrdoWebView Test", (@DesktopWidth) / 1.2, (@DesktopHeight) / 1.2, Default, Default, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN)) Local $hResult = AtlAxCreateControl($pProgID, $hGUI) _SysFreeString($pProgID) Local $pIUnkown = AtlAxGetControl($hGUI) ConsoleWrite("AtlAxGetControl: " & $pIUnkown & @CRLF) GUISetState() Local $oOrdoWebView2 = ObjCreateInterface($pIUnkown, "{E54909AA-1705-44A9-8235-B24F74366B3F}") Local $oOrdoWebViewEvents = ObjEvent($oOrdoWebView2, "_OrdoWebView_", "__OrdoWebView") ConsoleWrite("$oOrdoWebView2: " & IsObj($oOrdoWebView2) & @CRLF) ConsoleWrite($oOrdoWebView2.GetWebView2Version() & @CRLF) ConsoleWrite($oOrdoWebView2.GetMostRecentInstallPath() & @CRLF) $oOrdoWebView2.Anchor = True $oOrdoWebView2.Search_URL = "https://search.yahoo.com/search?p=%1" $oOrdoWebView2.HomeURL = "http://www.google.com" $oOrdoWebView2.SearchEngine = 2 $oOrdoWebView2.SearchAuto = True $oOrdoWebView2.Init() While Not $oOrdoWebView2.IsWebViewInit() ;wait initialization otherwise Navigate will fail Sleep(100) WEnd $oOrdoWebView2.Navigate("https://www.autoitscript.com/forum/topic/204362-microsoft-edge-webview2-embed-web-code-in-your-native-application/page/9/#findComment-1542505") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd GUIDelete($hGUI) EndFunc ;==>_TestOrdoWebView Func _OrdoWebView_InitComplete($oIEpDisp) ConsoleWrite("_OrdoWebView_InitComplete" & @CRLF) EndFunc ;==>_OrdoWebView_InitComplete Func AtlAxCreateControl($pProgID, $HWND) Local $aCall = DllCall($gATL, "long", "AtlAxCreateControl", "ptr", $pProgID, "handle", $HWND, "ptr", 0, "ptr", 0) If @error Then Return SetError(1, 0, -1) Return $aCall[0] EndFunc ;==>AtlAxCreateControl Func AtlAxGetControl($HWND) Local $aCall = DllCall($gATL, "long", "AtlAxGetControl", "handle", $HWND, "ptr*", 0) If @error Then Return SetError(1, 0, -1) Return $aCall[2] EndFunc ;==>AtlAxGetControl Func AtlAxWinInit() Local $aCall = DllCall($gATL, "bool", "AtlAxWinInit") If @error Then Return SetError(1, 0, -1) Return $aCall[0] EndFunc ;==>AtlAxWinInit Func _SysFreeString($pBSTR) ; Author: Prog@ndy If Not $pBSTR Then Return SetError(2, 0, 0) DllCall($gOleaut32, "none", "SysFreeString", "ptr", $pBSTR) If @error Then Return SetError(1, 0, 0) EndFunc ;==>_SysFreeString Func SysAllocString($str) ; Author: monoceres Local $aCall = DllCall($gOleaut32, "ptr", "SysAllocString", "wstr", $str) If @error Then Return SetError(1, 0, 0) Return $aCall[0] EndFunc ;==>SysAllocString ; User's COM error function. Will be called if COM error occurs Func _ErrFunc($oError) ; Do anything here. ConsoleWrite(@ScriptName & " (" & $oError.scriptline & ") : ==> COM Error intercepted !" & @CRLF & _ @TAB & "err.number is: " & @TAB & @TAB & "0x" & Hex($oError.number) & @CRLF & _ @TAB & "err.windescription:" & @TAB & $oError.windescription & @CRLF & _ @TAB & "err.description is: " & @TAB & $oError.description & @CRLF & _ @TAB & "err.source is: " & @TAB & @TAB & $oError.source & @CRLF & _ @TAB & "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _ @TAB & "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _ @TAB & "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _ @TAB & "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _ @TAB & "err.retcode is: " & @TAB & "0x" & Hex($oError.retcode) & @CRLF & @CRLF) EndFunc ;==>_ErrFunc Saludos
×
×
  • Create New...