Skip to content

Instantly share code, notes, and snippets.

@TLMcode
Last active January 23, 2017 23:08
Show Gist options
  • Save TLMcode/2ee14e28f32e989f1c70 to your computer and use it in GitHub Desktop.
Save TLMcode/2ee14e28f32e989f1c70 to your computer and use it in GitHub Desktop.
Random String Generator
gen( len )
{
loop % (122, d="~")
cStr .= chr( (i:=a_index)>32&&i<60 ? i : i>59&&i<91 ? i : i>93&&i<125 ? i : "" ) d
cStr:=regexreplace(cStr, d d)
while ( strlen(nStr)<len )
{
sort, cStr, % "Random D" d
nStr .= ((v:=substr(regexreplace(cStr,d),1,20))~="\d"
&&v~="[!-/]"&&v~="[:-@]"&&v~="[^-`]"&&v~="[A-Z]"&&v~="[a-z]"
&&!(v~="[A-Z]{2}")&&!(v~="[a-z]{2}")&&!(v~="\d{2}")) ? v : ""
GuiControl,, Disp, % substr(v,1,6)
}
GuiControl,, Disp
return substr(nStr,1,len)
}
@TLMcode
Copy link
Author

TLMcode commented Jan 23, 2017

New version with sister handler
Old version kept for reference.

Gen( len ) ; ToDo: add type filter param
{
	global callback := RegisterCallback( "DispHandler", "F", 1 )

    loop % ( 122, d = "~" ) 
        cStr .= ltrim( chr( (i:=a_index)>32&&i<60 ? i : i>59&&i<91 ? i : i>93&&i<125 ? i : "" ) d, d )

    while ( strlen(nStr)<len )
    {
        Sort, cStr, % "Random D" d

        nStr .= ((v:=substr(strreplace(cStr,d),1,20))~="\d"
        &&v~="[!-/]"&&v~="[:-@]"&&v~="[^-`]"&&v~="[A-Z]"&&v~="[a-z]"
        &&!(v~="[A-Z]{2}")&&!(v~="[a-z]{2}")&&!(v~="\d{2}")) ? v : ""

		DllCall( callback, str, substr( v, 1, len ) )
    }

	DllCall( "GlobalFree", ptr, callback, ptr )

    return substr( nStr, 1, len)
}

DispHandler( ptr )
{
	GuiControl,, Disp, % "Full String Copied To Clipboard: " StrGet( ptr )
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment