Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand

Downloads:

875

Downloads of v 7.7.0:

347

Last Update:

02 Mar 2022

Package Maintainer(s):

Software Author(s):

  • LASCAR Electronics Ltd

Tags:

easylog usb free

EasyLog USB

  • 1
  • 2
  • 3

7.7.0 | Updated: 02 Mar 2022

Downloads:

875

Downloads of v 7.7.0:

347

Maintainer(s):

Software Author(s):

  • LASCAR Electronics Ltd

Tags:

easylog usb free

EasyLog USB 7.7.0

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests


Validation Testing Passed


Verification Testing Passed

Details

Scan Testing Successful:

No detections found in any package files

Details
Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install EasyLog USB, run the following command from the command line or from PowerShell:

>

To upgrade EasyLog USB, run the following command from the command line or from PowerShell:

>

To uninstall EasyLog USB, run the following command from the command line or from PowerShell:

>

Deployment Method:

NOTE

This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to https://community.chocolatey.org/api/v2/)


2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade easylogusb -y --source="'INTERNAL REPO URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade easylogusb -y --source="'INTERNAL REPO URL'" 
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Install easylogusb
  win_chocolatey:
    name: easylogusb
    version: '7.7.0'
    source: INTERNAL REPO URL
    state: present

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.


chocolatey_package 'easylogusb' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '7.7.0'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


cChocoPackageInstaller easylogusb
{
    Name     = "easylogusb"
    Version  = "7.7.0"
    Source   = "INTERNAL REPO URL"
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'easylogusb':
  ensure   => '7.7.0',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

NOTE

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

Package Approved

This package was approved by moderator Windos on 30 Mar 2022.

Description

The core of Lascar's USB data logging solution is the free software supplied with each USB data logger.
Using a wizard format to guide the user through setup of the data logger and subsequent download of collected data,
the software puts the 'easy' into EasyLog.


tools\chocolateyinstall.ps1
$ErrorActionPreference = 'Stop';

$packageName = 'EasyLogUSB'
$toolsDir    = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$url         = 'https://s3.amazonaws.com/lascar_downloads/EasyLogUSB+Installer.exe'
$checkSum    = '99c93812f4999795b7500e309ea753b0774324314e7a4df3afebf5cfc340fc88'
$workSpace   = Join-Path $env:TEMP "$packageName.$env:chocolateyPackageVersion"

$webFileArgs = @{
  packageName         = $packageName
  fileFullPath        = Join-Path $WorkSpace "$packageName+Installer.exe"
  url                 = $url
  checksum            = $checkSum
  checksumType        = 'sha256'
  getOriginalFileName = $true
}

$packedInstaller = Get-ChocolateyWebFile @webFileArgs

# Extract the .msi EasyLogUSB+Installer.exe /s /x /b"." /v"/qn"
#
$statement = '/s /x /b"' + $workSpace + '" /v"/qn"'
Start-ChocolateyProcessAsAdmin -Statements "$statement" -ExeToRun "$packedInstaller" -ValidExitCodes @(0,1605)

$installArgs = @{
  packageName    = $packageName
  file           = Join-Path $WorkSpace "EasyLog USB.msi"
  fileType       = 'MSI'
  silentArgs     = "/qb /norestart /l*v `"$($env:TEMP)\$($packageName).$($env:chocolateyPackageVersion).MsiInstall.log`""
  validExitCodes = @(0, 3010, 1641)
}

Install-ChocolateyInstallPackage @installArgs

# silent install of EasyLog USB Device Driver requires AutoIT
#
$autoitExe = 'AutoIt3.exe'
$autoitFile = Join-Path $toolsDir 'LoggingEasyLogUSB.au3'
$fileFullPath = Join-Path $WorkSpace $fullPackage
Write-Debug "$autoitFile"
Write-Debug "$fileFullPath"
$autoitProc = Start-Process -FilePath $autoitExe -ArgumentList "$autoitFile" -PassThru
$autoitId = $autoitProc.Id
Write-Debug "$autoitExe start time:`t$($autoitProc.StartTime.ToShortTimeString())"
Write-Debug "Process ID: `t$autoitId"
tools\EasyLogUSB.au3
#include <Constants.au3>

Func Install()
   ConsoleWrite("Install EasyLog" & @LF)
   Local $handle = WinGetHandle("EasyLog USB Device Driver Installer")
   ConsoleWrite("Install EasyLog2 " & $handle & @LF)
   Local $click = ControlClick($handle, "", "[CLASS:Button; INSTANCE:1]", "Left", 1)
   ConsoleWrite("Install EasyLog3 " & $click & @LF)
   Local $close = WinClose($handle)
   ConsoleWrite("Closing " & $close & @LF)
EndFunc

#RequireAdmin
Install()
ConsoleWrite("End of Install!" & @LF)
tools\log4a.au3
#include-once

; #INDEX# =======================================================================================================================
; Title .........: log4a
; AutoIt Version : 3.2
; Language ......: English
; Description ...: Functions that assist with logging.
; Author(s) .....: Michael Mims (zorphnog)
; ===============================================================================================================================

; #CURRENT# =====================================================================================================================
;_log4a_Debug
;_log4a_Error
;_log4a_Fatal
;_log4a_Info
;_log4a_Message
;_log4a_SetCompiledOutput
;_log4a_SetEnable
;_log4a_SetErrorStream
;_log4a_SetFormat
;_log4a_SetLogFile
;_log4a_SetMaxLevel
;_log4a_SetMinLevel
;_log4a_SetOutput
;_log4a_Trace
;_log4a_Warn
; ===============================================================================================================================

; Logging Enumerations
Global Enum $LOG4A_OUTPUT_CONSOLE,$LOG4A_OUTPUT_FILE,$LOG4A_OUTPUT_BOTH
Global Enum $LOG4A_LEVEL_TRACE,$LOG4A_LEVEL_DEBUG,$LOG4A_LEVEL_INFO, _
	$LOG4A_LEVEL_WARN,$LOG4A_LEVEL_ERROR,$LOG4A_LEVEL_FATAL

; Internal variables
Global Const $__aLog4aLevels[6] = ["Trace","Debug","Info","Warning","Error","Fatal"]
Global Const $__LOG4A_VERSION = "0.4"

; Internal - Default configuration options
Global $__LOG4A_LOG_FILE = StringFormat("%s.log", @ScriptFullPath) _
	 , $__LOG4A_ENABLED = False _
	 , $__LOG4A_WRITE_ERRSTREAM = True _
	 , $__LOG4A_OUTPUT = $LOG4A_OUTPUT_CONSOLE _
	 , $__LOG4A_COMPILED_OUTPUT = $LOG4A_OUTPUT_FILE _
	 , $__LOG4A_FORMAT = "${date} ${level} ${message}" _
	 , $__LOG4A_LEVEL_MIN = $LOG4A_LEVEL_TRACE _
	 , $__LOG4A_LEVEL_MAX = $LOG4A_LEVEL_FATAL


#region Configuration Functions

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetCompiledOutput
; Description ...: Sets the logging output type for the compiled version of the script (Default: $LOG4A_OUTPUT_FILE)
; Syntax.........: _log4a_SetCompiledOutput($iOutput)
; Parameters ....: $iOutput - An integer specifying an output enumeration value. Must be one of the following:
;                  |$LOG4A_OUTPUT_CONSOLE = Direct output to the console (must compile with #AutoIt3Wrapper_Change2CUI=y directive).
;                  |$LOG4A_OUTPUT_FILE = Direct output to the log file.
;                  |$LOG4A_OUTPUT_BOTH = Direct output to both the console and the log file.
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
;                  |1 = Invalid parameter
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetCompiledOutput($iOutput)
	If $iOutput < 0 Or $iOutput > $LOG4A_OUTPUT_BOTH Then Return SetError(1)
	$__LOG4A_COMPILED_OUTPUT = $iOutput
EndFunc   ;==>_log4a_SetCompiledOutput

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetEnable
; Description ...: Enables or disables logging messages (Default: Disabled).
; Syntax.........: _log4a_SetEnable($bEnable)
; Parameters ....: $bEnable - A boolean specifying whether logging is enabled (true) or disabled (false).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
;                  |1 = Invalid parameter
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetEnable($bEnable = True)
	If Not IsBool($bEnable) Then Return SetError(1)
	$__LOG4A_ENABLED = $bEnable
EndFunc   ;==>_log4a_SetEnable

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetErrorStream
; Description ...: Enables or disables logging of the standard error stream (Default: Enabled).
; Syntax.........: _log4a_SetErrorStream($bEnable)
; Parameters ....: $bEnable - A boolean specifying whether error stream logging is enabled (true) or disabled (false).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
;                  |1 = Invalid parameter
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetErrorStream($bEnable = True)
	If Not IsBool($bEnable) Then Return SetError(1)
	$__LOG4A_WRITE_ERRSTREAM = $bEnable
EndFunc   ;==>_log4a_SetErrorStream

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetFormat
; Description ...: Configures the format of logging messages (Default: "${date} ${level} ${message}").
; Syntax.........: _log4a_SetFormat($sFormat)
; Parameters ....: $sFormat - A string representing the log message format. Formats can include the following macros:
;                  |${date} = Long date (i.e. MM/DD/YYYY HH:MM:SS)
;                  |${host} = Hostname of local machine
;                  |${level} = The current log level
;                  |${message} = The log message
;                  |${newline} = Insert a newline
;                  |${shortdate} = Short date (i.e. MM/DD/YYYY)
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetFormat($sFormat)
	$__LOG4A_FORMAT = $sFormat
EndFunc   ;==>_log4a_SetFormat

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetLogFile
; Description ...: Sets the path of the log file (Default: "<ScriptFullPath>.log").
; Syntax.........: _log4a_SetLogFile($sFile)
; Parameters ....: $sFile - A string specifying the path of the log file.
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetLogFile($sFile)
	$__LOG4A_LOG_FILE = $sFile
EndFunc   ;==>_log4a_SetLogFile

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetMaxLevel
; Description ...: Configures the maximum log level to process messages (Default: $LOG4A_LEVEL_FATAL).
; Syntax.........: _log4a_SetMaxLevel($iLevel)
; Parameters ....: $iLevel - An integer specifying a level enumeration value. Must be one of the following:
;                  |$LOG4A_LEVEL_TRACE
;                  |$LOG4A_LEVEL_DEBUG
;                  |$LOG4A_LEVEL_INFO
;                  |$LOG4A_LEVEL_WARN
;                  |$LOG4A_LEVEL_ERROR
;                  |$LOG4A_LEVEL_FATAL
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
;                  |1 = Invalid parameter
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetMaxLevel($iLevel)
	If $iLevel < 0 Or $iLevel > $LOG4A_LEVEL_FATAL Then Return SetError(1)
	$__LOG4A_LEVEL_MAX = $iLevel
EndFunc   ;==>_log4a_SetMaxLevel

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetMinLevel
; Description ...: Configures the minimum log level to process messages (Default: $LOG4A_LEVEL_TRACE).
; Syntax.........: _log4a_SetMinLevel($iLevel)
; Parameters ....: $iLevel - An integer specifying a level enumeration value. Must be one of the following:
;                  |$LOG4A_LEVEL_TRACE
;                  |$LOG4A_LEVEL_DEBUG
;                  |$LOG4A_LEVEL_INFO
;                  |$LOG4A_LEVEL_WARN
;                  |$LOG4A_LEVEL_ERROR
;                  |$LOG4A_LEVEL_FATAL
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
;                  |1 = Invalid parameter
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetMinLevel($iLevel)
	If $iLevel < 0 Or $iLevel > $LOG4A_LEVEL_FATAL Then Return SetError(1)
	$__LOG4A_LEVEL_MIN = $iLevel
EndFunc   ;==>_log4a_SetMinLevel

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_SetOutput
; Description ...: Sets the logging output type for the non-compiled version of the script (Default: $LOG4A_OUTPUT_CONSOLE)
; Syntax.........: _log4a_SetOutput($iOutput)
; Parameters ....: $iOutput - An integer specifying an output enumeration value. Must be one of the following:
;                  |$LOG4A_OUTPUT_CONSOLE = Direct output to the console (SciTE output window if run in SciTE).
;                  |$LOG4A_OUTPUT_FILE = Direct output to the log file.
;                  |$LOG4A_OUTPUT_BOTH = Direct output to both the console and the log file.
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
;                  |1 = Invalid parameter
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_SetOutput($iOutput)
	If $iOutput < 0 Or $iOutput > $LOG4A_OUTPUT_BOTH Then Return SetError(1)
	$__LOG4A_OUTPUT = $iOutput
EndFunc   ;==>_log4a_SetOutput

#endregion Configuration Functions

#region Message Functions
; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_Message
; Description ...: Logs a message to the configured outputs.
; Syntax.........: _log4a_Message($sMessage, $eLevel, $bOverride)
; Parameters ....: $sMessage - A string containing the message to log.
;                  $eLevel - An integer specifying a level enumeration value. Must be one of the following:
;                  |$LOG4A_LEVEL_TRACE
;                  |$LOG4A_LEVEL_DEBUG
;                  |$LOG4A_LEVEL_INFO
;                  |$LOG4A_LEVEL_WARN
;                  |$LOG4A_LEVEL_ERROR
;                  |$LOG4A_LEVEL_FATAL
;                  $bOverride - A boolean specifying to override log filters. If true, messages will be logged regardless of
;                               enabled status or log level range (min/max values).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
;                  |1 = Invalid $eLevel parameter
;                  |2 = Level is out of range
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_Message($sMessage, $eLevel = $LOG4A_LEVEL_INFO, $bOverride = False)
	If Not $__LOG4A_ENABLED And Not $bOverride Then Return
	If $eLevel < $LOG4A_LEVEL_TRACE Or $eLevel > $LOG4A_LEVEL_FATAL Then Return SetError(1)
	If ($eLevel < $__LOG4A_LEVEL_MIN Or $eLevel > $__LOG4A_LEVEL_MAX) And Not $bOverride Then Return SetError(2)

	Local $bConsole = False, $bFile = False, $iMethod = $__LOG4A_OUTPUT
	If @Compiled Then $iMethod = $__LOG4A_COMPILED_OUTPUT
	Local $sLine = __log4a_FormatMessage($sMessage, $__aLog4aLevels[$eLevel])

	Switch $iMethod
		Case $LOG4A_OUTPUT_CONSOLE
			$bConsole = True
		Case $LOG4A_OUTPUT_FILE
			$bFile = True
		Case $LOG4A_OUTPUT_BOTH
			$bConsole = True
			$bFile = True
	EndSwitch

	If $eLevel >= $LOG4A_LEVEL_ERROR Then
		If $__LOG4A_WRITE_ERRSTREAM Then
			ConsoleWriteError($sLine)
		ElseIf $bConsole Then
			ConsoleWrite($sLine)
		EndIf
	ElseIf $bConsole Then
		ConsoleWrite($sLine)
	EndIf

	If $bFile Then
		FileWrite($__LOG4A_LOG_FILE, $sLine)
	EndIf
EndFunc   ;==>_log4a_Message

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_Trace
; Description ...: Logs a message at the trace level.
; Syntax.........: _log4a_Trace($sMessage, $bOverride)
; Parameters ....: $sMessage - A string containing the message to log.
;                  $bOverride - A boolean specifying to override log filters. If true, messages will be logged regardless of
;                               enabled status or log level range (min/max values).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_Trace($sMessage, $bOverride = False)
	_log4a_Message($sMessage, $LOG4A_LEVEL_TRACE, $bOverride)
EndFunc   ;==>_log4a_LogTrace

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_Debug
; Description ...: Logs a message at the debug level.
; Syntax.........: _log4a_Debug($sMessage, $bOverride)
; Parameters ....: $sMessage - A string containing the message to log.
;                  $bOverride - A boolean specifying to override log filters. If true, messages will be logged regardless of
;                               enabled status or log level range (min/max values).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_Debug($sMessage, $bOverride = False)
	_log4a_Message($sMessage, $LOG4A_LEVEL_DEBUG, $bOverride)
EndFunc   ;==>_log4a_LogDebug

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_Info
; Description ...: Logs a message at the info level.
; Syntax.........: _log4a_Info($sMessage, $bOverride)
; Parameters ....: $sMessage - A string containing the message to log.
;                  $bOverride - A boolean specifying to override log filters. If true, messages will be logged regardless of
;                               enabled status or log level range (min/max values).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_Info($sMessage, $bOverride = False)
	_log4a_Message($sMessage, $LOG4A_LEVEL_INFO, $bOverride)
EndFunc   ;==>_log4a_LogInfo

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_Warn
; Description ...: Logs a message at the warn level.
; Syntax.........: _log4a_Warn($sMessage, $bOverride)
; Parameters ....: $sMessage - A string containing the message to log.
;                  $bOverride - A boolean specifying to override log filters. If true, messages will be logged regardless of
;                               enabled status or log level range (min/max values).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_Warn($sMessage, $bOverride = False)
	_log4a_Message($sMessage, $LOG4A_LEVEL_WARN, $bOverride)
EndFunc   ;==>_log4a_LogWarning

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_Error
; Description ...: Logs a message at the error level.
; Syntax.........: _log4a_Error($sMessage, $bOverride)
; Parameters ....: $sMessage - A string containing the message to log.
;                  $bOverride - A boolean specifying to override log filters. If true, messages will be logged regardless of
;                               enabled status or log level range (min/max values).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_Error($sMessage, $bOverride = False)
	_log4a_Message($sMessage, $LOG4A_LEVEL_ERROR, $bOverride)
EndFunc   ;==>_log4a_LogError

; #FUNCTION# ====================================================================================================================
; Name...........: _log4a_Fatal
; Description ...: Logs a message at the fatal level.
; Syntax.........: _log4a_Fatal($sMessage, $bOverride)
; Parameters ....: $sMessage - A string containing the message to log.
;                  $bOverride - A boolean specifying to override log filters. If true, messages will be logged regardless of
;                               enabled status or log level range (min/max values).
; Return values .: Success - Returns 0
;                  Failure - Returns 0
;                  @Error  - 0 = No error.
; Author ........: Michael Mims (zorphnog)
; Modified.......:
; Remarks .......:
; ===============================================================================================================================
Func _log4a_Fatal($sMessage, $bOverride = False)
	_log4a_Message($sMessage, $LOG4A_LEVEL_FATAL, $bOverride)
EndFunc   ;==>_log4a_LogFatal

#endregion Message Functions

#region Internal Functions

Func __log4a_FormatMessage($sMessage, $sLevel)
	Local $sFormatted = $__LOG4A_FORMAT

	$sFormatted = StringReplace($sFormatted, "${date}", _
		StringFormat("%02d\\%02d\\%04d %02d:%02d:%02d", @MON, @MDAY, @YEAR, @HOUR, @MIN, @SEC))
	$sFormatted = StringReplace($sFormatted, "${host}", @ComputerName)
	$sFormatted = StringReplace($sFormatted, "${level}", $sLevel)
	$sFormatted = StringReplace($sFormatted, "${message}", $sMessage)
	$sFormatted = StringReplace($sFormatted, "${newline}", @CRLF)
	$sFormatted = StringReplace($sFormatted, "${shortdate}", _
		StringFormat("%02d\\%02d\\%04d", @MON, @MDAY, @YEAR))
	$sFormatted &= @CRLF

	Return $sFormatted
EndFunc   ;==>__log4a_FormatMessage

#endregion Internal Functions
tools\LoggingEasyLogUSB.au3
#AutoIt3Wrapper_Compression=3
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#AutoIt3Wrapper_Add_Constants=n
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#RequireAdmin

#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
#include 'log4a.au3'
#include 'WaitForControls.au3'

Const $TD_BTN_NEXT = '&Next >'
Const $TD_BTN_INSTALL = '&Install'
Const $TD_BTN_INSTALL2 = 'Install'
Const $TD_BTN_FINISH = '&Finish'
Const $TD_BTN_CANCEL = 'Cancel'
Const $TD_BTN_IAGREE = "I &accept the terms in the license agreement"
Const $TD_BTN_ALTFINISH = '&Finish'
Const $TD_BTN_ALLOW_ACCESS = '&Allow access'
Const $TD_BTN_REMOVE = '&Remove'
Const $TD_BTN_YES = '&Yes'
Const $TD_BTN_OK = 'OK'
Const $TD_BTN_TYPICAL = '&Typical'
Const $TD_EDIT_DATA = '99999'
Const $TD_TREE_NAME = 'Tree1'

Const $apptext = 'EasyLog USB Device Driver Installer'
Const $text = "EasyLog USB - InstallShield Wizard"
Const $class = "[CLASS:MsiDialogCloseClass]"
Const $stdClass = '[Class:#32770]'
Const $button1 = "[CLASS:Button; INSTANCE:1]"
Const $button2 = "[CLASS:Button; INSTANCE:2]"
Const $button3 = "[CLASS:Button; INSTANCE:3]"
Const $button4 = "[CLASS:Button; INSTANCE:4]"
Const $button5 = "[CLASS:Button; INSTANCE:5]"

#Region ;**** Logging ****
; Enable logging and don't write to stderr
_log4a_SetEnable()
; Write to stderr, set min level to warn, customize message format
_log4a_SetErrorStream()
_log4a_SetCompiledOutput($LOG4A_OUTPUT_FILE)
_log4a_SetMinLevel($LOG4A_LEVEL_DEBUG)
; If @compiled Then _log4a_SetMinLevel($LOG4A_LEVEL_WARN) ; Change the min level if the script is compiled
_log4a_SetFormat("${date} | ${host} | ${level} | ${message}")
#EndRegion ;**** Logging ****


Func Install()
    Local $handle = WinActivate($text)
    _log4a_Info($text & ' Handle :' & $handle)
    _log4a_Info('Begin Install()')
    #_checkClickCtrl($class, $text, $button1, $TD_BTN_NEXT, 0)
    #_checkClickCtrl($class, $text, $button3, $TD_BTN_IAGREE, 0)
    #_checkClickCtrl($class, $text, $button5, $TD_BTN_NEXT, 0)
    #_checkClickCtrl($class, $text, $button1, $TD_BTN_INSTALL, 0)
    #_checkClickCtrl($class, $text, $button1, $TD_BTN_FINISH, 0)

    $handle = WinActivate($apptext)
    _log4a_Info($apptext & ' Handle :' & $handle)
    Local $IsActive = WinActive($handle)

    If ($IsActive) Then
        ProcessClose("EL-USB Driver Setup.exe")
        Sleep(3000)
        ;~ Note that we could also look up the path from registry of the main installer here in case a custom install location was set on the first msi
        ;~ Also we could have just silent installed the first msi I think, lol, but, you need to learn.
        Run("C:\Program Files (x86)\EasyLog USB\EL-USB Driver Setup.exe")

        $handle = WinActivate($apptext)
        _log4a_Info($apptext & ' Handle :' & $handle)

        _checkClickCtrl($stdClass, $apptext, $button1, $TD_BTN_INSTALL2, 0)
        _checkClickCtrl($stdClass, 'Success', $button1, $TD_BTN_OK, 0)
    EndIf

    _log4a_Info('End Install()')

EndFunc   ;==>Install

Install()
tools\WaitForControls.au3
#include-once
#include <Timers.au3>
#include "log4a.au3"

; #FUNCTION# ====================================================================================================================
; Name ..........: _checkClickCtrl
; Description ...: Automatically wait for a control to exist. Forever or Limited
; Syntax ........: _checkClickCtrl($formclass, $text, $ctrl, $ctrltxt, $timeout, $delayafter
; Parameters ....: $formclass           - Form Class info.
;                  $text                - Windows text to match
;                  $ctrl                - Class of Copntrol
;                  $ctrltxt             - Text of the Control
;                  $timeout             - Timeout = 0 by default, millisecond timer
;                  $delayafter          - Time in milliseconds to delay after operation carried out
; Return values .: None
; Author ........: Earthshine
; Modified ......:
; Remarks .......:	Waits for each button indefinatly, unless you give it a timeout
;					Logger found here: https://www.autoitscript.com/forum/topic/156196-log4a-a-logging-udf/
; Related .......:
; Link ..........:
; Example(s) ....: 	_checkClickCtrl ('[CLASS:#32770]', 'ApplicationX - InstallShield Wizard', '[CLASS:Button; INSTANCE:1]', , '&Next >' 5000, 0)
; 				 	_checkClickCtrl($formclass, $text, $button2, $TD_BTN_REMOVE, 0, 0)
; 					_checkClickCtrl($formclass, $text, $button3, $TD_BTN_NEXT, 0, 500)
; 					_checkClickCtrl($formclass, $text, $button1, $TD_BTN_YES, 0, 0)
; 					_checkClickCtrl($formclass, $text, $button4, $TD_BTN_FINISH, 0, 0)
; ===============================================================================================================================
Func _checkClickCtrl($formclass, $text, $ctrl, $ctrltxt, $timeout = 0, $delayafter = 0)
	_log4a_Info("_checkClickCtrl():Begin")
	_log4a_Info("Searching for Formclass: " & $formclass)
	_log4a_Info("Searching for Text: " & $text)
	_log4a_Info("Searching for Control: " & $ctrl)
	_log4a_Info("Searching for Ctrl Txt: " & $ctrltxt)
	_log4a_Info("Timeout: " & $timeout)
	_log4a_Info("Time Delay (after click): " & $delayafter)
	Local $time_run = _Timer_Init()
	While (1)
		If WinExists($formclass) Then
			Local $hCtrl = ControlGetHandle($text, '', $ctrl)
			If $hCtrl Then
				If ($timeout > 0) Then
					_log4a_Info(_Timer_Diff($time_run))
					If (_Timer_Diff($time_run) > $timeout) Then
						_log4a_Info("ExitLoop:Timeout - " & $ctrl)
						ExitLoop
					EndIf
				EndIf
				Local $hCtrlHandle = ControlGetText($text, '', $ctrl)
				_log4a_Info("Control Text Search: " & $ctrltxt)
				_log4a_Info("Control Text Found: " & $hCtrlHandle)
				If ($hCtrlHandle == $ctrltxt) Then
					; we got the handle, so the button is there
					; now do whatever you need to do
					_log4a_Info("Found Formclass: " & $formclass)
					_log4a_Info("Found Text: " & $text)
					_log4a_Info("Found Control: " & $ctrl)
					_log4a_Info("Found Ctrl Txt: " & $ctrltxt)
					_log4a_Info("Timeout: " & $timeout)
					_log4a_Info("Time Delay (after click): " & $delayafter)
					_log4a_Info($ctrl)
					Local $return = ControlClick($formclass, '', $ctrl)
					If ($return) Then
						_log4a_Info('Control ' & $ctrl & ' return code success: ' & $return)
						If ($delayafter > 0) Then
							Sleep($delayafter)
						EndIf
					Else
						_log4a_Info('Control ' & $ctrl & ' return code error: ' & $return)
					EndIf
					_log4a_Info("ExitLoop:Normal - " & $ctrl)
					ExitLoop
				EndIf
			EndIf
		EndIf
	WEnd
	_log4a_Info("_checkClickCtrl():End")
EndFunc   ;==>_checkClickCtrl



Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
EasyLog USB 7.6.0 528 Thursday, May 30, 2019 Approved

Discussion for the EasyLog USB Package

Ground Rules:

  • This discussion is only about EasyLog USB and the EasyLog USB package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or EasyLog USB, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus