Here is VB6 Code:

Attachement = objMail.Attachments.Add("D:\message.doc.pgp")

I am trying to automatically attach a file with outlook email......objMail.Attachments.Add method is unable to read the file "message.doc.pgp" very first time when the code execute.....On second n later executions it start recognizing the file n work fine but y not the first time.

I create the file "message.doc.pgp" by using shell command as follow.

Shell " /c pgp -e " & "d:\message.doc " & "Imran Khalid"

....when this command execute....a file "D:\message.doc.pgp" is created automatically which i later wants to sends as an email attachment....but not recognized during first time code execution as mentioned above.

Thanx a lot

Since VB's Shell statement starts the outside program and then passes control to the next line of code right away, the outside program probably doesn't have a chance to finish running before you try to attach the file to the email message. You'll get the error because the outside program is still writing the file when your code tries to attach it.

Luckily, the fix for this is really easy. All you have to do is put the following code after your Shell statement, and then tweak the value of the variable "waitSeconds" so that you're waiting long enough for the outside program to finish, but not so long that it looks like your program isn't doing the job:

waitSeconds = 5        ' Wait for 5 seconds before trying to use the file
startTime = Timer
Do Until Timer - waitSeconds >= startTime
    DoEvents           ' Don't want the user to think it's frozen!

That should fix the problem! Good luck!

- Sen

This article has been dead for over six months. Start a new discussion instead.