![]() |
Dll zum Löschen bzw. Ersetzen freigeben
Hallo Community,
Ich habe mir eine DLL programmiert, auf die der Explorer zugreift, wenn ein ContextMenu mit Rechtsklick geöffnet wurde. Nachdem ich einmal solch ein PopUp-Menu aufgerufen habe, lässt sie sich nicht mehr löschen, da der Explorer immer noch für weitere Rechtsklicks die DLL geöffnet hat. Erst nach einem Neustart kann ich die Dll wieder entfernen. Ich erweitere bzw. verbessere diese Dll im mom noch häufig und möchte diese nach den Veränderungen auch sofort testen, was bisher halt nur nach nem Neustart möglich war. Weiß jemand eine Möglichkeit, wie ich eine Dll wieder so freigebe, dass sie gelöscht bzw. ersetzt werden kann? plz help me^^ |
Re: Dll zum Löschen bzw. Ersetzen freigeben
du schreibst neustart, meinst du damit einen Rechnerneustart? Im normalfall solllte ein neu anmelden helfen bzw. das schließen des explorer-Prozesses per Taskmanager.
|
Re: Dll zum Löschen bzw. Ersetzen freigeben
Ja, tut mir leid, dass ich mich nicht so deutlich ausgedrückt hatte: Ich meinte einen Rechner-Neustart.
Boah, wie umständlich :roll: Es gibt also keine Möglichkeit mehr, die Dll freizugeben, wenn sie einmal in den explorer geladen wurde? |
Re: Dll zum Löschen bzw. Ersetzen freigeben
Ich stelle meist die Option:
Extras -> OrdnerOptionen -> Ansicht -> Ordnerfenster in einem eigenen Process starten auf wahr. In Delphi für die DLL: Start -> Parameter: Host-Anwendung: c:\windows\explorer.exe Nebeneffekt: Man kann wie gewohnt die Anwendung Debuggen. |
Re: Dll zum Löschen bzw. Ersetzen freigeben
eine weitere Möglichkeit wäre eine DLL dazwischen zu hängen welche die Funktion durchreicht zu der eigentlichen DLL. In der zwischen DLL könntest du somit die eigentliche DLL dynamich laden und dadurch sollte die eigentliche DLL auch zu ersetzen sein.
|
Re: Dll zum Löschen bzw. Ersetzen freigeben
Zitat:
|
Re: Dll zum Löschen bzw. Ersetzen freigeben
@neolithos: Es geht ja hier nicht ums debuggen sondern darum das der Explorer die DLL nicht wieder freigibt. Und wenn man ihm dann einfach die DLL weg klaut (in dem man den Prozess beendet) dann kann das auch wunderschöne Fehler hervorrufen. Soll aber nicht heißen das deine Variante schlechter ist (im Gegenteil). Es geht nur darum möglichst viele Lösungsmöglichkeiten aufzuzeigen und dann kann sich der Fragesteller die für ihn beste heraussuchen.
|
Re: Dll zum Löschen bzw. Ersetzen freigeben
Zitat:
|
Re: Dll zum Löschen bzw. Ersetzen freigeben
Zitat:
![]() Is' eigentlich recht gut. |
Re: Dll zum Löschen bzw. Ersetzen freigeben
Danke, für die verschiedenen Lösungsansätze. Ich habe das Programm "Unlocker" mal getestet, doch leider kann es die DLL nicht sofort freigeben. Erst beim nächsten Start von Windows sei es möglich, die DLL zu löschen.
Ich möchte natürlich die DLL nach meinen Code-Optimierungen später auch nutzen, dann wäre es mir egal, dass die DLL in Benutzung ist. Doch bis dahin möchte ich meine Veränderungen im Code halt sofort auf Bugs usw. testen können. @SirThornberry: Deine Variante wäre grundsätzlich eine Möglichkeit, jedoch benutze ich diese DLL für das Hinzufügen einiger Einträge in das ContextMenu des Explorers, der eine bestimmte Struktur innerhalb der DLL voraussetzt. Da kann ich doch keine DLL zwischenlegen, oder? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 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 by Thomas Breitkreuz