OK. There are a few different ways to do this, but I think the easiest is to have another VB app run the app in question with the Shell command. Before the first app runs the com-listening app, have the first app create a dummy file somewhere (just a text file, or something like that). After running the com-listening app, the first app will loop and sleep as long as the dummy file exists, like so:
Dim fso
StartOver: 'Label for for restarting process
Set fso = CreateObject("Scripting.FileSystemObject"
Open "C:\Temp\DummyFile.txt" for Output as #1
Print #1, "DummyFile"
Close #1
Shell ("C:\File\Path\com-listening-app.exe", vbNormalNoFocus)
Do
Sleep(2000) 'suspend this prog (not com-app) for 2 secs.
Loop While fso.FileExists("C:\Temp\DummyFile.txt"
Sleep(10000) 'wait for 10 seconds
GoTo StartOver
After the com-listening app receives its message, but before it ends have it delete the dummy file:
fso.FileDelete("C:\Temp\DummyFile.txt", True)
Thus, the first app will find the file no longer there, exit the Do...While loop, wait 10 seconds and GoTo the StartOver: label to start the whole process over.
However, if this is is too "kloogey" for you, you can try an app I found that demonstrates ways to make a VB app Shell another app, and then wait for that app to finish. You can find the sample at
Good Luck! I used to rock and roll every night and party every day. Then it was every other day. Now I'm lucky if I can find 30 minutes a week in which to get funky. - Homer Simpson