c # - Jeg har et kontekstmenupunkt i Explorer, nu hvordan er det bedst at kalde min proces på filen?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har tilføjet et kontekstmenupunkt i Explorer. Jeg tilføjede det via en ændring af registreringsdatabasen. Højreklik på en fil, jeg vil ringe til min kompression algo på den.


I øjeblikket er denne komprimeringsfunktion en metode i et C # klasse bibliotek. Jeg har en grundlæggende Visual Studio 2010-løsning indeholdende dette klassebibliotek (1 klasse, 1 ressourcefil) og et installationsguiden projekt (meget enkelt). I øjeblikket, når jeg kører 'installere' på denne installationsguide, klarer jeg at have en DLL til klassebiblioteket, og min ressourcefil faldt på den placering, der blev givet ved installationen.


Fra min registreringsdatabase er jeg i stand til at køre en kommando. I øjeblikket kører jeg notepad.exe på den højre klikede fil.


1. Kan jeg på en eller anden måde registrere min DLL for at ringe til sine funktioner? (Jeg kigger ikke på en shell-udvidelse, og jeg havde indtryk, at der var noget enklere)


2. Ellers har jeg ikke noget imod at oprette en .exe med en konsol-applikation eller lignende. Vil jeg få filepathen fra args-parameteren i min Main (string [[]] args)?


3. I valgmulighed 2, hvor skal jeg henvise til min .exe? Jeg kan ikke se Notepad ++ overalt i mine miljøvariabler, og det er stadig muligt at ringe uden at angive stien.


Tak gutter !

Bedste reference


1. Med advarsler; http://blogs.msdn.com/b/codefx/archive/2010/09/14/writing-windows-shell-extension-with-net-framework-4-c-vb-net-part-1.aspx [[[2]


2 & 3 Hvis du bruger den enklere tilgang til at forbinde en eksekverbar simpelthen:


your\_file\_typeshellopencommand (default) = "c:yourapp.exe" "\%1"


og din app modtager kommandolinjen.