![]() |
Systemhandles laufen hoch...
Hallo Zusammen...
Meine Systemhandles laufen hoch, wenn mein Programm (Servicedienst) arbeitet. Wenn ich die Anzahl der Handles intern Abfrage mit :
Delphi-Quellcode:
Bleibt die Zahl (ca. 55) jedoch konstant. Übersehe ich etwas?
Function HandleCount:Integer;
var Pid : Thandle; g, U : integer; begin Pid := GetCurrentProcess; try g := GetGuiResources(Pid,GR_GDIOBJECTS); u := GetGuiResources(Pid,GR_USEROBJECTS); finally Closehandle(Pid); end; result := g+u; end; Grüsse Mavarik :gruebel: |
Re: Systemhandles laufen hoch...
Also moment.. im Taskmanager werden mehr Handels angezeigt als du im Programm auslesen kannst?
Oder die Funktion bringt in nem Dienst ständig wachsende Zahlen, in nem normalen Programm bleiben die Zahlen jedoch konstant? |
Re: Systemhandles laufen hoch...
GetGuiResources gibt nur die GUI-Handles zurück
und da dürften FileHandles und andere nichgrafische Handles nicht enthalten sein. |
Re: Systemhandles laufen hoch...
Zitat:
In meinem Programm welchers ein Systemdienst ist bleiben diese (gemäß meiner Abfrage) konstant... Zitat:
Ich habe Events, Mutex Handles aber die können es nicht sein... HDC, HDesk, HWINSTA und HWND aber die müssten ja enauso wie Bitmaps bei meiner Abfrage dabei sein, oder ? Mavarik :stupid: |
Re: Systemhandles laufen hoch...
Zitat:
|
Re: Systemhandles laufen hoch...
Die Winsta und Desktophandles werden vom System öfters offen gehalten. Ich habe das auch schon bemerkt. Da hilft kein Closehandle.
Vermutlich werden diese irgendwie noch intern von Systemfunktionen verwendet. TV hat das Problem übrigens auch und das ist in C++ geschrieben. Du kannst im Processexplorer mit Strg+H die offenen Handles genauer ansehen. Das ganze ist allerdings nicht weiter schlimm, wenn die Anwendung nicht ewig laufen soll (Sonst einfach die Anwendung neustarten). |
Re: Systemhandles laufen hoch...
Zitat:
Pro ScreenShot 2x Desktop 1x WindowStation Bei 20 FPS macht das schon 3600 Handles/Minute... Zitat:
Auch warten hilft nix... Nur Terminate... Mavarik :wall: |
Re: Systemhandles laufen hoch...
Du könntest dir diese Handles doch auch nur einmal und nur bei Änderungen neu holen.
|
Re: Systemhandles laufen hoch...
Zitat:
Mavarik |
Re: Systemhandles laufen hoch...
PS:
Der CloseDesktop(hDesktop) und CloseWindowStation(hWinstation) liefern ein GetLastError = 170 ; ERROR_BUSY zurück... Mavarik :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr. |
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