Διαφήμιση
Οι κοινόχρηστες βιβλιοθήκες στα Windows καθιστούν τον προγραμματισμό πολύ πιο αποτελεσματικό για τον προγραμματιστή που δεν χρειάζεται να επανεφεύρει τον τροχό κάθε φορά που χρειάζεται να εκτελέσει μια κοινή εργασία. Διευκολύνουν επίσης την τοποθέτηση τρυπών ασφαλείας σε κοινόχρηστο κώδικα όταν εντοπίζονται, δεδομένου ότι πρέπει να διορθωθεί σε λιγότερα μέρη και δεν απαιτεί την εκ νέου μεταγλώττιση κάθε εφαρμογής.
Παρά αυτές τις θετικές πτυχές, μπορούν να δημιουργήσουν τα δικά τους προβλήματα όταν προσπαθούν να αντιμετωπίσουν την αιτία των μηνυμάτων σφάλματος που μπορεί να δημιουργήσουν.
Η ερώτηση του αναγνώστη μας:
Πώς μπορώ να διορθώσω ένα πρόβλημα Windows Vista 32-bit C: \ Windows \ explorer.exe σε ένα Dell Inspiron 530;
Αφού κάνετε κλικ στο κουμπί OK στο παράθυρο διαλόγου που εμφανίζεται στο στιγμιότυπο οθόνης, η οθόνη θα μαυριστεί και θα επιστρέψει στο φυσιολογικό τρέχει, αλλά δεν θα μου επιτρέψει να έχω πρόσβαση στα C, D και, μερικές φορές, στη μονάδα E όταν προσπαθώ να έχω πρόσβαση σε αυτά από το My Υπολογιστή.
Τρέξιμο sfc / scannow δεν εντοπίζει σφάλματα. Έκανα λήψη ενημερώσεων τόσο από τους ιστότοπους της Dell όσο και από τη Microsoft, προσπαθώντας να διορθώσω αυτό το πρόβλημα. Έχω εγκαταστήσει επίσης το Microsoft Visual C ++ 2010 Redistributable Package (x86). Ο υπολογιστής είναι πλήρως ενημερωμένος σύμφωνα με το Windows Update.
Απάντηση του Bruce:
Σημείωση: Οι συζητήσεις σχετικά με την Εξερεύνηση των Windows στα Windows 7 και παλαιότερες εκδόσεις ισχύουν επίσης για την Εξερεύνηση αρχείων στα Windows 8 και νεότερες εκδόσεις. Εάν υπάρχει μια αξιοσημείωτη διαφορά μεταξύ τους, θα αναφέρεται ρητά.
Το κέλυφος των Windows
Εξερεύνηση των Windows είναι το κέλυφος και λειτουργεί ως διαδικασία explorer.exe όπως φαίνεται στο Task Manager ή Εξερεύνηση διαδικασίας του Sysinternals Process Explorer - Η πιο ισχυρή αντικατάσταση Task Manager [Windows]Ας είμαστε ειλικρινείς, η Διαχείριση εργασιών των Windows δεν είναι τόσο καλή για την κατανόηση και τη διαχείριση των διαδικασιών που εκτελούνται στον υπολογιστή σας. Ακόμα και στα Windows 8, όπου είναι πολύ βελτιωμένο, ο διαχειριστής εργασιών δεν μπορεί να πλησιάσει το ... Διαβάστε περισσότερα . Όπως πολλά άλλα προγράμματα των Windows, όλες οι λειτουργίες που παρέχονται από το κέλυφος δεν ενσωματώνονται σε αυτό το μοναδικό εκτελέσιμο αρχείο. Υπάρχουν δεκάδες άλλα EXE και Αρχεία DLL Τρόπος διόρθωσης σφαλμάτων αρχείου που λείπουν DLL Διαβάστε περισσότερα χρησιμοποιείται για την εφαρμογή φύλλων ιδιοτήτων, χειριστών ιδιοτήτων, χειριστών προεπισκόπησης, μενού περιβάλλοντος και πολλών άλλων στοιχείων που χρησιμοποιείτε στην Εξερεύνηση των Windows κάθε μέρα.
Επεκτάσιμο κέλυφος
Οι επεκτάσεις κελύφους επιτρέπουν στους προγραμματιστές να προσθέσουν εύκολα λειτουργικότητα στην Εξερεύνηση των Windows γράφοντας ένα DLL για την εκτέλεση του εργασία και εγγραφή του DLL στο λειτουργικό σύστημα, έτσι ο Εξερευνητής ξέρει πού να βρει τον κώδικα για να ολοκληρώσει το έργο. Για παράδειγμα, 7-φερμουάρ Πώς να εξαγάγετε αρχεία από ZIP, RAR, 7z και άλλα κοινά αρχείαΑντιμετωπίσατε ποτέ ένα αρχείο .rar και αναρωτηθήκατε πώς να το ανοίξετε; Ευτυχώς, η διαχείριση αρχείων ZIP και άλλων συμπιεσμένων αρχείων είναι απλή με τα σωστά εργαλεία. Εδώ είναι αυτό που πρέπει να γνωρίζετε. Διαβάστε περισσότερα προσθέτει ένα υπομενού στο τυπικό μενού περιβάλλοντος, δίνοντας γρήγορη πρόσβαση σε εργασίες χειρισμού αρχείων, Σκληρός δίσκος Sentinel Παρακολουθήστε την υγεία του σκληρού δίσκου και του SSD σας με το σκληρό δίσκο SentinelΕίχατε ποτέ αστοχία στο δίσκο; Δυστυχώς, δεν υπάρχει πανάκεια για την πρόληψη ζημιών υλικού. Αλλά η παρακολούθηση του σκληρού δίσκου ή του SSD σας, για να ενεργείτε όταν γίνεται πιθανός ο θάνατός τους, είναι ένα πρώτο βήμα. Διαβάστε περισσότερα προσθέτει επικαλύψεις εικονιδίων στα τυπικά εικονίδια μονάδας δίσκου, ώστε να μπορείτε να δείτε την κατάσταση της κατάστασης της μονάδας δίσκου με μια ματιά και HashTab προσθέτει ένα νέο φύλλο ιδιοτήτων, για τον υπολογισμό και την εμφάνιση κατακερματισμών του επιλεγμένου αρχείου.
Πολλές από αυτές τις επεκτάσεις κελύφους εφαρμόζονται ως διακομιστές του Component Object Model (COM) κατά τη διαδικασία. Αυτό σημαίνει ότι όταν μια διαδικασία, στην περίπτωση αυτή η Εξερεύνηση των Windows, χρησιμοποιεί την επέκταση, δεν θα εμφανιστεί στο Task Manager ή Process Explorer ως ξεχωριστή τρέχουσα διαδικασία με το δικό της αναγνωριστικό διαδικασίας (PID). Αντ 'αυτού, εκτελείται εντός της διαδικασίας κλήσης explorer.exe.
Προεπιλεγμένη διαδικασία μίας παρουσίας
Η Εξερεύνηση των Windows είναι γραμμένη ώστε να μπορεί να εκτελείται ως δύο ξεχωριστές διαδικασίες, αλλά - στην προεπιλεγμένη διαμόρφωση - θα εκτελείται μόνο μία παρουσία. Όταν εκτελείται για πρώτη φορά ως μέρος της διαδικασίας εκκίνησης, δημιουργεί το περιβάλλον επιφάνειας εργασίας των Windows. Η εκτέλεσή του δημιουργεί ξανά ένα νέο νήμα στην υπάρχουσα διαδικασία, το οποίο εμφανίζει το γνωστό παράθυρο διαχείρισης αρχείων, αντί να ξεκινήσει μια νέα διαδικασία.
Αυτή η συμπεριφορά επιτρέπει μειωμένο αποτύπωμα μνήμης, αλλά μπορεί επίσης να φέρει τη δική της μικρή συστροφή κατά την αντιμετώπιση προβλημάτων. Ένα κρίσιμο σφάλμα ή εξαίρεση στον κώδικα που εκτελείται κατά τη διαδικασία explorer.exe, συμπεριλαμβανομένων των διακομιστών σε διεργασία που παρέχονται από DLL, θα προκαλέσει την πτώση ολόκληρου του περιβάλλοντος της επιφάνειας εργασίας.
Στις περισσότερες περιπτώσεις, η διαδικασία της επιφάνειας εργασίας θα επανεκκινηθεί αυτόματα. Εάν δεν γίνει επανεκκίνηση, θα πρέπει να μπορείτε να χρησιμοποιήσετε το Ctrl-Shift-Esc για να εμφανίσετε τη Διαχείριση εργασιών. Από εκεί, πηγαίνετε στο Αρχείο> Νέα εργασία (Εκτέλεση…)> τύπος explorer.exe> ΟΚ για επανεκκίνηση της διαδικασίας.
Αυτό μπορεί να αποφευχθεί με μια απλή αλλαγή. Ανοιξε Εξερεύνηση των Windows> Οργάνωση> Επιλογές φακέλου και αναζήτησης στα Vista / 7. Για Windows 8 και μεταγενέστερες εκδόσεις, ανοίξτε Εξερεύνηση αρχείων> Προβολή> Επιλογές> Αλλαγή επιλογών φακέλου και αναζήτησης. Επίλεξε το Προβολή καρτέλας και ελέγξτε Εκκινήστε τα παράθυρα φακέλων σε ξεχωριστή διαδικασία.
Η αλλαγή αυτής της ρύθμισης απομονώνει τη διαδικασία της επιφάνειας εργασίας σας από όλα τα άλλα παράθυρα της Εξερεύνησης των Windows που έχετε ανοίξει. Εάν κάποιο από αυτά τα παράθυρα της Εξερεύνησης διακοπεί, η επιφάνεια εργασίας σας θα παραμείνει χωρίς τραυματισμό.
Microsoft Visual C ++ Runtime Library (CRT)
Η Microsoft Visual C ++ Runtime Library παρέχει ρουτίνες για τον προγραμματισμό των Windows που αυτοματοποιούν πολλές εργασίες, όπως εισαγωγή / έξοδος, χειρισμός αρχείων, εκχώρηση μνήμης, κλήσεις συστήματος και πολλά άλλα.
Κάθε εγκατάσταση των Windows θα έχει τουλάχιστον δύο διαφορετικές εκδόσεις του CRT εγκατεστημένες. Ένα πρόσφατα κατασκευασμένο Vista SP2 μέσω Windows 10 θα έχει και τις δύο εκδόσεις 8.0 και 9.0 (VC 2005 και VC 2008, αντίστοιχα). Όταν εγκαθίσταται πρόσθετο λογισμικό, ενδέχεται επίσης να περιλαμβάνει πιο πρόσφατες εκδόσεις των χρόνων εκτέλεσης, ανάλογα με την έκδοση του Visual C ++ που χρησιμοποιήθηκε για τη δημιουργία του προγράμματος ή οποιουδήποτε από τα στοιχεία του.
Σφάλματα χρόνου εκτέλεσης
Όταν υπάρχει σφάλμα ή εξαίρεση σε ένα κομμάτι κώδικα, ιδανικά θα αντιμετωπιστεί το συντομότερο πιθανή στην τρέχουσα διαδικασία εκτέλεσης, και είτε να διορθωθεί ή να επιτρέψει μια χαριτωμένη αποτυχία. Εάν το σφάλμα δεν αντιμετωπιστεί τοπικά, μεταδίδεται στον κώδικα που καλούσε τον κώδικα που εκτελείται αυτήν τη στιγμή και η διαδικασία συνεχίζεται έως ότου αντιμετωπιστεί η εξαίρεση. Εάν ολοκληρώσει το τρέξιμο στην κορυφή της αλυσίδας και εξακολουθεί να μην αντιμετωπιστεί, θα δημιουργήσει σφάλμα χρόνου εκτέλεσης όπως φαίνεται παραπάνω.
Όταν ο χρήστης κάνει κλικ στο κουμπί ΟΚ, η διαδικασία θα τερματιστεί. Εάν το πρόγραμμα έχει καθορισμένη συμπεριφορά αποτυχίας, όπως κρίσιμες υπηρεσίες, ή η κατάσταση λειτουργίας του παρακολουθείται από άλλη διαδικασία, ενδέχεται να επανεμφανιστεί αυτόματα. Αυτό συμβαίνει σε αυτήν την περίπτωση. Η οθόνη σβήνει όταν τερματιστεί η διαδικασία explorer.exe και, στη συνέχεια, η επιφάνεια εργασίας επιστρέφει όταν επανεκκινηθεί η διαδικασία explorer.exe.
Αν και το παραπάνω μήνυμα σφάλματος δείχνει σαφώς ότι προήλθε από τη διαδικασία explorer.exe, δεν είναι πιθανό να είναι πρόβλημα με το ίδιο το explorer.exe. Είναι πολύ πιο πιθανό ο ένοχος να βρίσκεται αλλού, όπως μια επέκταση τρίτου μέρους που χρησιμοποιείται από τον Explorer.
Άλλες εκτιμήσεις
Με την περιγραφή του ζητήματος από τον αναγνώστη μας παραπάνω, υπάρχουν μερικά επιπλέον στοιχεία που πρέπει να λάβουμε υπόψη:
- Τη στιγμή του σφάλματος, ο Explorer προσπαθούσε, αλλά δεν μπόρεσε, να συμπληρώσει την προβολή λίστας.
- Η αδυναμία πρόσβασης σε μονάδες δίσκου μετά την επανεκκίνηση της επιφάνειας εργασίας, μπορεί να υποδηλώνει ότι μια άλλη διαδικασία έχει ή περισσότερες από αυτές τις συσκευές είναι κλειδωμένες, εμποδίζοντας έτσι την πρόσβαση από το explorer.exe που δημιουργήθηκε πρόσφατα επεξεργάζομαι, διαδικασία.
- Τρέξιμο sfc / scannow και παίρνοντας έναν καθαρό λογαριασμό υγείας, ρίχνει τους προστατευμένους πόρους των Windows στο κάτω μέρος της λίστας για εξέταση. Άλλες αιτίες είναι πολύ πιο πιθανές.
Οι διορθώσεις είναι έτοιμες
Σε αυτήν τη συγκεκριμένη περίπτωση, υπάρχουν τρεις τομείς όπου θα έψαχνα μια λύση. Το πρώτο αφορά την υπηρεσία αναζήτησης των Windows, το δεύτερο περιλαμβάνει τη διερεύνηση των επεκτάσεων κελύφους και η τελευταία θα ήταν οι ίδιοι οι αναδιανεμήσιμοι VC ++.
Αναζήτηση Windows
Επειδή το αρχικό στιγμιότυπο οθόνης δείχνει το σφάλμα που συμβαίνει όταν ο Explorer προσπαθεί να συμπληρώσει το listview, είναι πιθανό η υπηρεσία αναζήτησης των Windows να αποκλείει την πρόσβαση στους απαιτούμενους πόρους. Έχω δει αυτό να συμβαίνει όταν η υπηρεσία διακόπτεται και δεν έχει τις σωστές παραμέτρους επανεκκίνησης.
Τύπος Κερδίστε + R> τύπος services.msc> ΟΚ για να ξεκινήσετε την κονσόλα διαχείρισης με τη λειτουργική μονάδα. Κάντε κύλιση προς τα κάτω στην Αναζήτηση Windows και κάντε διπλό κλικ στην καταχώρηση για να ανοίξετε το παράθυρο διαλόγου Ιδιότητες. Βεβαιωθείτε ότι οι ρυθμίσεις στην καρτέλα Ανάκτηση ταιριάζουν με την παρακάτω εικόνα.
Το πιο κοινό πρόβλημα είναι η ρύθμιση "Επανεκκίνηση υπηρεσίας μετά:". Αυτό το σφάλμα παρουσιάζεται συχνά όταν αυτή η ρύθμιση είναι μηδενική.
Προβληματικές επεκτάσεις κελύφους
Κατεβάστε Το ShellExView της Nirsoft για την αρχιτεκτονική του συστήματός σας (x86 ή x64), εγκαταστήστε και εκτελέστε το. Θα χρειαστεί λίγος χρόνος για να εξεταστεί το σύστημα και να γεμίσει τον πίνακα με δεδομένα. Μεταβείτε στη στήλη CLSID Modified Time και κάντε κλικ στην κεφαλίδα για ταξινόμηση σε αυτό το πεδίο. Εάν θέλετε να εξαιρέσετε τις ενότητες που παρέχονται από τη Microsoft, μπορείτε να μεταβείτε στη διεύθυνση Επιλογές> Απόκρυψη όλων των επεκτάσεων της Microsoft. Για όσους χρησιμοποιούν μια έκδοση 64-bit των Windows, ίσως θελήσετε επίσης να εμφανίσετε τις επεκτάσεις 32-bit στο σύστημα μεταβαίνοντας στο Επιλογές> Εμφάνιση 32-bit Επεκτάσεων Shell.
Αναζητήστε επεκτάσεις που προστέθηκαν λίγο πριν ξεκινήσουν τα συμπτώματα. Επιλέξτε ένα ή περισσότερα και πατήστε ΣΤ7 ή πηγαίνετε στο Αρχείο> Απενεργοποίηση επιλεγμένων στοιχείωνή κάντε κλικ στο κόκκινο εικονίδιο LED στη γραμμή εργαλείων. Στην ιδανική περίπτωση, αυτό πρέπει να γίνεται ένα κάθε φορά.
Ελέγξτε αν τα συμπτώματα επιμένουν. Εάν συμβαίνει αυτό, μπορείτε να ενεργοποιήσετε ξανά τις προηγουμένως απενεργοποιημένες επεκτάσεις χρησιμοποιώντας F8, Αρχείο> Ενεργοποίηση επιλεγμένων στοιχείωνή το πράσινο εικονίδιο γραμμής εργαλείων LED. Από εδώ, απενεργοποιήστε μια διαφορετική επέκταση και επαναλάβετε τη διαδικασία δοκιμής μέχρι να βρείτε αυτήν που προκαλεί το πρόβλημα.
Επισκευή / επανεγκατάσταση VC ++ Redistributables
Το χρησιμοποιώ ως έσχατη λύση, αν μόνο ένα πρόγραμμα ξεκινά λάθη. Εάν έχετε πολλά προγράμματα που αντιμετωπίζουν προβλήματα με σφάλματα χρόνου εκτέλεσης VC ++, ίσως θελήσετε να το δοκιμάσετε πρώτα.
Κατά την εξέταση των εγκατεστημένων προγραμμάτων στο σύστημά μου (Πίνακας ελέγχου> Προγράμματα και δυνατότητες), εμφανίζει κάθε έκδοση των αναδιανεμητέων πακέτων (και μερικές από τις ενημερώσεις τους) που κυμαίνονται από την έκδοση 8 έως την έκδοση 12 (VC ++ 2005 έως VC ++ 2013). Τα έχω εγκαταστήσει λόγω των εργαλείων προγραμματισμού της Microsoft που χρησιμοποιώ. Οι περισσότεροι χρήστες δεν θα έχουν όλα αυτά.
Μπορείτε να βρείτε το τελευταίες λήψεις για υποστηριζόμενες εκδόσεις του Visual C ++ από τη Microsoft. Για τους σκοπούς μας εδώ, πρέπει να ενδιαφέρεστε μόνο για εκείνους που έχουν επισημανθεί ως "αναδιανεμήσιμα" πακέτα. Οι σύνδεσμοι που ταξινομούνται ως service pack προορίζονται για τα εργαλεία προγραμματισμού και όχι μόνο για τους χρόνους εκτέλεσης. Θα χρειαστείτε μόνο αυτά που αναφέρονται επί του παρόντος στα εγκατεστημένα προγράμματα στο σύστημά σας. Η εγκατάσταση άλλων εκδόσεων δεν θα σας βοηθήσει σε αυτήν την περίπτωση. Οι χρήστες λειτουργικών συστημάτων 64-bit ενδέχεται να χρειάζονται τις εκδόσεις x86 και x64 του CRT.
Το Windows Update ελέγχει αν ο υπολογιστής σας έχει εγκαταστήσει τις πιο πρόσφατες ενημερώσεις για αυτά τα πακέτα, αλλά δεν ελέγχει για να βεβαιωθεί ότι έχει εγκατασταθεί σωστά και δεν έχει καταστραφεί. Οι εγκαταστάτες μπορούν να ελέγξουν για να διασφαλίσουν ότι όλα τα αρχεία χρόνου εκτέλεσης είναι τα κατάλληλα και ότι όλες οι καταχωρίσεις μητρώου είναι σωστές.
Μόλις κατεβάσετε τα κατάλληλα προγράμματα εγκατάστασης, εκτελέστε τα στο σύστημα. Οι εκδόσεις του 2005 θα σας ζητήσουν να αποδεχτείτε μια άδεια χρήσης πριν από την επανεγκατάσταση του πακέτου. Όλοι οι άλλοι έχουν ένα GUI που θα σας ρωτήσει εάν θέλετε να επιδιορθώσετε ή να απεγκαταστήσετε την υπάρχουσα εγκατάσταση. Στις περισσότερες περιπτώσεις, μια λειτουργία επισκευής θα διορθώσει τυχόν προβλήματα.
Εάν θέλετε να δοκιμάσετε την πιο ακραία μέθοδο, μπορείτε να απεγκαταστήσετε τους χρόνους εκτέλεσης, να επανεκκινήσετε το μηχάνημα και, στη συνέχεια, να τους εγκαταστήσετε ξανά. Δεν προτείνω αυτήν τη μέθοδο με τους χρόνους εκτέλεσης 2005 και 2008. Χωρίς αυτά, τα Windows θα δημιουργήσουν πολλά σφάλματα και δεν θα υπάρχει μεγάλη λειτουργικότητα για εσάς κατά την επανεκκίνηση.
συμπέρασμα
Με λίγη παρατήρηση, ένα άγγιγμα δοκιμής και σφάλματος και κάποια κατανόηση του τρόπου με τον οποίο δημιουργούνται σφάλματα Χρόνοι εκτέλεσης στο σύστημα, ζητήματα λογισμικού μπορούν να βρεθούν και να επιλυθούν χωρίς να καταφεύγουν σε περίπλοκα εργαλεία εντοπισμού σφαλμάτων και αρχεία καταγραφής.
Έχετε αντιμετωπίσει σφάλματα χρόνου εκτέλεσης στο σύστημά σας; Τι απαιτείται για την επίλυσή τους; Επιτρέψτε μου να ξέρω στα παρακάτω σχόλια.
Ο Bruce παίζει με τα ηλεκτρονικά από τη δεκαετία του '70, τους υπολογιστές από τις αρχές της δεκαετίας του '80 και απαντά με ακρίβεια σε ερωτήσεις σχετικά με την τεχνολογία που δεν έχει χρησιμοποιήσει ούτε δει όλη την ώρα. Επίσης ενοχλεί τον εαυτό του προσπαθώντας να παίξει κιθάρα.