Windows - C ++ Shell Kontekstmenuudvidelse

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at oprette en kontekstmenuudvidelse til Windows-filer/mapper. Jeg har allerede prøvet meget, men intet fungerede for mig. Jeg har allerede en sådan udvidelse til 32-bit systemer, men det er forældet. Jeg vil gerne genskabe det ved hjælp af C ++ til 64-bit systemer.


Denne ene var tættest på hvad jeg vil gøre: Klick
Men det er for 32-bit systemer. Efter at have læst kommentarerne kunne jeg ændre og bygge det til x64. [3]


Registrering af det ved hjælp af system32/regsvr32.exe på mit 64-bit-system, fortæller, at det blev registreret. Alle registreringsdatabasen er oprettet korrekt. Men menupunktet vises ikke. Jeg har ingen anelse om hvorfor ...


Kan nogen hjælpe mig? Jeg kan uploade projektet for dig, hvis du vil.


UPDATE


Jeg bruger det oprindelige projekt fra linket ovenfor og ændrede følgende ting:


1) sæt mål til 'x64'


2) siden jeg ikke kan kompilere det, har jeg ændret følgende ting:


2.1) Før det indgår i stdafx.h tilføjede jeg:


#define \_ATL\_NO\_UUIDOF


2.2) Jeg ændrede UINT til UINT\_PTR her:


HRESULT CFSBankShellExtension::GetCommandString (
UINT\_PTR idCmd, 
UINT uFlags, 
UINT* pwReserved,
LPSTR pszName, 
UINT cchMax )


3) Jeg ændrede txtfile til * i .rgs-filen, så den skulle være applikeret på alle filtyper.


4) Jeg kunne kompilere og registrere det


Hvis du ikke kan hjælpe mig, ville det være cool, hvis du kunne uploade en skabelon, der vil fungere på x64-systemet.

Bedste reference


Denne artikel kan hjælpe dig, da det fungerede for mit projekt ..


Simple shell kontekstmenu [4]



  Kontekstmenuer for alle filer, mapper og drev

  
  Du kan også tilslutte kontekstmenuer til alle filer, mapper og drev af
  tilføjer poster til filtypen 's *, Directory og Drive registreringsdatabasen
  nøgler. For eksempel tilføjer XP PowerToys menuen Open Command Window Here
  til alle mapper med følgende registrerings script:

  
  REGEDIT4

  
  [[HKEY\_CLASSES\_ROOT \ Directory \ shell \ cmd]] @='Åbn kommandofolke her'

  
  [[HKEY\_CLASSES\_ROOT \ Directory \ shell \ cmd \ command]] @='cmd.exe/k \' cd
  \% L \ ''