Προς το περιεχόμενο

Μεταβλητές Περιβάλλοντος (Windows)


Alchemist`

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα... Ψάχνω ρε παιδιά έναν τρόπο να "μάθω" από το λειτουργικό σύστημα, το όνομα της κάρτας γραφικών, του επεξεργαστή και το μέγεθος της μνήμης RAM... Ξέρω ότι πράγματα όπως π.χ. ο αριθμός πυρήνων του επεξεργαστή ή το μοντέλο της cpu, είναι τέτοιες μεταβλητές (περιβαλλοντος) και ονομάζονται "NUMBER_OF_PROCESSORS" και "PROCESSOR_IDENTIFIER" αντίστοιχα ... Δεν υπάρχουν ανάλογες μεταβλητές για τα υπόλοιπα μέχρι του hardware? Αν όχι, πως μπορώ να τα βρώ? Κάπου δεν θα τα κρατάνε λογικά τα Windows? Δεν μπορεί... (ψάχνω εδώ και ώρα στον γούγλη και παντού βλέπω να αναφέρουν άχρηστες μεταβλητές όπως την default τοποθεσία του "my videos" :mad:)

 

Ευχαριστώ προκαταβολικά! :-)

 

Υ.Γ. ψιλοάσχετο με το ζητούμενο, αλλά ενώ έχω Win7 X 64 και PhenomII X4 cpu, το PROCESSOR_ARCHITECTURE Μου επιστρέφει χ86, ενώ το OS μου επιστρέφει Windows NT... Wtf?

 

Υ.Γ.2. ένα ενσωματομένο εργαλείο των windows είναι το Msinfo32.exe ... Εϊναι μήπως δυνατόν να βρεθεί κάτι από εκεί?

Δημοσ.

Απ αυτό : systeminfo | find "Total Physical Memory" μπορείς να δεις τη RAM (credit).

 

Τα Win7 είναι WinNT 6.1, τα Vista είναι WinNT 6.0 και τα WinXP είναι WinNT 5.x αν θυμάμαι σωστά.

 

Για τα υπόλοιπα δε γνωρίζω κάτι...

 

edit: Αν έχεις ελληνικά windows, το "Total Physical Memory" θα πρέπει να αντικατασταθεί με τον αντίστοιχο όρο.

Δημοσ.
Δεν υπάρχουν ανάλογες μεταβλητές για τα υπόλοιπα μέχρι του hardware? Αν όχι, πως μπορώ να τα βρώ? Κάπου δεν θα τα κρατάνε λογικά τα Windows?

 

Εννοείται ότι δεν υπάρχουν μεταβλητές περιβάλλοντος για τα πάντα, πολλά πράγματα θα αποθηκεύονται στη Registry ή αλλού.

 

Υπάρχουν μερικά command line utilities που έρχονται με τα Windows και δίνουν αρκετές πληροφορίες. Για κάτι απλό, δες το systeminfo.exe. Αν δε βρεις κάτι που θες στην έξοδό του, δες και το wmic.exe, παρέχει κυριολεκτικά εκατοντάδες πληροφορίες που δε μπορείς καν να δεις από το γραφικό περιβάλλον των Windows. Δώσε:

>
wmic /?

και πάρ' το από 'κει. Μερικά παραδείγματα:

>
C:\Users\parsifal>wmic cpu get name
Name
AMD Athlon(tm) 64 X2 Dual Core Processor 5000+

C:\Users\parsifal>wmic memphysical get maxcapacity
MaxCapacity
8388608

C:\Users\parsifal>wmic os get name
Name
Microsoft Windows 7 Professional |C:\Windows|\Device\Harddisk0\Partition1

 

 

Αλλά επειδή το άνοιξες στην ενότητα του Προγραμματισμού, ίσως θέλεις να αναφέρεις και ποια γλώσσα προγραμματισμού/frameworks χρησιμοποιείς, ενδέχεται να υπάρχει τρόπος να πάρεις τις παραπάνω πληροφορίες με πιο "proper" τρόπο. Όπερ σημαίνει programmatically αντί να ξεκινάς εξωτερική διεργασία wmic.exe ή systeminfo.exe, να κάνεις capture το standard output της, parsing κλπ.

Δημοσ.

Καταρχάς ευχαριστώ για τις απαντήσεις. Απο εκεί και πέρα, από προγραμματιστικής σκοπιάς το θέλω... Ξέρω πόση RAM έχω, απλά θέλω να το βλέπει και το πρόγραμμά μου... Χρησιμοποιώ GML8 και οι δυνατότητες που (ξέρω πως) έχω είναι:

 

α) environment_get_variable(var_name)

β) να διαβάσω από κάποιο αρχείο ini/txt κτλπ που ενδέχεται να είναι standard κομμάτι των windows και να έχει αποθηκευμένες τέτοιες πληροφορίες

edit:

γ) βασικό, που το ξέχασα, να διαβάσω κλειδιά της Registry (αλλά αυτές οι πληροφορίες θα είναι στο ίδιο κλειδί για όλους του υπολογιστές/διαφορετικές εκδόσεις windows?)

Δημοσ.

Δες τις τιμές των παρακάτω κλειδιών:

 

HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName

 

Για την κάρτα γραφικών και το μέγεθος της εγκατεστημένης RAM δε βρήκα κάτι...

Δημοσ.
Δες τις τιμές των παρακάτω κλειδιών:

 

HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName

 

Για την κάρτα γραφικών και το μέγεθος της εγκατεστημένης RAM δε βρήκα κάτι...

 

Χίλια ευχαριστώ! Επιτέλους βλέπω σωστά αποτελέσματα, ενώ μου έδωσες ιδέες για το που να κοιτάξω... Βρήκα παράλληλα την ονομασία της κάρτας γραφικών στο Laptop μου στο HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\atikmdag\Device0\Device Description

 

Δυστηχώς όταν γύρισα σπίτι είδα στο desktop pc πως στην ίδια έκδοση Windows, με ΑΤΙ κάρτα γραφικών, η τιμή αυτή δεν υπάρχει :/ Βέβαια το ένα έχει catalyst 10.1 και το άλλο 8.63 αλλά τι να πω... Στο desktop το atikmdag υπάρχει σαν τιμή αλλά αναφέρεται απλά ως atikmdag.sys και δεν έχει τπτ άλλο... Αρχικά νόμιζα πως ο driver atikmdag θα είναι ίδιος για όλες τις ΑΤΙ και αν έβρισκα παράλληλα το αντίστοιχο των Nvidia, με έναν απλό έλεγχο και στα 2 θα είμασταν ΟΚ... damn... :-(

Δημοσ.

Αν δε κανω λαθος υπαρχει ενα api για αυτη τη δουλεια, το wmi που δουλευει με scripts.

 

edit ναι κανει αυτη τη δουλεια, εδω ενα παραδειγμα σε c#, δες τα queries. (περνεις και το ονομα της socket :P )

Δημοσ.
http://gmc.yoyogames.com/index.php?showtopic=324605

 

δες και τα υπολοιπα εδω :

 

http://www.gmtoolbox.com/

 

 

Ευχαριστώ για τις πληροφορίες, είμαι μέλος του Game Maker Community και το έχω ξεσκονίσει το φόρουμ... Κανένα απο αυτά τα dll δεν δίνει τις πληροφορίες που θέλω, ή μερικά είναι ασύμβατα με Windows 7/Vista (έχουν γραφεί για GML 6).

Δημοσ.

γ) βασικό, που το ξέχασα, να διαβάσω κλειδιά της Registry (αλλά αυτές οι πληροφορίες θα είναι στο ίδιο κλειδί για όλους του υπολογιστές/διαφορετικές εκδόσεις windows?)

 

Αν θες να μεταχειριζεσαι το registry απο γραμμη εντολων, τα windows περιλαμβανουν το reg.exe. Οποτε με reg /? θα δεις πως λειτουργει

Δημοσ.

Τί πλεονέκτημα θα του δώσει η ανάγνωση της Registry με το reg.exe, έναντι των έτοιμων σχετικών functions που δίνει το API της GML;

Δημοσ.

Κανενα. Απλως το αναφερω γιατι, οπως τα systeminfo, wmic κλπ εργαλεια που αναφερθηκαν, ειναι χρησιμο για scripts

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...