Sign in to follow this  
Followers 0
mLipok

XZip - UDF for "XStandard XZIP Component"

9 posts in this topic

#1 ·  Posted (edited)

I was looking for a simple and small freeware ActiveX component for ZIP archive.

 

And behold, here it is:

 

http://www.xstandard.com/en/documentation/xzip/

HERE IS MY UDF (look also to attachment):

#include-once
#Tidy_Parameters=/sort_funcs /reel
; #AutoIt3Wrapper_Run_Debug_Mode=Y
OnAutoItExitRegister("_XZIP_Shutdown") ; in case the script exit without calling _XZIP_Shutdown()

#Region XZIP Include
#include-once
#include <MsgBoxConstants.au3>
#include <FileConstants.au3>
#include <String.au3>
#include <WinAPIFiles.au3>
#EndRegion XZIP Include

#Region XZIP Header
; #INDEX# =======================================================================================================================
; Title .........: UDF for "XStandard XZIP Component"
; AutoIt Version : 3.3.10.2++
; Language ......: English
; Description ...: A collection of functions for "XStandard XZIP Component"
; Author(s) .....: mLipok
; Modified ......:
; ===============================================================================================================================
#cs
    Title:   UDF for "XStandard XZIP Component"
    Filename:  XZip.au3
    Description: A collection of functions for "XStandard XZIP Component"
    Author:   mLipok
    Modified:
    Last Update: 2014/06/04
    Requirements:
    AutoIt 3.3.10.2 or higher

    XStandard XZIP Component
    http://www.xstandard.com/en/documentation/xzip/

    Update History:
    ===================================================
    2014/06/04
    v0.1 First official version

#CE

#EndRegion XZIP Header

#Region #XZIP Constants#

; #CONSTANTS# ===================================================================================================================
; $__<UDF>_CONSTANT_<NAME>
Global Const $__sXZIP_ClassName = "XStandard.Zip.1"
Global Const $__sXZIP_CLSID = '{13D6BDE3-46AA-4FF2-A622-EBC43110D95C}'
Global Const $__sXZIP_IID = '{0B2D411B-7A91-483A-95C4-53DDC6B17895}'

Global Enum _
        $tFolder = 1, _
        $tFile

#EndRegion #XZIP Constants#

#Region XZIP Global Variables

; #VARIABLES# ===================================================================================================================
; $__g<VARNAME>_<UDF>
Global $__hDll_XZIP = 0
Global $__oXZIP_ErrorHandler = ''
Global $__fXPDF_Notification = True
Global $__sXZIP_DllFileFullPath = @ScriptDir & '\XZIP.dll'

#EndRegion XZIP Global Variables

#Region EXAMPLES
;~ _XZIP_UseErrorHandler()
;~ _TEST()
;~ _Examples()

Func _Examples()
    Local $oXZIP
    $sFilePath = @ScriptFullPath
    $sArchive = @ScriptFullPath & '.zip'
    $fStorePath = 0
    $sNewPath = ""
;~  Sleep(1000)
    _XZIP_Pack($oXZIP, $sFilePath, $sArchive, $fStorePath, $sNewPath)
;~  _XZIP_ErrorCode($oXZIP)
    $output = _XZIP_Contents($oXZIP, $sArchive)
;~  MsgBox(1, 'VarGetType', VarGetType($output))
    For $out In $output
        ConsoleWrite($out.Path & $out.Name & @CRLF)
    Next
    _XZIP_UnPack($oXZIP, @ScriptDir & '\xZIP.zip', @ScriptDir & '\TESTING')

    $oXZIP = '' ; CleanUp

EndFunc   ;==>_Examples
#EndRegion EXAMPLES

#Region #XZIP INTERNAL#

; ===============================================================================================================================
; #INTERNAL# ====================================================================================================================

#EndRegion #XZIP INTERNAL#

#Region #XZIP CURRENT#

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_Contents
; Description ...: Get a list of files and folder in the archive
; Syntax ........: _XZIP_Contents(ByRef $oXZIP, $sArchive)
; Parameters ....: $oXZIP               - [in/out] Reference to xZIP object.
;                  $sArchive            - A string value.
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........: http://www.xstandard.com/en/documentation/XZIP/
; Example .......: No
; ===============================================================================================================================
Func _XZIP_Contents(ByRef $oXZIP, $sArchive)
    _XZIP_CreateObject($oXZIP)
    If @error Then
        Return SetError(1, '', '')
    Else
        Return $oXZIP.Contents($sArchive)
    EndIf
EndFunc   ;==>_XZIP_Contents

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_CreateObject
; Description ...: Create Object for XZIP
; Syntax ........: _XZIP_CreateObject(Byref $oXZIP)
; Parameters ....: $oXZIP               - [in/out] Reference to xZIP object.
; Return values .: Success: $oXZIP object
;                  Failure: 0 and set @error to non zero
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _XZIP_CreateObject(ByRef $oXZIP)
;~  $oXZIP = ObjCreate($__sXZIP_ClassName)
;~  Return
    If _XZIP_StartUp() Then
        If Not IsObj($oXZIP) Then
            $oXZIP = ObjCreate($__sXZIP_CLSID, $__sXZIP_IID, $__hDll_XZIP) ; $__sClassName_XZIP_Commercial
;~          _XZIP_ErrorCode($oXZIP)
            Return SetError(@error, 0, $oXZIP)
        EndIf
    EndIf
EndFunc   ;==>_XZIP_CreateObject

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_Delete
; Description ...: Remove a file from an archive.
; Syntax ........: _XZIP_Delete(ByRef $oXZIP, $sFile, $sArchive)
; Parameters ....: $oXZIP               - [in/out] Reference to xZIP object.
;                  $sFile               - A string value.
;                  $sArchive            - A string value.
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........: http://www.xstandard.com/en/documentation/XZIP/
; Example .......: No
; ===============================================================================================================================
Func _XZIP_Delete(ByRef $oXZIP, $sFile, $sArchive)
EndFunc   ;==>_XZIP_Delete

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_ErrFunc
; Description ...: AutoIt COM Error Handling Functionality
; Syntax ........: _XZIP_ErrFunc($oError)
; Parameters ....: $oError              - An unknown value.
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _XZIP_ErrFunc($oError)
    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   ;==>_XZIP_ErrFunc

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_ErrorCode
; Description ...: Return the code of last operation.
; Syntax ........: _XZIP_ErrorCode(Byref $oXZIP)
; Parameters ....: $oXZIP               - [in/out] Reference to xZIP object.
; Return values .: ErrorCode of last operation.
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........: http://www.xstandard.com/en/documentation/XZIP/
; Example .......: No
; ===============================================================================================================================
Func _XZIP_ErrorCode(ByRef $oXZIP)
    If IsObj($oXZIP) Then
        Local $oXZIP_ErrorCode = $oXZIP.ErrorCode($oXZIP)
        Local $oXZIP_ErrorDescription = $oXZIP.ErrorDescription($oXZIP)
        ConsoleWrite('! _XZIP_ErrorCode:' & @CRLF)
        ConsoleWrite('>     $oXZIP_ErrorCode =  ' & $oXZIP_ErrorCode & @CRLF)
        ConsoleWrite('>     $oXZIP_ErrorDescription = ' & $oXZIP_ErrorDescription & @CRLF)
        Return SetError(0, $oXZIP_ErrorDescription, $oXZIP_ErrorCode)
    Else
        ConsoleWrite('! _XZIP_ErrorCode:' & @CRLF)
        ConsoleWrite('>     $oXZIP is not an object.' & @CRLF)
        Return SetError(1, '', 0)
    EndIf
EndFunc   ;==>_XZIP_ErrorCode

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_ErrorDescription
; Description ...: Return the error code description of last operation.
; Syntax ........: _XZIP_ErrorDescription(Byref $oXZIP)
; Parameters ....: $oXZIP               - [in/out] An unknown value.
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _XZIP_ErrorDescription(ByRef $oXZIP)
    Return $oXZIP.ErrorDescription()
EndFunc   ;==>_XZIP_ErrorDescription

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_Move
; Description ...: Move or rename a file in the archive.
; Syntax ........: _XZIP_Move(ByRef $oXZIP, $sFrom, $sTo, $sArchive)
; Parameters ....: $oXZIP               - [in/out] Reference to xZIP object.
;                  $sFrom               - A string value.
;                  $sTo                 - A string value.
;                  $sArchive            - A string value.
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........: http://www.xstandard.com/en/documentation/XZIP/
; Example .......: No
; ===============================================================================================================================
Func _XZIP_Move(ByRef $oXZIP, $sFrom, $sTo, $sArchive)
EndFunc   ;==>_XZIP_Move

; #CURRENT# =====================================================================================================================
; ===============================================================================================================================

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_Pack
; Description ...: Add file or folder to an archive.
; Syntax ........: _XZIP_Pack(ByRef $oXZIP, $sFilePath, $sArchive[, $fStorePath = False[, $sNewPath = Default[, $iCompressionLevel = -1]]])
; Parameters ....: $oXZIP               - [in/out] Reference to xZIP object.
;                  $sFilePath           - A string value.
;                  $sArchive            - A string value.
;                  $fStorePath          - [optional] A boolean value. Default is False.
;                  $sNewPath            - [optional] A string value. Default is "".
;                  $iCompressionLevel   - [optional] An integer value. Default is -1. Compression level 1 is minimum, level 9 is maximum, all other values default to level 6.
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........: http://www.xstandard.com/en/documentation/XZIP/
; Example .......: No
; ===============================================================================================================================
Func _XZIP_Pack(ByRef $oXZIP, $sFilePath, $sArchive, $fStorePath = False, $sNewPath = "", $iCompressionLevel = -1)
    _XZIP_CreateObject($oXZIP)
    If @error Then
        Return -1
    Else
        $oXZIP.Pack($sFilePath, $sArchive, $fStorePath, $sNewPath, $iCompressionLevel)
        ConsoleWrite('>     $oXZIP.ErrorCode =  ' & $oXZIP.ErrorCode() & @CRLF)
        ConsoleWrite('>     $oXZIP.ErrorDescription = ' & $oXZIP.ErrorDescription() & @CRLF)
        ConsoleWrite('!     $oXZIP.Version =  ' & $oXZIP.Version() & @CRLF)
    EndIf
EndFunc   ;==>_XZIP_Pack

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_Shutdown
; Description ...: Close the XZip.dll library
; Syntax ........: _XZIP_Shutdown()
; Parameters ....: None
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _XZIP_Shutdown()
    $oXZIP = ''
    If $__hDll_XZIP > 0 Then DllClose($__hDll_XZIP)
    $__hDll_XZIP = 0
    OnAutoItExitUnRegister("_XZIP_Shutdown")
EndFunc   ;==>_XZIP_Shutdown

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_StartUp
; Description ...: Open the XZip.dll library
; Syntax ........: _XZIP_StartUp()
; Parameters ....: None
; Return values .: TODO
; Author ........: mLipok
; Modified ......:
; Remarks .......: If you not set $__sLicenseKey_XZIP then DebenuPDFLibraryLite1012.dll will be used (Lite version). SET YOUR LICENSE KEY in your main script using _XZIP_SetLicenseKey()
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _XZIP_StartUp()
    If $__hDll_XZIP = 0 Then
        If FileExists($__sXZIP_DllFileFullPath) Then
            $__hDll_XZIP = DllOpen($__sXZIP_DllFileFullPath)
            If @error = -1 Then
                MsgBox($MB_SYSTEMMODAL + $MB_OK, "DllOpen Error", "Can not open: " & @CRLF & $__sXZIP_DllFileFullPath)
                Return SetError(2, '', 0)
            EndIf
            Return 1
        Else
            MsgBox($MB_SYSTEMMODAL + $MB_OK, "DllOpen Error", "Dll File not exist: " & @CRLF & $__sXZIP_DllFileFullPath)
            Return SetError(1, '', 0)
        EndIf
    Else
    EndIf
EndFunc   ;==>_XZIP_StartUp

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_UnPack
; Description ...: Extract contents of an archive to a folder.
; Syntax ........: _XZIP_UnPack(ByRef $oXZIP, $sArchive, $sFolderPath[, $sPattern = ""])
; Parameters ....: $oXZIP               - [in/out] Reference to xZIP object.
;                  $sArchive            - A string value.
;                  $sFolderPath         - A string value.
;                  $sPattern            - [optional] A string value. Default is "".
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........: http://www.xstandard.com/en/documentation/XZIP/
; Example .......: No
; ===============================================================================================================================
Func _XZIP_UnPack(ByRef $oXZIP, $sArchive, $sFolderPath, $sPattern = "")
    Return $oXZIP.UnPack($sArchive, $sFolderPath, $sPattern)
EndFunc   ;==>_XZIP_UnPack

; #FUNCTION# ====================================================================================================================
; Name ..........: _XZIP_UseErrorHandler
; Description ...: Handles incoming events from the given Object.
; Syntax ........: _XZIP_UseErrorHandler()
; Parameters ....:
; Return values .: None
; Author ........: mLipok
; Modified ......:
; Remarks .......: Use it only if you do not use your own COM Error Handling.
; Related .......: _XZIP_ErrFunc
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _XZIP_UseErrorHandler()
    $__oXZIP_ErrorHandler = ObjEvent("AutoIt.Error", "_XZIP_ErrFunc")
EndFunc   ;==>_XZIP_UseErrorHandler
#EndRegion #XZIP CURRENT#

#Region TODO
Func _TEST()
    $oXZIP = ''
    _XZIP_CreateObject($oXZIP)
    If Not IsObj($oXZIP) Then
        MsgBox(1, 'IsObj ERROR', '')
    Else
        $sFilePath = @ScriptFullPath
        $sArchive = @ScriptFullPath & '.zip'
        ConsoleWrite('>     $oXZIP.ErrorCode =  ' & $oXZIP.ErrorCode() & @CRLF)
        ConsoleWrite('>     $oXZIP.ErrorDescription = ' & $oXZIP.ErrorDescription() & @CRLF)
        ConsoleWrite('!     $oXZIP.Version =  ' & $oXZIP.Version() & @CRLF)
    EndIf
    $oXZIP = ''
EndFunc   ;==>_TEST
#EndRegion TODO

HOW TO USE IT:

look at

#Region EXAMPLES
;~ _XZIP_UseErrorHandler()
;~ _TEST()
;~ _Examples()

Func _Examples()
    Local $oXZIP
    $sFilePath = @ScriptFullPath
    $sArchive = @ScriptFullPath & '.zip'
    $fStorePath = 0
    $sNewPath = ""
;~  Sleep(1000)
    _XZIP_Pack($oXZIP, $sFilePath, $sArchive, $fStorePath, $sNewPath)
;~  _XZIP_ErrorCode($oXZIP)
    $output = _XZIP_Contents($oXZIP, $sArchive)
;~  MsgBox(1, 'VarGetType', VarGetType($output))
    For $out In $output
        ConsoleWrite($out.Path & $out.Name & @CRLF)
    Next
    _XZIP_UnPack($oXZIP, @ScriptDir & '\xZIP.zip', @ScriptDir & '\TESTING')

    $oXZIP = '' ; CleanUp

EndFunc   ;==>_Examples
#EndRegion EXAMPLES
Have fun

mLipok

XZip.au3.Download.html

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites



Not tried yet but seems to be interesting !

why not include activex to your udf ?

_Xzipdll ( 'XZip.dll', @TempDir )

Func _Xzipdll ( $sFileName, $sOutputDirPath, $iOverWrite=0 ) ; http://xstandard.com/get/ecxhcxej/zip/
    Local $sFileBin = '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= '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'
    $sFileBin &= 'ohEovLy0AGlnxPiEPCrAAB1Fkrx6VOhJAEtnrG1TjuZqAHWdaFq6mFBfAAwpoeho3LDXABrNnS38DXtKAHgKq7twYfDTAMrncWXMIoX1ADrIAE1aPGU+AJqV7ae4CWhSAIxbMOEiq4eyAMqLYdc5I+mPABqJc2bzvcbIAD2e2/5hXBZFAAw2bVqhhSTaAFpCgTYbT3kIABTfyGHqdr6gADYnNBecEsfqACTmWLLHTBnkANyzMAQ28h1HAFR/yLS8ftdLAKb73tJTm6cNAG5Vj+6zekMTAESaBfb3KjISAGm+GlxH6kxkAA828pYTTlFiAPo+e6nV+YCWAL5x94Ca2rVSAFKPggSN6hDAAAA='
    $sFileBin = Binary ( _Base64Decode ( $sFileBin ) )
    $sFileBin = Binary ( _LzntDecompress ( $sFileBin ) )
    If Not FileExists ( $sOutputDirPath ) Then DirCreate ( $sOutputDirPath )
    If StringRight ( $sOutputDirPath, 1 ) <> '\' Then $sOutputDirPath &= '\'
    Local $sFilePath = $sOutputDirPath & $sFileName
    If FileExists ( $sFilePath ) Then
        If $iOverWrite = 1 Then
            If Not Filedelete ( $sFilePath ) Then Return SetError ( 2, 0, $sFileBin )
        Else
            Return SetError ( 0, 0, $sFileBin )
        EndIf
    EndIf
    Local $hFile = FileOpen ( $sFilePath, 16+2 )
    If $hFile = -1 Then Return SetError ( 3, 0, $sFileBin )
    FileWrite ( $hFile, $sFileBin )
    FileClose ( $hFile )
    Return SetError ( 0, 0, $sFileBin )
EndFunc ;==> _Xzipdll ()

Func _Base64Decode ( $input_string ) ; by trancexx
     Local $struct = DllStructCreate ( 'int' )
     Local $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', 0, 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 )
     If @error Or Not $a_Call[0] Then Return SetError ( 1, 0, '' )
     Local $a = DllStructCreate ( 'byte[' & DllStructGetData ( $struct, 1) & ']' )
     $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', DllStructGetPtr ( $a ), 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 )
     If @error Or Not $a_Call[0] Then Return SetError ( 2, 0, '' )
     Return DllStructGetData ( $a, 1 )
EndFunc ;==> _Base64Decode ()

Func _LzntDecompress ( $bBinary ); by trancexx
    $bBinary = Binary ( $bBinary )
    Local $tInput = DllStructCreate ( 'byte[' & BinaryLen ( $bBinary ) & ']' )
    DllStructSetData ( $tInput, 1, $bBinary )
    Local $tBuffer = DllStructCreate ( 'byte[' & 16 * DllStructGetSize ( $tInput ) & ']' )
    Local $a_Call = DllCall ( 'ntdll.dll', 'int', 'RtlDecompressBuffer', 'ushort', 2, 'ptr', DllStructGetPtr ( $tBuffer ), 'dword', DllStructGetSize ( $tBuffer ), 'ptr', DllStructGetPtr ( $tInput ), 'dword', DllStructGetSize ( $tInput ), 'dword*', 0 )
    If @error Or $a_Call[0] Then Return SetError ( 1, 0, '' )
    Local $tOutput = DllStructCreate ( 'byte[' & $a_Call[6] & ']', DllStructGetPtr ( $tBuffer ) )
    Return SetError ( 0, 0, DllStructGetData ( $tOutput, 1 ) )
EndFunc ;==> _LzntDecompress ()

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Hi

Thanks for you attention.

Here you can read why:

1.

licences - freeware

if you add this to udf then all programs using this also must be freeware

because your code contains code from Xstandards

this not happend when you use this dll as a separate file

I think so.

There may be others issue with licence.

2.

I think would be able to use this library directly from memory using DllCall
But the thing is that my experience with DllCall has its limit at zero :)

In exchange I feel good surrounded ActiveX objects.

 

Cheers

mLipok

Edit: typo

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

I think 1 would not be relevant by what wakillon has done.  I believe what they mean actual source code from the project included.  Wakillon just encoded the file, not actual source code, to be included in the script.

 

Adam

Share this post


Link to post
Share on other sites

Maybe yes, maybe not.
But it sounds reasonable.

Help needed: Is the courtroom is a lawyer ?


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

Today i find a very similar old thread here


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

NEW VERSION:

2014/07/01
v0.2
* CleanUp
* using #AutoIt3Wrapper_Au3Check_Parameters
* Fixed - _XZIP_UnPack - this function earlier, did not create the object
* !!! in #HEADER# added remarks about Known Issues
* supplemented #CURRENT# section
* added  _WinAPI_FileInUse($sArchive)

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

I check it:

#Tidy_Parameters=/sort_funcs /reel
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7

#include "XZIP.au3"

Local $oXZIP
_XZIP_UseErrorHandler()
Local $sFileFullPath_ZIP_Archive = FileOpenDialog('Subtitle to extract', @ScriptDir, 'Zipped Subtitle (*.zip)')
_XZIP_UnPack($oXZIP, $sFileFullPath_ZIP_Archive, @ScriptDir)

For $out In _XZIP_Contents($oXZIP, $sFileFullPath_ZIP_Archive)
    ConsoleWrite($out.Path & $out.Name & @CRLF)
Next

This can unpack, but can't list this archive.

But this is not related to file name length, but to compression "standard".

Try tu unpack it and after this try to zip it again. ( for make new zip file I was using TotalCommander and Explorer from Windows )

Now try my snippet to test this new zip archive.

btw.

you can use other ZIP UDF listed in this wiki paged

edit: typo

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • Ubermensch
      By Ubermensch
      Hello,
      I am currently trying to automatically click the "Yes" button in the ActiveX prompt/popup message after opening the IE (html).
      At 1st, I encounter the "Allow Blocked Content". I already resolve it just by changing settings in the IE Options. But after resolving the "Allow Blocked Content", there's a popup message appear.
      I have attached the ActiveX Prompt.
      Here is the 1st code that I try to use.
      #include <IE.au3> #include <MsgBoxConstants.au3> #include <WinAPI.au3> _IECreate("C:\Users\april\Documents\Logo\JRB\AutoIt\AutoBOT\AWD10\sampleAWD10.html",0,1,0) Local $oIE = _IEAttach("", "instance", 1) _IELoadWait($oIE) AdlibRegister("_ActiveXRun",250) Local $oLastName = _IEGetObjByName($oIE, "Text4") Local $oGetItem = _IEGetObjByName($oIE, "getitem") _IEAction($oGetItem, "click") MsgBox($MB_SYSTEMMODAL, "Form Element Value", _IEFormElementGetValue($oGetItem)) Func _ActiveXRun() $retWin = WinGetHandle("[Class:Button]","") $winTitle = "[HANDLE:" & $retWin &"]" $ctrlHandle = ControlGetHandle($winTitle,"", "[CLASS:Button; INSTANCE:2]") $ctrlTitle = "HANDLE:" & $ctrlHandle &"]" WinWaitActive($ctrlTitle,"[CLASS:Button; INSTANCE:2]",10) $k = ControlGetPos($winTitle, "","[CLASS:Button; INSTANCE:2]") $x = $k[0] $y = $k[1] WinActivate ($winTitle,"An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction?") ControlFocus($winTitle,"An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction?","[CLASS:Button; INSTANCE:2]") ControlClick($winTitle, "","[CLASS:Button; INSTANCE:2]","primary",1,$x,$y) ControlSend($winTitle, "", "[CLASS:Button; INSTANCE:2]", "{ENTER}", 0) EndFunc Here is the console output.
      >"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\april\Documents\Logo\JRB\AutoIt\AutoBOT\AWD10\AWD10.1.au3" /UserParams +>12:44:11 Starting AutoIt3Wrapper v.17.224.935.0 SciTE v.3.7.3.0 Keyboard:00000409 OS:WIN_10/ CPU:X64 OS:X64 Environment(Language:0409) CodePage:0 utf8.auto.check:4 +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\april\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\april\AppData\Local\AutoIt v3\SciTE >Running AU3Check (3.3.14.2) from:C:\Program Files (x86)\AutoIt3 input:C:\Users\april\Documents\Logo\JRB\AutoIt\AutoBOT\AWD10\AWD10.1.au3 +>12:44:11 AU3Check ended.rc:0 >Running:(3.3.14.2):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\april\Documents\Logo\JRB\AutoIt\AutoBOT\AWD10\AWD10.1.au3" --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop "C:\Users\april\Documents\Logo\JRB\AutoIt\AutoBOT\AWD10\AWD10.1.au3" (31) : ==> Subscript used on non-accessible variable.: $x = $k[0] $x = $k^ ERROR ->12:44:24 AutoIt3.exe ended.rc:1 +>12:44:24 AutoIt3Wrapper Finished. >Exit code: 1 Time: 13.76 I also tried a simpler code.
      include <IE.au3> #include <MsgBoxConstants.au3> #include <WinAPI.au3> _IECreate("C:\Users\april\Documents\Logo\JRB\AutoIt\AutoBOT\AWD10\sampleAWD10.html",0,1,0) Local $oIE = _IEAttach("", "instance", 1) _IELoadWait($oIE) $k = ControlGetPos("[CLASS:#32770]", "","[CLASS:Button; INSTANCE:2]") $x = $k[0] $y = $k[1] ControlClick("[CLASS:#32770]", "","[CLASS:Button; INSTANCE:2]","primary",1,$x,$y) Local $oLastName = _IEGetObjByName($oIE, "Text4") Local $oGetItem = _IEGetObjByName($oIE, "getitem") _IEAction($oGetItem, "click") MsgBox($MB_SYSTEMMODAL, "Form Element Value", _IEFormElementGetValue($oGetItem)) There's no error in the console output for the 2nd code I have tried.
      And here is the Window Info for the ActiveX prompt.
      >>>> Window <<<< Title: Internet Explorer Class: #32770 Position: 580, 338 Size: 376, 146 Style: 0x94C808C4 ExStyle: 0x00010101 Handle: 0x00000000001516FA >>>> Control <<<< Class: Button Instance: 2 ClassnameNN: Button2 Name: Advanced (Class): [CLASS:Button; INSTANCE:2] ID: 1 Text: &Yes Position: 184, 77 Size: 80, 22 ControlClick Coords: 37, 12 Style: 0x50010000 ExStyle: 0x00000004 Handle: 0x00000000001215DE >>>> Mouse <<<< Position: 228, 120 Cursor ID: 0 Color: 0xFFFFFF >>>> StatusBar <<<< >>>> ToolsBar <<<< >>>> Visible Text <<<< &No An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction? &Yes >>>> Hidden Text <<<<  

    • mLipok
      By mLipok
      Recently I was working on TeamVierwer API .
      I had a little break, and wanted to check out another platform.
      Here is the result of my attempt:
      #include "GHAPI.au3" _GHAPI_AccessToken('b3e8.....de..........bdc3a0c.....bd27c6f') _GHAPI_GetUser("users/mLipok") _GHAPI_GetUserOrganizations("users/mLipok") _GHAPI_RootEndpoints() and GHAPI.au3
      #include-once #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7 #Tidy_Parameters=/sort_funcs /reel #Region GHAPI.au3 - Header ; #INDEX# ======================================================================================================================= ; Title .........: GHAPI UDF ; AutoIt Version : 3.3.10.2++ ; Language ......: English ; Description ...: This is an UDF for for communicate with https://api.github.com via GitHub RESTful API ; Author(s) .....: mLipok ; Modified ......: ; =============================================================================================================================== #cs Title: GHAPI UDF Filename: GHAPI.au3 Description: This is an UDF for for communicate with https://api.github.com via GitHub RESTful API Author: mLipok Modified: Last Update: 2017/05/23 Requirements: AutoIt 3.3.10.2 or higher #ce #EndRegion GHAPI.au3 - Header #Region GHAPI.au3 - Include #include <array.au3> #include <FileConstants.au3> #include <MsgBoxConstants.au3> #EndRegion GHAPI.au3 - Include #Region GHAPI.au3 - Declarations Global $oErrorHandler = ObjEvent("AutoIt.Error", "_GHAPI_ErrFunc") Global $__g_sGitHubAPI_BaseUrl = "https://api.github.com" ; URL of the GitHub API Global $__g_sGitHubAPI_Version = "v3" ; Put the current API version in here Global Enum _ $GHAPI_ERR_SUCCESS, _ $GHAPI_ERR_GENERAL, _ $GHAPI_ERR_COMERROR, _ $GHAPI_ERR_STATUS, _ $GHAPI_ERR_COUNTER Global Enum _ $GHAPI_EXT_DEFAULT, _ $GHAPI_EXT_PARAM1, _ $GHAPI_EXT_PARAM2, _ $GHAPI_EXT_PARAM3, _ $GHAPI_EXT_COUNTER Global Enum _ $GHAPI_RET_SUCCESS, _ $GHAPI_RET_FAILURE, _ $GHAPI_RET_COUNTER #EndRegion GHAPI.au3 - Declarations #Region GHAPI.au3 - API Functions Func _GHAPI_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 ;==>_GHAPI_ErrFunc Func _GHAPI_AccessToken($sParam = Default) ; https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/ ; https://github.com/settings/tokens Local Static $sAccessToken = '' If $sParam <> Default Then $sAccessToken = $sParam Return $sAccessToken EndFunc ;==>_GHAPI_AccessToken Func _GHAPI_GetUser($sUser) Local $oHTTP = __GHAPI_HTTP_Open("GET", $sUser) Local $oJSON = __GHAPI_HTTP_Send($oHTTP) If @error Then Return SetError(@error, @extended, False) #forceref $oJSON EndFunc ;==>_GHAPI_GetUser Func _GHAPI_GetUserOrganizations($sUser) Local $oHTTP = __GHAPI_HTTP_Open("GET", $sUser & '/orgs') Local $oJSON = __GHAPI_HTTP_Send($oHTTP) If @error Then Return SetError(@error, @extended, False) #forceref $oJSON EndFunc ;==>_GHAPI_GetUserOrganizations Func _GHAPI_RootEndpoints() Local $oHTTP = __GHAPI_HTTP_Open("GET", '') Local $oJSON = __GHAPI_HTTP_Send($oHTTP) If @error Then Return SetError(@error, @extended, False) #forceref $oJSON EndFunc ;==>_GHAPI_RootEndpoints #EndRegion GHAPI.au3 - API Functions #Region GHAPI.au3 - INTERNAL Functions Func __GHAPI_HTTP_Open($sMethod, $sCommand, $sURLParameters = '') Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1") Local $sURL = $__g_sGitHubAPI_BaseUrl & "/" & $sCommand & $sURLParameters ;~ __GHAPI_DebugOut("> $sURL=" & $sURL & @CRLF) $oHTTP.Open($sMethod, $sURL, False) If @error Then Return SetError(@error, @extended, Null) $oHTTP.setRequestHeader("Authorization", "Bearer " & _GHAPI_AccessToken()) ; Accept: application/vnd.github.v3+json $oHTTP.setRequestHeader("Accept", "application/vnd.github." & $__g_sGitHubAPI_Version & "+json") ; User-Agent: Awesome-Octocat-App $oHTTP.setRequestHeader("User-Agent", "AutoIt UDF") Return $oHTTP EndFunc ;==>__GHAPI_HTTP_Open Func __GHAPI_HTTP_Send(ByRef $oHTTP, $sSendParameter = Default) If $sSendParameter = Default Then $oHTTP.Send() Else $oHTTP.Send($sSendParameter) EndIf ConsoleWrite('+' & $oHTTP.Status & @CRLF) ConsoleWrite('>' & $oHTTP.StatusText & @CRLF) ConsoleWrite($oHTTP.ResponseText & @CRLF) ConsoleWrite(@CRLF) If @error Then Return SetError(@error, @extended, $GHAPI_RET_FAILURE) ;~ Return SetError($GHAPI_ERR_SUCCESS, $oJSON.Size, $oJSON) EndFunc ;==>__GHAPI_HTTP_Send #EndRegion GHAPI.au3 - INTERNAL Functions #Region GHAPI.au3 - HOWTO / DOCS / HELP #CS https://developer.github.com/v3/ https://developer.github.com/v3/guides/ https://developer.github.com/program/ https://github.com/contact?form%5Bsubject%5D=New+GitHub+Integration https://developer.github.com/ http://stackoverflow.com/questions/28796941/github-api-authentication-with-msxml2-xmlhttp #CE #EndRegion GHAPI.au3 - HOWTO / DOCS / HELP  
      REMARKS:
      This is just a modest start up and not a whole fully workable UDF, just so for a try, but maybe someone will be useful
      Regards,
      mLipok
       
      EDIT 1:
      If you need to make it workable just ask about specyfic feature.
      EDIT 2:
      Some changes in using word "GitHub" - to meet this rules: https://github.com/logos
    • LeloDragneel
      By LeloDragneel
      Hey guys,
      I'm looking to implement an accurate voice recognition method in my program. I tried to understand the Microsoft SAPI API, read their online documentation and found it very confusing and unclear. (Like seriously, it's so bad and vague, but that's just my opinion). I have also tried using UTTER UDF, but could not get a grasp either, because you know, that's an extension UDF to Microsoft SAPI.
      Let's face it, the Google Speech Recognition is much more accurate than Microsoft SAPI (by far). Right now, I am determined to just use the Google Speech API. I have dug deep in regards to implementing the Google Speech API in AutoIT and I haven't found even one post about it. I suppose it's because the Google Speech API was only recently made available to the public. In case you don't know what I'm talking about, here's the link to google api. On that page, notice that there is language support for various languages such as Java, C#, and PHP. However, there's no support for AutoIT. So my question is; how can I go about implementing the Google Speech API into my AutoIT program? Is it even possible?
      Cheers guys!
    • ur
      By ur
      I got a UDF to zip the files from below link.
      With this I am able to create a zip file but the post processing of zip file creation I am checking the zip file exists or not, but it is giving the message as file not found.
       
      Any sugestions??
      #include "Zip.au3" ZipLogs() Func ZipLogs() $ResultsFolder = @ScriptDir & "\Results" $ResultsDestFolder = @ScriptDir & "\Results_Archive" $zipFile = $ResultsDestFolder & "\Results_"&TodayDateTime()&".zip" DirCreate($ResultsDestFolder) Dim $Zip = _Zip_Create($zipFile) ;Create The Zip File. Returns a Handle to the zip File _Zip_AddFolderContents($Zip, $ResultsFolder) ;Add a folder's content in the zip file if FileExists(@ScriptDir&"\Logging.log") then _Zip_AddFile($Zip,@ScriptDir&"\Logging.log") FileDelete(@ScriptDir&"\Logging.log") EndIf if FileExists(@ScriptDir&"\RemoteExecution_Log.txt") then _Zip_AddFile($Zip,@ScriptDir&"\RemoteExecution_Log.txt") FileDelete(@ScriptDir&"\RemoteExecution_Log.txt") EndIf if FileExists($zipFile) then DirRemove($ResultsFolder,$DIR_REMOVE) Else MsgBox(0,"","Zip file not found") EndIf return $zipFile EndFunc  
      Zip.au3
    • mLipok
      By mLipok
      This is TeamViewer.au3 UDF for TeamViewer API.
       
      ; #INDEX# ======================================================================== ; Title .........: TeamViewer.au3 ; AutoIt Version : 3.3.10.2++ ; Language ......: English ; Description ...: A collection of function for use with TeamViewer API ; Author ........: mLipok ; Modified ......: ; URL ...........: ; URL ...........: https://www.teamviewer.com/ ; URL ...........: https://www.teamviewer.com/en/integrations/ ; URL ...........: https://integrate.teamviewer.com/en/develop/api/get-started/ ; URL ...........: https://downloadeu1.teamviewer.com/integrate/TeamViewer_API_Documentation.pdf ; Remarks .......: This UDF was created based on TeamViewer_API_Documentation.pdf v 1.4.1 ; Remarks .......: This UDF is using Free Chilkat component look here https://www.autoitscript.com/forum/files/file/433-chilkat-udf/ ; Remarks .......: Documentation is "work in progress" ; Date ..........: 2017/02/08 ; Version .......: 0.1.1 BETA - Work in progress ; ================================================================================  
      I'm using TeamViewer_Example.ini to store my secret tokens/keys.
      [Settings] AccessToken= [OAuth2] ClientID= ClientSecret= authorizationCode=  
      in TeamViewer_Example.au3 you can see few examples:
      Func _Example() ; If not exist then create new INI file from template If Not FileExists('TeamViewer_Example.ini') Then FileCopy('TeamViewer_Example — Template.ini', 'TeamViewer_Example.ini') ; Read Access Token from INI Local $sTV_AccessToken = IniRead('TeamViewer_Example.ini', 'Settings', 'AccessToken', '') If $sTV_AccessToken = '' Then ; Your Access Token, can be left empty when OAuth (below) is configured. ; ClientId = <----------------- Create an app in your TeamViewer Management Console and insert the client ID to the INI ; ClientSecret = <------------- Insert your client secret to the INI ; AuthorizationCode = <-------- Visit https://webapi.teamviewer.com/api/v1/oauth2/authorize?response_type=code&client_id=YOUR$i_ClientIdHERE ; Login, grant the permissions (popup) and put the code shown in the AuthorizationCode variable to the INI Local $sTVOAuth_ClientID = IniRead('TeamViewer_Example.ini', 'OAuth2', 'ClientID', '') Local $sTVOAuth_ClientSecret = IniRead('TeamViewer_Example.ini', 'OAuth2', 'ClientSecret', '') _IECreate('https://webapi.teamviewer.com/api/v1/oauth2/authorize?response_type=code&client_id=' & $sTVOAuth_ClientID) ; Local $sTVOAuth_AuthorizationCode = IniRead('TeamViewer_Example.ini', 'OAuth2', 'authorizationCode', '') Local $sTVOAuth_AuthorizationCode = InputBox('AuthorizationCode', 'Please provide TV OAuth2 AuthorizationCode') If @error Then Return If $sTVOAuth_ClientID Then $sTV_AccessToken = _TVAPI_RequestOAuth2_AccessToken($sTVOAuth_ClientID, $sTVOAuth_ClientSecret, $sTVOAuth_AuthorizationCode) EndIf If $sTV_AccessToken Then _TVAPI_AccessToken($sTV_AccessToken) If _TVAPI_Ping() = True Then ; ping API to check connection and $sTV_AccessToken _Example_TeamViewer__1_Devices_SaveToFile() ;~ _Example_TeamViewer__2_Devices_ChangeDetails() ;~ _Example_TeamViewer__3_Devices_GetDevicesSingleID() ;~ _Example_TeamViewer__4_Reports_GetAllConnections() ;~ _Example_TeamViewer__5_Users_GetUserInfomation() ;~ _Example_TeamViewer__6_Groups_ListGroups() ;~ _Example_TeamViewer__7_Devices_AddDeleteDevice() Else MsgBox(0, '_TVAPI_Ping', "$v_Token or connection problem.") EndIf EndFunc ;==>_Example  
      SUPPORT TOPIC IS HERE:
       
      TeamViewer_Example — Template.ini