Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Speicher läuft voll bei WMI.... (https://www.delphipraxis.net/97603-speicher-laeuft-voll-bei-wmi.html)

Centrii 24. Sep 2007 10:36

Re: Speicher läuft voll bei WMI....
 
ja da hast du recht, irgendwo bleibt bei mir auch noch Speicher auf der Strecke. Bin auch grad dabei zu suchen wo das passiert.
Freu mich aber das der größte teil auch bei dir mit dem
Delphi-Quellcode:
VarClear(...)
behoben ist...

Gruß Ruben

RWarnecke 24. Sep 2007 16:32

Re: Speicher läuft voll bei WMI....
 
Zitat:

Zitat von Centrii
so, nach langer suche bin ich mit Hilfe fündig geworden. Du hast in deiner While-Schleife ein WMIObject vom Typ OleVariant, richtig?
das musst bei jedem Schleifen-Durchlauf mit
Delphi-Quellcode:
VarClear(WMIObject);
"freigeben".
Bei mir hat das das Problem behoben. Müsste also bei dir auch gehen...

Bitte lass mich wissen ob es bei dir auch funktioniert hat....

Gruß Ruben

Hallo Ruben, das mit dem VarClear war ein guter Tipp. Ich bedanke mich dafür.

Centrii 25. Sep 2007 05:56

Re: Speicher läuft voll bei WMI....
 
Guten morgen Rolf

Ich freu mich das ich jetzt endlich mal jemand helfen konnte, nachdem mir hier schon so viel geholfen wurde... :P

Gruß Ruben

Centrii 25. Sep 2007 09:00

Re: Speicher läuft voll bei WMI....
 
Wenn einer von Euch rausfindet wie man das Speicherleck beim Connect() stopft, lasst es mich bitte wissen.
Ich finde im moment nicht an was das liegen kann. :?:

Gruß Ruben

delphin06 26. Sep 2007 11:27

Re: Speicher läuft voll bei WMI....
 
Ich glaube das ist hoffnungslos. Hab gerade nochmal den code verfolgt.

Irgendwann springt der in die system.pas und arbeitet nur noch Assembler-code ab. und da steigt dann langsam der speicher an. Mit assembler-code kenn ich mich nich wirklich aus und deshalb lass ich es.

Ich werde die wmi ganz einfach in eine externe anwendung packen, die mir in eine datei alles reinschreibt was ich brauche. danach beende ich das programm einfach wieder. dann is der speicher auch sicher freigegeben.

BlackSeven 1. Mär 2012 12:30

AW: Speicher läuft voll bei WMI....
 
Zitat:

Zitat von Centrii (Beitrag 661681)


Ich bin mir ziemlich sicher das es daran liegt
Delphi-Quellcode:
while (ObjectInstances.Next(1, TempObj, ObjValue) = S_OK) do
begin


Habe ein ähnliches Problem:

Beim Start eines Dienstes rufe ich verschiedene Informationen per WMI ab. Dieser bleibt allerdings hängen.
OS: Windows XP SP3

Delphi-Quellcode:

var

 SWbemLocator : OLEVariant;
 WMIService  : OLEVariant;
 WbemObjectSet: OLEVariant;
 WbemObject  : OLEVariant;
 oEnum       : IEnumvariant;
 iValue      : LongWord;

begin

  SWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  WMIService   := SWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
  WbemObjectSet := WMIService.ExecQuery('Select * From Win32_NetworkAdapter', 'WQL', wbemFlagForwardOnly);
  oEnum        := IUnknown(WbemObjectSet._NewEnum) as IEnumVariant;

  while oEnum.Next(1, WbemObject, iValue) = 0 do // <- scheint hier hängen zu bleiben
  begin

    Log('!'); // Zeile wird nicht mehr geloggt

  end;

  // ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz