GTVSendClose is a new utility that will be delivered with GTData. Running the new utility will gracefully shutdown GTViewer. You may think this is an odd utility to have, but it was requested by a customer who uses a very clever and effective means of distributing data updates to its GTViewer users. I will describe the process below and show how GTVSendClose helps out the process. It may be useful to your workflow as well.
First, a GTViewer dataset is created and placed on a USB Flash Drive along with any GTViewer product updates. An autorun.inf file is also included to run a script which copies the updates from the USB Flash Drive to the laptop. When the USB Flash Drive is plugged-in to the laptop, the update process automatically begins.
Second, once the USB drive is prepared, a USB Flash Drive Duplicator (like this one) is used to copy the flash drive to a number of other USB Flash Drive.
Third, the copied USB Flash Drives are disseminated to the users and they plug them into their laptops and the data is automatically updated, and the USB Flash Drive is returned.
One problem that occurred in this workflow was that the user could have left GTViewer running when the USB Flash Drive was plugged-in and the updates could not be copied because the data files would be locked by GTViewer. Not a terribly difficult problem to overcome (shut down GTViewer, and try again), but there is an improvement that can be made to the workflow.
By inserting a call to GTVSendClose (which can be located on the USB Flash Drive) into the update script launched by the autorun.inf, you can guarantee GTViewer will not be running when the update begins and eliminate the potential for locked files.
There are some caveats here. If a user has created a new session in GTViewer that has not yet been saved, GTViewer will prompt the user for a filename and wait for the user to respond which will interfere with the update. However, there are solutions to this problem as well such as using the External Session only option which will also use a default session name.