Θέστε την προτεραιότητα μιας διαδικασίας από το όνομα αυτόματα, Vista
Η άλλη ημέρα έπαιζα γύρω με Επιλογές εκτέλεσης αρχείων εικόνας και Sysinternals» Όργανο ελέγχου διαδικασίας, Vista. Είδα μια ενδιαφέρουσα ερώτηση πραγματοποιούμαι. Χρησιμοποιώντας notepad.exe για παράδειγμα, είδα μια ερώτηση για ένα κλειδί αποκαλούμενο «PerfOptions» μέσα [HKEY_LOCAL_MACHINE \ επιλογές \ notepad.exe εκτέλεσης αρχείων εικόνας ΛΟΓΙΣΜΙΚΟΎ \ Microsoft \ WINDOWS NT \ CurrentVersion \] όταν έτρεξα το σημειωματάριο. Το αποτέλεσμα ήταν ΟΝΟΜΑ ΠΟΥ ΔΕΝ ΒΡΕΘΗΚΕ, έτσι αποφάσισα να αποκαταστήσω αυτό. Μετά από να προσθέσω ένα βασικό ονομασμένο «PerfOptions», έτρεξα το σημειωματάριο πάλι. Στο όργανο ελέγχου διαδικασίας, είδα τις ερωτήσεις για τέσσερις τιμές:
- IoPriority
- PagePriority
- CpuPriorityClass
- WorkingSetLimitInKB
Λόγω των πρόσφατων εξερευνήσεων με τη διαδικασία priorities*, CpuPriorityClass με άρπαξε αμέσως. Εξέταση SetPriorityClass η λειτουργία, μια μπορεί να δει τις διαφορετικές τιμές για την παράμετρο dwPriorityClass. Δημιούργησα ένα ονομασμένο REG_DWORD CpuPriorityClass σε PerfOptions, και να θέσει την αξία σε 0×80 με τις ελπίδες που το σημειωματάριο θα προωθούσε με «HIGH_PRIORITY_CLASS». Αντ' αυτού, προώθησε με μια προτεραιότητα NORMAL_PRIORITY_CLASS (8) - η ρύθμιση δεν είχε οποιοδήποτε αντίκτυπο. Κατόπιν, έθεσα την αξία σε 8 και προώθησα το σημειωματάριο. Σημειωματάριο που προωθείται με μια προτεραιότητα 8. Άλλαξα την αξία σε 4, και αυτή δεν άσκησε καμία επίδραση. Άλλαξα την αξία σε 0 - κανένας αντίκτυπος. Δοκίμασα 10 - κανένας αντίκτυπος. Δεν θα μπορούσα να δω οποιοδήποτε δεσμό μέσα σε οποιεσδήποτε άλλεσδήποτε λίστες των προτεραιοτήτων διαδικασίας που ήξερα περίπου, έτσι αποφάσισα να δοκιμάσω τη δοκιμή και το λάθος, που αρχίζουν από 0, με τα ακόλουθα αποτελέσματα:
| Αξία CpuPriorityClass | Προτεραιότητα του σημειωματάριου | Κατηγορία προτεραιότητας |
| 1 | 4 | Τεμπελιάστε |
| 3 | 13 | Υψηλός |
| 5 | 6 | BelowNormal |
| 6 | 10 | Άνω του κανονικού |
| Τίποτ' άλλο ^ | 8 | Κανονικός |
^= τρέχω αυτήν την περίοδο το α PowerShell script to iterate through all possible values (there’s only about 2^32…) so it may be a while before the CpuPriorityClass value for REALTIME_PRIORITY_CLASS, should it exist, be uncovered. Μπορούν επίσης να υπάρξουν άλλες τιμές που μπορούν να χρησιμοποιηθούν για να διευκρινίσουν μια κατηγορία προτεραιότητας που αποκαλύπτεται. Θα ενημερώσω ή θα τοποθετήσω ένα νέο θέμα εάν αποκαλύψω τίποτα νέο…
Το χειρόγραφο PowerShell (μην γελάστε, είναι η πρώτη ουσιαστική προσπάθειά μου σε μια):
$cpc=0set-itemproperty «hklm: softwaremicrosoftwindows εκτέλεση optionsnotepad.exeperfoptions» cpupriorityclass $cpcdo αρχείων ntcurrentversionimage { $pp = [diagnostics.process]:: έναρξη (» notepad.exe», «») $ppc = $pp.PriorityClass $pp. Θανάτωση () εάν ($ppc - ΝΕ «κανονικό») { Γράφω-οικοδεσπότης $cpc $ppc } $cpc++ σύνολο-itemproperty «hklm: softwaremicrosoftwindows εκτέλεση αρχείων ntcurrentversionimage optionsnotepad.exeperfoptions» cpupriorityclass $cpc} ενώ ($cpc - ο υπολοχαγός 4294967295)
Ενδεχομένως, θα βρώ το χρόνο να κάνω μερικούς που σκάβουν στις άλλες τιμές σε PerfOptions - IoPriority, PagePriority, και WorkingSetLimitInKB. IoPriority και ήχος PagePriority όπως μπορούν να έχουν κάτι που κάνει με καθορισμός προτεραιοτήτων μνήμης και IO καθορισμός προτεραιοτήτων Vista. WorkingSetLimitInKB sounds self-explanatory, but how it’s applied or how it’s used, and other circumstances, are quite vague.
*= SetThreadPriority, Vista, and Autostart Locations, Setting the Priority of a Service Process via Script
Popularity: 2%
Written by «/\/\Ø|ö±ò\/»®©. Read more great feeds at is source WEBSITE
1 comment.
Read more articles on otherSoftware and Process Monitor and priority and sysinternals and PowerShell and vista.
- [+] Digg: Feature this article
- [+] Del.icio.us: Bookmark this article
- [+] Furl: Bookmark this article

#1. January 31st, 2008, at 8:40 AM.
does this work for other os like XP or server 2003?