[..] Gestion de la mémoire

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
nicko510
Niveau 1
Niveau 1
Messages : 5
Enregistré le : dim. 16 nov. 2008 19:44
Status : Hors ligne

[..] Gestion de la mémoire

#1

Message par nicko510 »

Salut à tous,
y a-t-il un moyen pour limiter l'utilisation de la mémoire ?
Je fais un script qui dois être toujours actif et qui détecte lorsqu'un document est imprimé :

Code : Tout sélectionner

while 1
    $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")
    $colInstalledPrinters =  $objWMIService.ExecQuery("Select * from Win32_PrintJob Where Document <> ''")

    For $objPrinter in $colInstalledPrinters
        MsgBox(0,'',$objPrinter.Document)
    Next
WEnd
 
Le problème c'est qu'au fur est à mesure Autoit prend de plus en plus de mémoire dans le gestionnaire windows et je pense qu'à un moment ça va poser problème :p

Comment je peux faire ça s'il vous plait ?
Modifié en dernier par nicko510 le mer. 27 janv. 2010 00:27, modifié 1 fois.
Avatar du membre
pop45
Membre émérite
Membre émérite
Messages : 251
Enregistré le : dim. 30 août 2009 16:18
Status : Hors ligne

Re: Gestion de la mémoire

#2

Message par pop45 »

sleep <==== Il y a pas mieux

Cherche dans l'aide

En gros sa met ton script en pause pendant une durée X determiner en milliseconde
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: Gestion de la mémoire

#3

Message par timmalos »

En effet, il faut deja que vous rajoutiez un sleep(1000) dans la boucle, ca resourdra deja les choses car vous n'avez pas besoin de tester plus d'une fosi par seconde l'utilisation de l'imprimante, mais ca n'explique pas pourquoi il consomme de plus en plus de mémoire. Il doit falloir relacher l'objet et il va vous falloir trouver comment, l'explication est peut etre dans le script ou vous avez trouvé votre code.

Cependant, merci d'editer le titre de votre message pour respecter les règles du forum. Sinon ce message sera envoyé à la corbeille.
Merci,
Tim
nicko510
Niveau 1
Niveau 1
Messages : 5
Enregistré le : dim. 16 nov. 2008 19:44
Status : Hors ligne

Re: [..] Gestion de la mémoire

#4

Message par nicko510 »

Désolé pour le titre :oops:

Voila où j'ai trouvé le code :
http://www.autoitscript.fr/forum/viewto ... t=imprimer

Effectivement le sleep ralenti l'utilisation de la mémoire, mais elle continue quand même de grimper. Ca augmente bien lorsqu'il y a une impression en cours (ça me parait normal), mais une fois terminée ça ne redescend pas.

Lorsque je démarre le script, il tourne vers 6000ko et pour chaque impression ça augmente quasiment de 1000ko.
Comme c'est pour un pc qui imprime souvent et qui n'est jamais éteins, je me dis que ça pourrait créer des soucis au bout du compte.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de la mémoire

#5

Message par Tlem »

Je ne peut pas tester de là ou je suis, mais est-ce que ceci fonctionnerait mieux ?

Code : Tout sélectionner

$objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")

while 1
    $colInstalledPrinters =  $objWMIService.ExecQuery("Select * from Win32_PrintJob Where Document <> ''")
    For $objPrinter in $colInstalledPrinters
        MsgBox(0,'',$objPrinter.Document)
    Next
    Sleep(1000)
WEnd
Ou

Code : Tout sélectionner

$objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")
$colInstalledPrinters =  $objWMIService.ExecQuery("Select * from Win32_PrintJob Where Document <> ''")

while 1
    For $objPrinter in $colInstalledPrinters
        MsgBox(0,'',$objPrinter.Document)
    Next
    Sleep(1000)
WEnd
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
nicko510
Niveau 1
Niveau 1
Messages : 5
Enregistré le : dim. 16 nov. 2008 19:44
Status : Hors ligne

Re: [R] Gestion de la mémoire

#6

Message par nicko510 »

Salut,
Désolé pour le retard mais je n'avais pas vu qu'il y avait eu des réponses :p

Le 1er code de Tlem fonctionne ! Il fallait en effet sortir $objWMIService de la boucle. Par contre si j'utilise le 2è code, la msgbox n'apparait jamais ...

En tout cas merci pour votre aide.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de la mémoire

#7

Message par Tlem »

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre