TSNewbie,
I'm not sure how having a MessageBox that doesn't show anything could be affecting TestStand data. My only thought is that by showing the MessageBox you are slowing down your program enough so that TestStand has time to execute the sequence before you get the status. Whether that's the problem or not, I do have some suggestions that might help you better understand how TestStand works.
First, in general, it might be easier for someone trying to answer your question, if you gave a little explanation in english as to what you are trying to do. We can figure it out, but you might get a quicker response with a headstart from an explanation. Also, including the version of your software would be From looking at your code, as I understand, you are trying to build your own operator interface to execute a TestStand sequence. By doing this you create an instance of the engine, get a sequence file, get a sequence, and start an execution of a sequence. During that execution, you iterate through the sequence's step groups and pull the step names and (hopefully) the step status.
There is a problem with this approach in that you are pulling step names and step status without knowing whether or not that step has actually executed or not. Instead of starting an execution and then just hoping that a particular step was executed before getting step information, it would be better to wait until the step was executed and then at that moment, get the step's status. The way that we do that is through UI Messages. UIMessages are a way for the TestStand engine to send messages from the execution back to either the Sequence Editor or the Operator Interface (what ever program started the TestStand engine). That way, the Sequence Editor or the Operator Interface will know exactly what is happening during the execution. The engine by default sends UIMessage everytime there is a change in execution state. Then in your Operator Interface, you will need to receive or handle those UI Messages. There are around 30 UIMessages that are automatically sent by the TestStand engine, each of which are documented in the TestStand Help under "UIMessageCodes".
Rather than creating code to handle each of those UIMessages sent from the TestStand engine, it would probably be more efficient to use our example Operator Interfaces that demonstrate how to execute sequences and display execution data. You can find those installed with TestStand. If you have TestStand 2.0, look at
\Examples\OperatorInterfaces for some simple Operator Interface examples. If you have TestStand 3.0, look at \OperatorInterfaces\NI\Simple. There are also more complex Operator Interfaces called the "Full-featured" versions. And lastly, we have some even simpler examples on our website. You can find those in a variety of programming languages and different versions of TestStand by searching for "+simple +operator +interface" from the NI Developer Zone.
I hope that helps you. If you have further questions, just let us know.
Regards,
Shannon R
Applications Engineer
National Instruments