If you need to compare two files using WinMerge, you can use the _WinMergeCompare2Files function as in the following example:
_Example()
Func _Example()
FileCopy(@ScriptFullPath, @ScriptFullPath & '.txt')
FileWrite(@ScriptFullPath & '.txt', @CRLF & 'TEST' & @CRLF & @CRLF)
_WinMergeCompare2Files(@ScriptFullPath, @ScriptFullPath & '.txt')
EndFunc ;==>_Example
Func _WinMergeCompare2Files($sLeftFilePath, $sRightFilePath, $fWaitForWinMerge = True) ; Left is orginal , Right is new
Local Const $sWinMergeParamsKey = 'HKEY_CURRENT_USER\Software\Thingamahoochie\WinMerge'
If FileExists($sLeftFilePath) And FileExists($sRightFilePath) Then
Local Const $sWinMergeExecutable = RegRead($sWinMergeParamsKey, 'Executable')
Local Const $sFileName = StringRegExp($sLeftFilePath, '(?i).*\\(.*)', 3)[0]
Local Const $sWinMergeParams = _
' /u /e /xq /wl /maximize /dl "Original: ' & $sFileName & '" /dr "New version: ' & $sFileName & '" ' & _
'"' & $sLeftFilePath & '"' & ' ' & '"' & $sRightFilePath & '"'
If $fWaitForWinMerge Then
ShellExecuteWait($sWinMergeExecutable, $sWinMergeParams)
Else
ShellExecute($sWinMergeExecutable, $sWinMergeParams)
EndIf
EndIf
EndFunc ;==>_WinMergeCompare2Files