2016-07-27 39 views
1

Im Web suchen und keine ausreichende Antwort finden muss ich noch einmal fragen: Gibt es eine Möglichkeit, die maximale Anzahl von GDI-Objekten für Windows 10 zu erhöhen?Wie kann die maximale Anzahl von GDI-Objekten für Windows 10 erhöht werden?

Die Anwendung, die ich verwende, ist in VB6 mit einigen Steuerelementen von Drittanbietern geschrieben (Lecks von den Steuerelementen sind möglich) und es verwendet viele untergeordnete Fenster zum Anzeigen von Daten über die App.

Bearbeiten: Die Anwendung selbst wurde entwickelt, um mehrere Intents von sehr großen Benutzersteuerelementen zu erstellen. Jedes Steuerelement enthält ein stark modifiziertes Gitternetz, Symbolleisten und Windows-Formulare. Die Formulare selbst können verschiedene Benutzersteuerelemente (mit Gittern, Symbolleisten und Formularen) usw. öffnen. Daher werden viele Griffe erstellt. Wir suchen immer nach Lecks und beheben sie sofort, aber leider ist nicht alles ein Leck, sondern ein Nebeneffekt des Anwendungsdesigns (das vor meiner Zeit gemacht wurde).

Ich habe versucht, einige Dinge, aus der Erhöhung der Registrierungswerte unter

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ Currentversion \ Windows \ GDIProcessHandleQuota]

[HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows NT \ Currentversion \ Windows \ GDIProcessHandleQuota]

den Desktopheap zu erhöhen, sondern nichts wirksam wird. Auch nach einem Neustart beträgt das Limit immer noch 10000 Handles.

Es scheint, als ob irgendwo in Windows oder in der Registry ein statischer Wert versteckt ist, der den Wert überschreibt, da selbst das Absenken des Wertes nicht das Limit von 10000 Handles beeinflusst.

Vielen Dank im Voraus!

+0

[Dies kann hilfreich sein] (http://stackoverflow.com/questions/9723470/whats-the-upper-limit-on-gdi-objects-for-one-process-in-windows-7) Könnten Sie Post deinen Code beteiligt auch? Es kann eine Möglichkeit geben, die Handles zu begrenzen, wenn zu viele erstellt werden. –

+0

Danke für die Antwort. Ich habe diesen Artikel schon gefunden. Ich habe auch die dort geposteten Links gelesen, aber es war nicht hilfreich. Das Ändern der Registrierung funktioniert bis Windows 8.1. Nur Windows 10 verursacht Probleme, weil, wie ich oben sagte, es scheint, dass es den geänderten Wert wie die anderen Windows-Versionen nicht zuvor akzeptiert. Die Veröffentlichung betroffenen Codes ist ein Problem, da die gesamte Anwendung betroffen ist, aber ich werde eine detailliertere Beschreibung der Anwendung in der Frage hinzufügen. –

+0

Ich habe ein wenig gelesen, und ich fand einen Verweis auf den Desktop-Heap. [Testen Sie diese Lösung] (https://social.msdn.microsoft.com/Forums/sqlserver/en-US/c4fd65cc-2b87-4478-9997-828071220fcd/windows-10-gdi-objects-limit?forum=windowscompatibility) und das führt Sie zu [dieser KB-Seite] (https://support.microsoft.com/en-us/kb/184802) –

Antwort

0

Sie müssen Windows 10 neu starten, damit diese Registrierungseinstellung wirksam wird. Beachten Sie auch, dass auf x64 zwei GDIProcessHandleQuota-Werte in der Registrierung vorhanden sind.