guinness Posted July 27, 2013 Share Posted July 27, 2013 (edited) I created a UDF-like example for validating a password. This is proof of concept and not a "fully featured" UDF. Take it apart, break it, request something better, your choice!expandcollapse popup#include <MsgBoxConstants.au3> #include <StringConstants.au3> ; Constants for the PasswordValid object Global Const $PASSWORDVALID_GUID = '501E91C9-58DC-4FA0-ABF8-212914D9EFDD', $PASSWORDVALID_FLAG_VALID = 0 Global Enum $PASSWORDVALID_CONSECUTIVE, $PASSWORDVALID_ID, $PASSWORDVALID_INTS, $PASSWORDVALID_LENGTH, $PASSWORDVALID_LOWERCASE, _ $PASSWORDVALID_SPACE, $PASSWORDVALID_SPECIAL, $PASSWORDVALID_UPPERCASE, $PASSWORDVALID_MAX ; Enumeration flags Global Enum Step * 2 $PASSWORDVALID_FLAG_CONSECUTIVE, _ $PASSWORDVALID_FLAG_INTS, _ $PASSWORDVALID_FLAG_LENGTH, _ $PASSWORDVALID_FLAG_LOWERCASE, _ $PASSWORDVALID_FLAG_SPACE, _ $PASSWORDVALID_FLAG_SPECIAL, _ $PASSWORDVALID_FLAG_UPPERCASE, _ $PASSWORDVALID_FLAG_UNKNOWN #cs > _PasswordValid => Create a password object > _PasswordValid_AllowConsecutive => Set to True/False to allow consecutive characters e.g. the S in Password. Default is True > _PasswordValid_AllowSpace => Set to True/False to allow spaces. Default is False > _PasswordValid_Ints => Set a value for the minimum number of integers. Default is 0 > _PasswordValid_Length => Set a value for the minimum number of characters. Default is 0 > _PasswordValid_Lowercase => Set a value for the minimum number of lowercase characters. Default is 0 > _PasswordValid_Special => Set a value for the minimum number of special characters (ASCII - (33-47, 58-64, 91-96, 123-126) see below). Default is 0 > _PasswordValid_Uppercase => Set a value for the minimum number of uppercase characters. Default is 0 > _PasswordValid_Validate => Check if a password matches the specs set @extended returns the reason as to why the password passed or failed. Use the following functions to determine the reason as to why > _PasswordValid_Error_IsConsecutive => The password failed due to consecutive characters > _PasswordValid_Error_IsInts => The password failed due to the minimum number of integers > _PasswordValid_Error_IsLength => The password failed due to the minimun length > _PasswordValid_Error_IsLowercase => The password failed due the minimum number of lowercase characters > _PasswordValid_Error_IsSpace => The password failed due to usage of spaces > _PasswordValid_Error_IsSpecial => The password failed due to the minimum number of special characters > _PasswordValid_Error_IsUnknown => The object was invalid > _PasswordValid_Error_IsUppercase => The password failed due to the minimum number of uppercase characters > _PasswordValid_Error_IsValid => The password was valid All functions require the object returned by _PasswordValid() to be passed as the first parameter & the second parameter to set the value Note: _PasswordValid() doesn't require any parameters to be passed & the second parameter of _PasswordValid_Validate() is the password to validate Passwords are case-sensitive, therefore Password is different to that of PasSword Special characters include: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ #ce Example() Func Example() ; Create a password object Local $hPassword = _PasswordValid() ; Assign the password object with allowing a minimum of 2 integers _PasswordValid_Ints($hPassword, 2) ; Assign the password object with allowing a minimum of 6 characters _PasswordValid_Length($hPassword, 6) ; Assign the password object with allowing a minimum of 2 lowercase characters _PasswordValid_Lowercase($hPassword, 2) ; Allow characters to follow after each other _PasswordValid_AllowConsecutive($hPassword, True) ; This password is set to fail, but it's to showcase the @extended return values Local Const $bIsValid = _PasswordValid_Validate($hPassword, '4u0') Local Const $iErrorFlags = @extended ConsoleWrite('The password 4u0 ' & ($bIsValid ? 'passed' : 'failed') & ' the validation. See below for more details.' & @CRLF) ; Custom function to output to SciTE's console of what exactly failed PasswordError($iErrorFlags) ; Display the result MsgBox($MB_SYSTEMMODAL, '', 'Is the password 4ut01It valid: ' & _PasswordValid_Validate($hPassword, '4ut01It')) ; Destroy the password object $hPassword = Null EndFunc ;==>Example ; An example of parsing the @extended flag to determine what exactly failed Func PasswordError($iFlags = @extended) If _PasswordValid_Error_IsValid($iFlags) Then ConsoleWrite('The password was valid.' & @CRLF) EndIf If _PasswordValid_Error_IsConsecutive($iFlags) Then ConsoleWrite('The password contained repeating characters e.g. S in Password.' & @CRLF) EndIf If _PasswordValid_Error_IsInts($iFlags) Then ConsoleWrite('The password didn''t contain the minimum number of digits.' & @CRLF) EndIf If _PasswordValid_Error_IsLength($iFlags) Then ConsoleWrite('The password didn''t match the miminum length.' & @CRLF) EndIf If _PasswordValid_Error_IsLowercase($iFlags) Then ConsoleWrite('The password didn''t contain the minimum number of lowercase characters.' & @CRLF) EndIf If _PasswordValid_Error_IsSpace($iFlags) Then ConsoleWrite('The password contained space(s).' & @CRLF) EndIf If _PasswordValid_Error_IsSpecial($iFlags) Then ConsoleWrite('The password didn''t contain the minimum number of special characters.' & @CRLF) EndIf If _PasswordValid_Error_IsUppercase($iFlags) Then ConsoleWrite('The password didn''t contain the minimum number of uppercase characters.' & @CRLF) EndIf If _PasswordValid_Error_IsUnknown($iFlags) Then ConsoleWrite('The password object wasn''t valid.' & @CRLF) EndIf Return True EndFunc ;==>PasswordError #Region PasswordValid UDF functions Func _PasswordValid() Local $aPasswordValid[$PASSWORDVALID_MAX] For $i = 0 To $PASSWORDVALID_MAX - 1 ; Set all fields to zero $aPasswordValid[$i] = 0 Next ; Set the GUID to validate that it's a valid API later on $aPasswordValid[$PASSWORDVALID_ID] = $PASSWORDVALID_GUID ; Set the default of "AllowConsecutive" to True _PasswordValid_AllowConsecutive($aPasswordValid, True) ; Set the default of "AllowSpace" to False _PasswordValid_AllowSpace($aPasswordValid, False) Return $aPasswordValid EndFunc ;==>_PasswordValid Func _PasswordValid_AllowConsecutive(ByRef $aPasswordValid, $bValue) Local $bReturn = False If __PasswordValid_IsAPI($aPasswordValid) And IsBool($bValue) Then $bReturn = True $aPasswordValid[$PASSWORDVALID_CONSECUTIVE] = $bValue EndIf Return $bReturn EndFunc ;==>_PasswordValid_AllowConsecutive Func _PasswordValid_AllowSpace(ByRef $aPasswordValid, $bValue) Local $bReturn = False If __PasswordValid_IsAPI($aPasswordValid) And IsBool($bValue) Then $bReturn = True $aPasswordValid[$PASSWORDVALID_SPACE] = $bValue EndIf Return $bReturn EndFunc ;==>_PasswordValid_AllowSpace Func _PasswordValid_Ints(ByRef $aPasswordValid, $iValue) Local $bReturn = False If __PasswordValid_IsAPI($aPasswordValid) And (IsInt($iValue) Or StringIsInt($iValue)) Then $bReturn = True $aPasswordValid[$PASSWORDVALID_INTS] = Int($iValue) EndIf Return $bReturn EndFunc ;==>_PasswordValid_Ints Func _PasswordValid_Length(ByRef $aPasswordValid, $iValue) Local $bReturn = False If __PasswordValid_IsAPI($aPasswordValid) And (IsInt($iValue) Or StringIsInt($iValue)) Then $bReturn = True $aPasswordValid[$PASSWORDVALID_LENGTH] = Int($iValue) EndIf Return $bReturn EndFunc ;==>_PasswordValid_Length Func _PasswordValid_Lowercase(ByRef $aPasswordValid, $iValue) Local $bReturn = False If __PasswordValid_IsAPI($aPasswordValid) And (IsInt($iValue) Or StringIsInt($iValue)) Then $bReturn = True $aPasswordValid[$PASSWORDVALID_LOWERCASE] = Int($iValue) EndIf Return $bReturn EndFunc ;==>_PasswordValid_Lowercase Func _PasswordValid_Special(ByRef $aPasswordValid, $iValue) Local $bReturn = False If __PasswordValid_IsAPI($aPasswordValid) And (IsInt($iValue) Or StringIsInt($iValue)) Then $bReturn = True $aPasswordValid[$PASSWORDVALID_SPECIAL] = Int($iValue) EndIf Return $bReturn EndFunc ;==>_PasswordValid_Special Func _PasswordValid_Uppercase(ByRef $aPasswordValid, $iValue) Local $bReturn = False If __PasswordValid_IsAPI($aPasswordValid) And (IsInt($iValue) Or StringIsInt($iValue)) Then $bReturn = True $aPasswordValid[$PASSWORDVALID_UPPERCASE] = Int($iValue) EndIf Return $bReturn EndFunc ;==>_PasswordValid_Uppercase Func _PasswordValid_Validate(ByRef $aPasswordValid, $sPassword) Local $iFlags = $PASSWORDVALID_FLAG_UNKNOWN If __PasswordValid_IsAPI($aPasswordValid) Then $iFlags = $PASSWORDVALID_FLAG_VALID Local $bIsValid = False If Not $aPasswordValid[$PASSWORDVALID_CONSECUTIVE] Then $bIsValid = Not StringRegExp($sPassword, '(.)\1') If Not $bIsValid Then $iFlags = BitOR($iFlags, $PASSWORDVALID_FLAG_CONSECUTIVE) EndIf EndIf If $aPasswordValid[$PASSWORDVALID_INTS] > 0 Then $bIsValid = UBound(StringRegExp($sPassword, '\d', $STR_REGEXPARRAYGLOBALMATCH)) >= $aPasswordValid[$PASSWORDVALID_INTS] If Not $bIsValid Then $iFlags = BitOR($iFlags, $PASSWORDVALID_FLAG_INTS) EndIf EndIf If $aPasswordValid[$PASSWORDVALID_LENGTH] > 0 Then $bIsValid = UBound(StringRegExp($sPassword, '\S', $STR_REGEXPARRAYGLOBALMATCH)) >= $aPasswordValid[$PASSWORDVALID_LENGTH] If Not $bIsValid Then $iFlags = BitOR($iFlags, $PASSWORDVALID_FLAG_LENGTH) EndIf EndIf If $aPasswordValid[$PASSWORDVALID_LOWERCASE] > 0 Then $bIsValid = UBound(StringRegExp($sPassword, '[a-z]', $STR_REGEXPARRAYGLOBALMATCH)) >= $aPasswordValid[$PASSWORDVALID_LOWERCASE] If Not $bIsValid Then $iFlags = BitOR($iFlags, $PASSWORDVALID_FLAG_LOWERCASE) EndIf EndIf If Not $aPasswordValid[$PASSWORDVALID_SPACE] Then $bIsValid = Not StringRegExp($sPassword, '\s') If Not $bIsValid Then $iFlags = BitOR($iFlags, $PASSWORDVALID_FLAG_SPACE) EndIf EndIf If $aPasswordValid[$PASSWORDVALID_SPECIAL] > 0 Then $bIsValid = UBound(StringRegExp($sPassword, '[[:punct:]]', $STR_REGEXPARRAYGLOBALMATCH)) >= $aPasswordValid[$PASSWORDVALID_SPECIAL] If Not $bIsValid Then $iFlags = BitOR($iFlags, $PASSWORDVALID_FLAG_SPECIAL) EndIf EndIf If $aPasswordValid[$PASSWORDVALID_UPPERCASE] > 0 Then $bIsValid = UBound(StringRegExp($sPassword, '[A-Z]', $STR_REGEXPARRAYGLOBALMATCH)) >= $aPasswordValid[$PASSWORDVALID_UPPERCASE] If Not $bIsValid Then $iFlags = BitOR($iFlags, $PASSWORDVALID_FLAG_UPPERCASE) EndIf EndIf EndIf Return SetExtended($iFlags, $iFlags == $PASSWORDVALID_FLAG_VALID) EndFunc ;==>_PasswordValid_Validate ; Internal function for checking the opaque array is a valid API Func __PasswordValid_IsAPI(ByRef $aPasswordValid) Return UBound($aPasswordValid) == $PASSWORDVALID_MAX And $aPasswordValid[$PASSWORDVALID_ID] == $PASSWORDVALID_GUID EndFunc ;==>__PasswordValid_IsAPI ; @extended parsing relating functions ; Error was related to consecutive values Func _PasswordValid_Error_IsConsecutive($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_CONSECUTIVE) EndFunc ;==>_PasswordValid_Error_IsConsecutive ; Error was related to incorrect number of integers Func _PasswordValid_Error_IsInts($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_INTS) EndFunc ;==>_PasswordValid_Error_IsInts ; Error was related to an invalid length Func _PasswordValid_Error_IsLength($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_LENGTH) EndFunc ;==>_PasswordValid_Error_IsLength ; Error was related to incorrect number of lowercase characters Func _PasswordValid_Error_IsLowercase($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_LOWERCASE) EndFunc ;==>_PasswordValid_Error_IsLowercase ; Error was related to containing spaces Func _PasswordValid_Error_IsSpace($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_SPACE) EndFunc ;==>_PasswordValid_Error_IsSpace ; Error was related to incorrect number of uppercase characters Func _PasswordValid_Error_IsSpecial($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_SPECIAL) EndFunc ;==>_PasswordValid_Error_IsSpecial ; Error was related to an unknown error Func _PasswordValid_Error_IsUnknown($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_UNKNOWN) EndFunc ;==>_PasswordValid_Error_IsUnknown ; Error was related to incorrect number of uppercase characters Func _PasswordValid_Error_IsUppercase($iFlags) Return __PasswordValid_Error_BitValidator($iFlags, $PASSWORDVALID_FLAG_UPPERCASE) EndFunc ;==>_PasswordValid_Error_IsUppercase Func _PasswordValid_Error_IsValid($iFlags) Return $iFlags == $PASSWORDVALID_FLAG_VALID EndFunc ;==>_PasswordValid_Error_IsValid ; Internal function for the BitAND checking Func __PasswordValid_Error_BitValidator($iFlags, $iFlag) Return BitAND($iFlags, $iFlag) == $iFlag EndFunc ;==>__PasswordValid_Error_BitValidator #EndRegion PasswordValid UDF functions Edited August 20, 2015 by guinness UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
guinness Posted August 13, 2013 Author Share Posted August 13, 2013  Added: _PasswordValid_AllowConsecutive() to check if repeating characters are used. Fixed: Issue when setting allow spaces in a password.  I am thinking about setting @extended and then the end user can use BitAND($iFlag,.. will determine what section failed. Let me know. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
guinness Posted August 13, 2013 Author Share Posted August 13, 2013  Added: @extended value to determine what exactly failed. Use BitAND(@extended, $PASSWORDVALID_FLAG_* ) to determine what failed. See the example PasswordError() of how to achieve this. Well I thought my idea was pretty easy to add, so I went ahead and did it. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
jazzyjeff Posted August 13, 2013 Share Posted August 13, 2013 Very cool Guiness! Link to comment Share on other sites More sharing options...
guinness Posted August 13, 2013 Author Share Posted August 13, 2013 Very cool Guiness!Well I'm sure more "things" can be added. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
guinness Posted August 14, 2013 Author Share Posted August 14, 2013  Added: List of valid symbols. No changes to the functions were made. I believe this UDF is pretty much "feature" complete. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
guinness Posted October 24, 2013 Author Share Posted October 24, 2013 Any ideas on how this can be improved? UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
czardas Posted October 24, 2013 Share Posted October 24, 2013 (edited) Allow valid unicode sequences. Allow any binary sequence. Edited October 24, 2013 by czardas operator64Â Â ArrayWorkshop Link to comment Share on other sites More sharing options...
guinness Posted October 24, 2013 Author Share Posted October 24, 2013 When you say binary sequence, you mean 0-9A-Fa-f? UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
czardas Posted October 24, 2013 Share Posted October 24, 2013 (edited) Perhaps I ought to have said incorrect surrogate pair sequences and unassigned code points although I believe this amounts to the same thing - any combination. Just some ideas you might be able to include. Edited October 25, 2013 by czardas operator64Â Â ArrayWorkshop Link to comment Share on other sites More sharing options...
guinness Posted October 24, 2013 Author Share Posted October 24, 2013 Could you provide an example of what is valid so I know we're on the same (code)page. Thanks. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
czardas Posted October 24, 2013 Share Posted October 24, 2013 (edited) This is a valid sequence: High order surrogate.. 0xD800 To 0xDBFF followed by a ==> Low order surrogate... 0xDC00 To 0xDFFF Edited October 24, 2013 by czardas operator64Â Â ArrayWorkshop Link to comment Share on other sites More sharing options...
guinness Posted October 24, 2013 Author Share Posted October 24, 2013 Thanks. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Mat Posted October 24, 2013 Share Posted October 24, 2013 Here's a very quick attempt from me to make the code a little bit smaller/cleaner. Should be possible to define any rules you like based on an array and then an upper and lower limit. expandcollapse popupGlobal Enum Step *2 $PASSWORDVALID_FLAG_CONSECUTIVE, $PASSWORDVALID_FLAG_INTS, $PASSWORDVALID_FLAG_LENGTH, $PASSWORDVALID_FLAG_LOWERCASE, $PASSWORDVALID_FLAG_NOSPACE, $PASSWORDVALID_FLAG_SPECIAL, _ $PASSWORDVALID_FLAG_UPPERCASE Func _Password_Validate($sPassword, $iFlags = 0, $iMinInts = 0, $iMinLength = 0, $iMinLowercase = 0, $iMinPunct = 0, $iMinUppercase = 0) Local $aRegexps[][3] = [ _ ["(.)\1", 0, 0], _ ["[0-9]", $iMinInts, -1], _ [".", $iMinLength, -1], _ ["[a-z]", $iMinLowercase, -1], _ ["\s", 0, 0], _ ["[[:punct:]]", $iMinPunct, -1], _ ["[A-Z]", $iMinUppercase, -1]] Local $iRet = 0, $count For $i = 0 To UBound($aRegexps) - 1 If Not BitAND($iFlags, BitShift(1, -$i)) Then ContinueLoop $count = UBound(StringRegExp($sPassword, $aRegexps[$i][0], 3)) If $count < $aRegexps[$i][1] Or ($aRegexps[$i][2] >= 0 And $count > $aRegexps[$i][2]) Then $iRet += BitShift(1, -$i) Next Return $iRet EndFunc ;==>_Password_Validate Func _Password_ErrorMsg($iRet) Local Const $aMessages[] = ["Consecutive characters cannnot be the same.", _ "Not enough digits.", _ "Password not long enough", _ "Not enough lowercase characters.", _ "Spaces not allowed in password.", _ "Not enough punctuation", _ "Not enough uppercase letters"] Local $iCount = 0, $sRet = "" For $i = 0 To UBound($aMessages) - 1 If BitAND($iRet, BitShift(1, -$i)) Then $iCount += 1 $sRet &= @CRLF & $aMessages[$i] EndIf Next If Not $iCount Then $sRet = "Password is good :)" Else $sRet = $iCount & " problems with the password: " & $sRet EndIf Return $sRet EndFunc ;==>_Password_ErrorMsg AutoIt Project Listing Link to comment Share on other sites More sharing options...
guinness Posted October 24, 2013 Author Share Posted October 24, 2013 (edited) OK, thanks. Good to have alternative methods. It's smaller, but I wouldn't necessarily say cleaner. I designed it the way I did so if I wanted to changed the likes of only $iMinPunct, then I didn't have to specify defaults for the others. There was method to my madness -_0 Edit: People should use the current beta of AutoIt to run Mat's example. Edited October 24, 2013 by guinness UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
czardas Posted October 24, 2013 Share Posted October 24, 2013 (edited) Thanks. Â You are welcome. There are probably far too many questionable unicode sequences for it to be worth digging much deeper than this. Surrogates (being easy to identify) must appear in pairs in the correct order. Although the likelyhood of a person entering such a password is practically zero, a software product may have no restrictions on password character input. Edit Hmm, let me think: see next post. Edited October 25, 2013 by czardas operator64Â Â ArrayWorkshop Link to comment Share on other sites More sharing options...
czardas Posted October 24, 2013 Share Posted October 24, 2013 (edited) Look at this roadmap to the BMP. Notice there are several reserved regions and some ranges are simply skipped. I'm not exactly sure exactly what is valid unicode and what isn't, but this link is where you need to look. Edited October 24, 2013 by czardas operator64Â Â ArrayWorkshop Link to comment Share on other sites More sharing options...
Mat Posted October 25, 2013 Share Posted October 25, 2013 OK, thanks. Good to have alternative methods. It's smaller, but I wouldn't necessarily say cleaner. I designed it the way I did so if I wanted to changed the likes of only $iMinPunct, then I didn't have to specify defaults for the others. There was method to my madness -_0 Edit: People should use the current beta of AutoIt to run Mat's example. Yep, and I saw that. I was just bored and wanted to write a version using arrays. AutoIt Project Listing Link to comment Share on other sites More sharing options...
guinness Posted October 25, 2013 Author Share Posted October 25, 2013 Now I understand. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
guinness Posted June 15, 2014 Author Share Posted June 15, 2014 Updated the example and functions for improved clarity. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now