Το "πρόβλημα" είναι ότι καταρχήν δεν ξεκινάει καμμία εφαρμογή όταν δίνεις μόνο ένα data file. Αυτό που θα ξεκινήσει είναι το dllhost το οποίο θα πάει να βρει την εφαρμογή που θα χειριστεί το αρχείο και μετά θα κλείσει. Λογικό είναι το αποτέλεσμα της Process.Start να μην έχει νόημα.
Αυτό που λες στο λειτουργικό είναι "άνοιξε το αρχείο και δεν με νοιάζει πως". Το πως φαίνεται από το registry και από τα registry verbs για κάθε τύπο, τα οποία άνετα μπορεί να λένε ότι μόνο ένα process θα σηκώνεται για όλα τα documents.
Αντί να αφήνεις στην τύχη ποιά εφαρμογή θα εμφανιστεί, καλύτερα να δώσεις στο χρήστη τη δυνατότητα να επιλέξει την εφαρμογή που θα χρησιμοποιήσει μέσα από τα Preferences και να την ανοίξεις κανονικά δίνοντας το αρχείο ως παράμετρο.
Ακόμα και αν βρεθεί τρόπος να ανοίξει η εφαρμογή, ο κώδικας είναι προβληματικός. Το Process.Start γίνεται μέσα σε μία μέθοδο η οποία τραβάει δεδομένα από τη βάση, η οποία απ' ότι φαίνεται χρησιμοποιεί (και μπλοκάρει) ένα connection το οποίο έχει ανοίξει απέξω.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos