1. The argument list of a function is optional.. you can define 0 or more arguments, and define both required or Optional arguments.

2. OK

3. Once you have a config file, use it for everything. I usually have a "COMMON" section for general config settings.

4. Using Read/WriteProfileString handles all open/close operations - you don't need to do anything to use these commands. Because the Open, Read or Write, Close happens for each call, performance on large INI files, and any network based file (especially WAN!!) is mediocre to poor. This can be helped by either caching the content locally, enumerating the entire section with a single read (see EnumINI UDFs); or using my INIArray UDF, which reads the entire INI file into an in-memory array. The latter option helps on large network based files or INI files that exceed the 64KB limit.

You need to search for the WMIGetAV function - it was never published. I've used it internally with some customized/updated INI files, but what's in the Advanced Scripting forum is as current as what I have internally. You will need to review the instructions and update the INI file for the current versions of the AV software you use, but no code changes should be needed.

Glenn
_________________________
Actually I am a Rocket Scientist! \:D