Visual Studio έργου εγκατάστασης - Ανά ρυθμίσεων μητρώου χρηστών

ψήφοι
16

Προσπαθώ να διατηρήσει ένα έργο εγκατάστασης σε Visual Studio 2003(ναι, είναι μια εφαρμογή παλαιού τύπου). Το πρόβλημα που έχουμε αυτή τη στιγμή είναι ότι θα πρέπει να γράψετε τις καταχωρήσεις μητρώου για HKCUκάθε χρήστη του υπολογιστή. Πρέπει να είναι στο HKCUόχι HKLMεπειδή είναι οι προεπιλεγμένες ρυθμίσεις του χρήστη, και αλλάζουν ανά χρήστη. Η αίσθησή μου είναι ότι

  1. Αυτό δεν είναι δυνατόν
  2. Αυτό δεν είναι κάτι που ο εγκαταστάτης θα πρέπει να κάνουμε, αλλά κάτι η αίτηση θα πρέπει να κάνει (μετά από όλα τι συμβαίνει όταν ένα προφίλ χρήστη δημιουργείται μετά την εγκατάσταση;).

Με αυτό κατά νου, θέλω ακόμα να αλλάξει όσο το δυνατόν λιγότερο στην εφαρμογή, έτσι η ερώτησή μου είναι, είναι δυνατό να προσθέσετε καταχωρήσεις μητρώου για κάθε χρήστη σε ένα Visual Studio 2003έργο εγκατάστασης;

Και, αυτή τη στιγμή το έργο απαριθμεί πέντε κλειδιά ρίζα μητρώου ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, και των χρηστών / μηχάνημα Hive). Δεν ξέρω τίποτα για το βασικό χρήστες root, και δεν έχω δει χρηστών / μηχάνημα Hive. Μπορεί κάποιος να με διαφωτίσει σχετικά με το τι είναι; Ίσως θα μπορούσε να λύσει το πρόβλημά μου παραπάνω.

Δημοσιεύθηκε 03/08/2008 στις 21:35
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
5

Υποθέτω ότι επειδή θέλετε να το ρυθμίσετε για όλους τους χρήστες, ότι είστε σε κάποιο είδος κοινόχρηστο υπολογιστή, το οποίο πιθανόν να λειτουργεί κάτω από ένα domain;

ΕΔΩ ΕΙΝΑΙ DRAGONS

Ας πούμε ότι ο Joe και η Jane συνδεθείτε τακτικά στον υπολογιστή, τότε θα το καθένα έχει «μητρώα».

Στη συνέχεια, θα εγκαταστήσει την εφαρμογή σας, και ο εγκαταστάτης θα χρησιμοποιήσει γιγαντιαίο αμυχές και αηδιαστικά πράγματα για να ρυθμίσετε τα στοιχεία στο πλαίσιο HKCU για αυτούς.

ΤΟΤΕ, bob θα έρθει και συνδεθείτε (ο ίδιος, και 500 άλλοι άνθρωποι έχουν λογαριασμούς στην περιοχή και έτσι μπορεί να κάνει αυτό). Ποτέ δεν χρησιμοποιείται σε αυτόν τον υπολογιστή πριν, οπότε δεν έχει μητρώου. Η πρώτη φορά που συνδέεται στο, τα παράθυρα του δημιουργεί ένα, αλλά δεν θα έχουν τη ρύθμισή σας.

Η εφαρμογή σας, στη συνέχεια πέφτει πάνω ή συμπεριφέρεται σωστά, και bob διαμαρτύρεται έντονα για αυτά τα μίζερα προϊόντα από raynixon ενσωματωθεί.

Η σωστή απάντηση είναι να έχουμε μόνο κάποιες προεπιλεγμένες ρυθμίσεις για την εφαρμογή σας, το οποίο μπορεί να τους γράψει στο μητρώο αν δεν τα βρείτε. Είναι γενικά καλή πρακτική ότι η εφαρμογή σας δεν πρέπει να εξαρτάται από το μητρώο, και θα πρέπει να δημιουργήσουν τα πράγματα όπως απαιτείται, για κάθε καταχώρηση μητρώου, όχι μόνο HKCU, ούτως ή άλλως

Απαντήθηκε 03/08/2008 στις 22:17
πηγή χρήστη

ψήφοι
5

Πρώτον: Ναι, αυτό είναι κάτι που ανήκει στην Αίτηση για την ακριβή reson που καθορίζονται: Τι θα συμβεί μετά τα νέα προφίλ του χρήστη που δημιουργήθηκε; Σίγουρα, αν χρησιμοποιείτε έναν τομέα είναι δυνατόν να έχουμε κάποια πράγματα να θέσει στο μητρώο για δημιουργία, αλλά αυτό δεν είναι πραγματικά μια περίπτωση χρήσης. Η αίτηση θα πρέπει να ελέγξετε αν υπάρχουν seetings και να χρησιμοποιήσετε τις προεπιλεγμένες ρυθμίσεις, εάν όχι.

Τούτου λεχθέντος, είναι δυνατόν να αλλάξετε άλλες Κλειδιά χρήστες μέσω του HKEY_USERS Κυψέλη.

Δεν έχω καμία εμπειρία με το Πρόγραμμα εγκατάστασης του Visual Studio 2003, τόσο εδώ είναι ένα κομμάτι της (καμία σχέση) κώδικα VBScript που απλά μπορεί να σας δώσει μια ιδέα για το πού να κοιτάξετε:

const HKEY_USERS = &H80000003
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = ""
objReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys
strKeyPath = "\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing"
For Each subkey In arrSubKeys
    objReg.SetDWORDValue HKEY_USERS, subkey & strKeyPath, "State", 146944
Next

(Κωδικός Ευγενική προσφορά του Jeroen Ritmeijer )

Απαντήθηκε 03/08/2008 στις 21:48
πηγή χρήστη

ψήφοι
1

Παρά τα όσα το άρθρο MSDN λέει για χρήστη / μηχάνημα Hive, δεν γράφω για να HKEY_USERS. Αντίθετα, γράφει σε HKCU αν επιλέξετε Μόνο εγώ και HKLM αν επιλέξετε όλους.

Έτσι, η λύση μου θα είναι να χρησιμοποιήσετε το User / μηχάνημα Hive, και στη συνέχεια στην εφαρμογή ελέγχει εάν οι καταχωρήσεις μητρώου βρίσκονται σε HKCU και αν όχι, αντίγραφα τους από HKLM. Ξέρω ότι αυτό ίσως να μην είναι ο πιο ιδανικός τρόπος για να γίνει αυτό, αλλά έχει το λιγότερο ποσό των αλλαγών.

Απαντήθηκε 03/08/2008 στις 23:34
πηγή χρήστη

ψήφοι
1

Είμαι στη μέση για να λύση μου με αυτή την καταχώρηση στο MSDN (δεν ξέρω πως δεν θα μπορούσα να το βρείτε πριν).

Ο χρήστης / μηχάνημα Hive
δευτερεύοντα κλειδιά και τις αξίες που εγγράφονται στο παρόν κυψέλη θα εγκατασταθεί κάτω από την ομάδα HKEY_CURRENT_USER όταν ένας χρήστης επιλέγει «Just Me» ή η ομάδα HKEY_USERS ή όταν ο χρήστης επιλέγει «Όλοι» κατά την εγκατάσταση.

Επεξεργαστή μητρώου

Απαντήθηκε 03/08/2008 στις 21:45
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more