Ωχ, ωχ, ωχ και πάλι ωχ!!! Έπεσες θύμα του UAC (User Account Control). Από που ν' αρχίσει κανείς και που να τελειώσει. Ένα πράγμα μόνο είναι σίγουρο. ΜΗΝ ΤΟΝ ΑΠΕΝΕΡΓΟΠΟΙΗΣΕΙΣ!! Έχω δει πάρα πολλούς να το κάνουν και δεν αναφέρομαι σε χρήστες.
Κατ' αρχήν, ό,τι έχει σχέση με το directory 'Program Files' είναι OFF LIMITS. Ο Μάνος (Kelman) έχει δίκιο. Το πρώτο πράγμα που πρέπει να κάνεις είναι να διαβάσεις τι είναι το UAC και γιατί δημιουργήθηκε. Εδώ θα βρεις πληροφορίες για τα Win 7. Οι λόγοι για τους οποίους οι εφαρμογές δεν τρέχουν όπως παλιά είναι δύο: 1) Registry Virtualization και 2) File Virtualization. Εξαιτίας του δεύτερου, ακόμα και αν χρησιμοποιήσεις το CommonApplicationData directory, το οποίο βλέπει σε διαφορετικό physical path ανάμεσα στις εκδόσεις των Windows, πάλι θα έχεις πρόβλημα. Αν στην εφαρμογή σου δεν έχεις ενσωματώσει το κατάλληλο manifest file, παρόλο που η βάση δεδομένων θα είναι εγκατεστημένη σε κοινόχρηστο folder, για κάθε χρήστη θα δημιουργηθεί το αντίστοιχο virtual file και κανείς δεν θα έχει πρόσβαση στα κοινά δεδομένα, παρά μόνο στα δικά του. Βέβαια, αν αναφέρεσαι σε συγκεκριμένο χρήστη κάθε φορά (ApplicationData, LocalApplicationData) δεν θα συναντήσεις τέτοιο πρόβλημα.
Για να γράψεις σε κοινόχρηστο directory, έτσι κι αλλιώς η εφαρμογή σου θα πρέπει να τρέχει με elevated privileges (administrator). Αυτό το δηλώνεις στο manifest file. Αν δουλεύεις σε Visual Studio 2005, η ενσωμάτωσή του σε managed εφαρμογές μπορεί να χαρακτηριστεί επιεικώς σαδιστική. Το πως το επιτυγχάνεις περιγράφεται σ' αυτό το video, αλλά και εδώ. Αν παίζεις με Visual Studio 2008, απλά πρόσθεσε ένα manifest file στην εφαρμογή σου, με τον ίδιο τρόπο που προσθέτεις μια φόρμα ή μια κλάση. Πολύ χρήσιμες πηγές (MUST) αποτελούν και τα εξής άρθρα:
1) Vista UAC: The definite guide
2) Certification by example
3) Common application data, virtualization, and access control lists (ACL)
Επίσης, καλόν είναι οι εφαρμογές σε Vista και Win7 να είναι signed (μη στενοχωριέσαι, ούτε οι δικές μου είναι). Καλό διάβασμα και οπλίσου με υπομονή. Δυστυχώς, πρόκειται για το λιγότερο τεκμηριωμένο κομμάτι για εφαρμογές σε Windows. Εγώ, μάλιστα, απορώ γιατί οι ερωτήσεις που αφορούν στο UAC είναι τόσο λίγες στο forum. Δυστυχώς, δε μπορώ να σε βοηθήσω περισσότερο. Αν κάποιος έχει να προσθέσει κάτι ας το κάνει γιατί θεωρώ ότι υπάρχει "έλλειμμα" άρθρων.
Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!