schaffe es nicht eine shell extension zu debuggen



  • Ich habe vor ca. 10 Jahren eine shell extension programmiert und leider wurde jetzt ein Bug gefunden und ich schaffe es heute nicht mehr die shell extension zu debuggen.

    Das Projekt verwendet x64 als Ausgabeplattform, ich verwende VS 2019 in Englisch und habe unter Debugging > Command den Pfad 'C:\Windows\explorer.exe' eingestellt, wenn ich das debuggen starte geht die IDE nicht in den Debugmodus.

    Vielleicht hat hier jemand Erfahrung mit shell extensions, mein Projekt ist open source:

    https://github.com/stax76/OpenWithPlusPlus



  • @stax76 Hast Du den Debug-Build mit regsvr32 registriert?



  • @stax76 Je nach Windows-Version und Einstellungen werden neue Explorer Fenster nicht in einem eigenen Prozess ausgeführt, sondern in "dem" einen Explorer-Prozess. D.h. wenn du explorer.exe startest geht die IDE sehrwohl in den Debug-Modus um den gestarteten Prozess zu debuggen. Dieser neue Explorer Prozess "sieht" dann aber gleich dass nur ein Explorer Prozess für alle Fenster verwendet werden soll. Daraufhin schickt er dann eine Nachricht an den bereits laufenden Explorer Prozess dass dieser ein neues Fenster aufmachen soll, und beendet sich dann sofort wieder. Und damit wechselt die IDE dann sofort wieder zurück in den Edit-Modus -- weil der Prozess der debuggt werden sollte ja nicht mehr läuft.

    Kann man normalerweise aber in den Explorer-Einstellungen umstellen, siehe z.B. https://winaero.com/blog/how-to-start-file-explorer-in-a-separate-process-in-windows-10/

    Bzw. probier mal bei den Debug-Einstellungen als Argument /separate anzugeben. Laut dem Internetz sollte das auch reichen, dann musst du die Explorer-Einstellung nicht ändern.


Log in to reply