WD14 - Récupérer la RAM

Le
Dams
Bonsoir tous,

je souhaite rcuprer la taille totale de la RAM du poste sur lequel
est execute mon application. Je pensais utiliser SysEspace() mais
cela me renvoi -1

D'avance merci pour vos suggestions ce sujet.
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