WD14 - Récupérer la RAM

Le
Dams
Bonsoir à tous,

je souhaite récupérer la taille totale de la RAM du poste sur lequel
est executée mon application. Je pensais utiliser SysEspace() mais
cela me renvoi -1

D'avance merci pour vos suggestions à ce sujet.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Romain PETIT
Le #21011271
Dams a pensé très fort :
Bonsoir à tous,

je souhaite récupérer la taille totale de la RAM du poste sur lequel
est executée mon application. Je pensais utiliser SysEspace() mais
cela me renvoi -1

D'avance merci pour vos suggestions à ce sujet.



// Code WD7.5
// Mémoire du systeme
MEMORYSTATUSEX est une structure
dwLength est un entier
dwMemoryLoad est un entier
ullTotalPhys est un entier sur 8 octets
ullAvailPhys est un entier sur 8 octets
ullTotalPageFile est un entier sur 8 octets
ullAvailPageFile est un entier sur 8 octets
ullTotalVirtual est un entier sur 8 octets
ullAvailVirtual est un entier sur 8 octets
ullAvailExtendVirtual est un entier sur 8 octets
FIN
ms est un MEMORYSTATUSEX

ms:dwLength = Dimension(ms)
API("kernel32", "GlobalMemoryStatusEx", &ms)
Trace("Mémoire physique totale : " +
fl_TailleFormat(ms:ullTotalPhys))
Trace("Mémoire physique disponible : " +
fl_TailleFormat(ms:ullAvailPhys))
Trace("Mémoire paginée max possible : " +
fl_TailleFormat(ms:ullTotalPageFile))
Trace("Mémoire paginée disponible : " +
fl_TailleFormat(ms:ullAvailPageFile))
Trace("Mémoire virtuelle totale : " +
fl_TailleFormat(ms:ullTotalVirtual))
Trace("Mémoire virtuelle disponible : " +
fl_TailleFormat(ms:ullAvailVirtual))
Trace("Mémoire virtuelle étendue disponible : " +
fl_TailleFormat(ms:ullAvailExtendVirtual))

/////////////////////////////
Avec
/////////////////////////////
PROCEDURE fl_TailleFormat(eTailleEnOctets)
rTailleApprox est un monétaire
eTailleEnOctets8 est un entier sur 8 octets = eTailleEnOctets
sUnite est une chaîne = " o"
rTailleApprox = eTailleEnOctets
SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 ALORS eTailleEnOctets8++
sUnite = " Ko"
rTailleApprox = rTailleApprox /1024
FIN

SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 eTailleEnOctets8++
sUnite = " Mo"
rTailleApprox = rTailleApprox /1024
FIN

SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 ALORS eTailleEnOctets8++
sUnite = " Go"
rTailleApprox = rTailleApprox /1024
FIN

SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 ALORS eTailleEnOctets8++
sUnite = " To"
rTailleApprox = rTailleApprox /1024
FIN

RENVOYER NumériqueVersChaine(rTailleApprox, "10.2fs")+sUnite +"
("+NumériqueVersChaine(eTailleEnOctets,"15ds")+" octets)"

--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Pascal ROY
Le #21019161
Romain PETIT a écrit :
Dams a pensé très fort :
Bonsoir à tous,

je souhaite récupérer la taille totale de la RAM du poste sur lequel
est executée mon application. Je pensais utiliser SysEspace() mais
cela me renvoi -1

D'avance merci pour vos suggestions à ce sujet.



// Code WD7.5
// Mémoire du systeme
MEMORYSTATUSEX est une structure
dwLength est un entier
dwMemoryLoad est un entier
ullTotalPhys est un entier sur 8 octets
ullAvailPhys est un entier sur 8 octets
ullTotalPageFile est un entier sur 8 octets
ullAvailPageFile est un entier sur 8 octets
ullTotalVirtual est un entier sur 8 octets
ullAvailVirtual est un entier sur 8 octets
ullAvailExtendVirtual est un entier sur 8 octets
FIN
ms est un MEMORYSTATUSEX

ms:dwLength = Dimension(ms)
API("kernel32", "GlobalMemoryStatusEx", &ms)
Trace("Mémoire physique totale : " + fl_TailleFormat(ms:ullTotalPhys))
Trace("Mémoire physique disponible : " + fl_TailleFormat(ms:ullAvailPhys))
Trace("Mémoire paginée max possible : " +
fl_TailleFormat(ms:ullTotalPageFile))
Trace("Mémoire paginée disponible : " +
fl_TailleFormat(ms:ullAvailPageFile))
Trace("Mémoire virtuelle totale : " + fl_TailleFormat(ms:ullTotalVirtual))
Trace("Mémoire virtuelle disponible : " +
fl_TailleFormat(ms:ullAvailVirtual))
Trace("Mémoire virtuelle étendue disponible : " +
fl_TailleFormat(ms:ullAvailExtendVirtual))

/////////////////////////////
Avec
/////////////////////////////
PROCEDURE fl_TailleFormat(eTailleEnOctets)
rTailleApprox est un monétaire
eTailleEnOctets8 est un entier sur 8 octets = eTailleEnOctets
sUnite est une chaîne = " o"
rTailleApprox = eTailleEnOctets
SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 ALORS eTailleEnOctets8++
sUnite = " Ko"
rTailleApprox = rTailleApprox /1024
FIN

SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 eTailleEnOctets8++
sUnite = " Mo"
rTailleApprox = rTailleApprox /1024
FIN

SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 ALORS eTailleEnOctets8++
sUnite = " Go"
rTailleApprox = rTailleApprox /1024
FIN

SI eTailleEnOctets8>1024 ALORS
eTailleEnOctets8 = eTailleEnOctets8 / 1024
SI modulo(eTailleEnOctets8,1024)>0 ALORS eTailleEnOctets8++
sUnite = " To"
rTailleApprox = rTailleApprox /1024
FIN

RENVOYER NumériqueVersChaine(rTailleApprox, "10.2fs")+sUnite +"
("+NumériqueVersChaine(eTailleEnOctets,"15ds")+" octets)"



Romain, avec ta permission, bien sûr,
je me permet de la mettre de coté pour
une utilisation future.

--
Pascal ROY
(Service Informatique - SODALEC)
Romain PETIT
Le #21019561
Pascal ROY a formulé ce jeudi :
Romain, avec ta permission, bien sûr,
je me permet de la mettre de coté pour
une utilisation future.



Bonjour,

Pas besoin de permission, je crois qu'une bonne partie du code a été
récupérée ailleurs.
-> http://centrewd.free.fr/?page=ficheapi&t=f&n=GlobalMemoryStatusEx
-> http://windevapi.free.fr/forum1.php?idr=1&ids$&idmes$
...

A+

--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Pascal ROY
Le #21022041
Romain PETIT a écrit :
Pascal ROY a formulé ce jeudi :
Romain, avec ta permission, bien sûr,
je me permet de la mettre de coté pour
une utilisation future.



Bonjour,

Pas besoin de permission, je crois qu'une bonne partie du code a été
récupérée ailleurs.
-> http://centrewd.free.fr/?page=ficheapi&t=f&n=GlobalMemoryStatusEx
-> http://windevapi.free.fr/forum1.php?idr=1&ids$&idmes$
...

A+



Okay, Merci.

--
Pascal ROY
(Service Informatique - SODALEC)
Publicité
Poster une réponse
Anonyme