This would be handled pretty much the same way...
Monitor generates filelist -> MyMonFileList
Project uses MyMonFileList to process files identified when monitor executes.
Inside Project, do something like:
variable MyMonFileList = "" (as a parameter)
(Note: Any value passed in from Monitor would override this)
If isEmpty(MyMonFileList) -> CreateFileList (MyMonFileList) with (blah blah blah)
What this accomplishes is .. if the project is kicked off by the Monitor, it passes the FileList var in as needed (thus MyMonFileList would not be empty)
If you execute the project from Project access ... then, MyMonFileList is empty (Thus triggering the If statement to generate the MyMonFileList before continuing)
Hopefully, this will help you along ...