; StrContains; This function does a case sensitive searches for an occurrence of a substring in a string.; It returns the substring if it is found.; Otherwise it returns null("").; Written by kenglish_hi; Adapted from StrReplace written by dandaman32Var STR_HAYSTACKVar STR_NEEDLEVar STR_CONTAINS_VAR_1Var STR_CONTAINS_VAR_2Var STR_CONTAINS_VAR_3Var STR_CONTAINS_VAR_4Var STR_RETURN_VARFunction StrContainsExch $STR_NEEDLEExch 1Exch $STR_HAYSTACK; Uncomment to debug;MessageBox MB_OK 'STR_NEEDLE = $STR_NEEDLE STR_HAYSTACK = $STR_HAYSTACK 'StrCpy $STR_RETURN_VAR ""StrCpy $STR_CONTAINS_VAR_1 -1StrLen $STR_CONTAINS_VAR_2 $STR_NEEDLEStrLen $STR_CONTAINS_VAR_4 $STR_HAYSTACKloop:IntOp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_1 + 1StrCpy $STR_CONTAINS_VAR_3 $STR_HAYSTACK $STR_CONTAINS_VAR_2 $STR_CONTAINS_VAR_1StrCmp $STR_CONTAINS_VAR_3 $STR_NEEDLE foundStrCmp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_4 doneGoto loopfound:StrCpy $STR_RETURN_VAR $STR_NEEDLEGoto donedone:Pop $STR_NEEDLE ;Prevent "invalid opcode" errors and keep theExch $STR_RETURN_VARFunctionEnd!macro _StrContainsConstructor OUT NEEDLE HAYSTACKPush `${HAYSTACK}`Push `${NEEDLE}`Call StrContainsPop `${OUT}`!macroend!define StrContains '!insertmacro "_StrContainsConstructor"'