After some more investigation I found the problem. It appears that the program that is holding a reference to one of the files I want to uninstall is actually my setup program. I put in the following code to grab a value stored in a file before uninstallation of a previous version:
Code: Select all
Does File Exist $COMMONFILES$\\IntelliServ\\Intelliserver.ini (get result into variable SUCCESS)
if Variable SUCCESS Equals FALSE
GoTo Label: End Reading Loop
end
Set Variable EOF to FALSE
label: Start Reading Loop
Read from Text File $COMMONFILES$\\IntelliServ\\Intelliserver.ini into Variable INI (get EOF into EOF)
Parse String $INI$ into Variables Match and IP (Split at first occurrence of pattern)
if Variable Match Equals
Set Variable NICIP to $IP$
Set Variable OLDNICIP to $IP$
Set Variable UPGRADESERVER to TRUE
GoTo Label: End Reading Loop
end
if Variable EOF Equals FALSE
GoTo Label: Start Reading Loop
end
label: End Reading Loop
If the Parse String command ever finds a match then the Intelliserver.ini file remains open. If it does not find a match then the file is closed. I assume that it gets closed because EOF is reached.
My question: Is there a way to get the file to close (so it can be uninstalled without a reboot) without adding a separate read loop to finish off the read (and thus close the file)?
*Note* While the file extension is .ini the format is different from normal .ini files so using the "Get INI File Settings" command does not work.