TO Balai:
Ummm, if it's Win 3.x, you should NOT edit MSDOS.SYS nor IO.sys.
You'll need to edit the file Command.com and change it to start your "batch" file instead of autoexec.
(Note: your batch file doesn't need to have a .BAT extension either. ;-))
Then, conclude your "batch" file by simply CALLing or directly running AUTOEXEC.BAT from within it. That way, the user can change the autoexec all they want, but your batch will:
1) remain hidden [for lack of a better word] and unchanged [unless you change it], and
2) will always run prior to running autoexec.bat.
TO FuzzBall5:
There is a way (other than those mentioned above) that will work on Windows 3.x, 95, 98, 98se, and ME (I'm unsure about NT, XP or 2000 machines). But, you have not shown any interest nor responded since you initially posted this question. So, I will presume that you have found your answer elsewhere, and I'll leave it at that.
--MiggyD