win explorer context menu + winforms   otázka

C#

Dobrý den.

Tvořím desktopovou aplikaci (c# - winforms, .net 3.5),

do níž je třeba umožnit uživatelům předat požadované soubory (obrázky), resp jejich path, pomocí kontextového menu exploreru.

Dosáhl jsem toho přidáním následujícího kusu reg kodu:

[HKEY_CLASSES_ROOT\Folder\shell\HromadneZverejneniObrazkuWebhouseVISMOonline]
"@"="Můj text položky kontextového menu"

[HKEY_CLASSES_ROOT\Folder\shell\vlastni-nazev\command]
"@"=""c:\Program Files\webhouse\vismoOnline\vismoUploadClient.exe" " %L""

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\vlastni-nazev]
"@"="Můj text položky kontextového menu"

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\vlastni-nazev\command]
"@"=""c:\cesta\aplikace.exe.exe" " %L""

[HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\vlastni-nazev\]
"@"="Můj text položky kontextového menu"

[HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\vlastni-nazev\command]
"@"=""c:\cesta\aplikace.exe.exe" " %L""

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shellex\ContextMenuHandlers\vlastni-nazev\]
"@"="Můj text položky kontextového menu"

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shellex\ContextMenuHandlers\vlastni-nazev\command]
"@"=""c:\cesta\aplikace.exe.exe" " %L""

Cestu k vybranému souboru dostanu v poli args[] mainu() - to je přesně žádané.

Ovšem tohle funguje pouze, vybere-li uživatel pouze jeden obrázek. Při výběru dvou a více obrázků se aplikace jednoduše vůbec nespustí.

Ani po mnoha hodinách hledání vůbec nevím, kde hledat řešení. Zkusil jsem místo parametru " %L" commandu v registrech použít "%1", výsledek ovšem úplně stejný. Nepomohla ani ani změna typu klíče ze stringu na multistring.

Není to třeba povolit někdě na straně konfigurace mé aplikace?

Předem díky za tipy

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Trocha googlení našla http://msdn.microsoft.com/en-us/library/...

konkrétně:

Registry values must to set for verbs to handle situations where a user selects a single item, multiple items and selections. The possible values for the verb selection model are as follows:

* Specify the MultiSelectModel value for all verbs. If the MultiSelectModel value is not specified, then it is inferred from the type of verb implementation you have chosen. For COM based verbs (such as DropTarget and ExecuteCommand) Player is assumed, and for the other methods Document is assumed.

* Specify Single for verbs that support only a single selection.

* Specify Player for verbs that support any number of items.

* Specify Document for verbs that create a top level window for each item.

Doing so limits the number of items activated, and thereby avoids the possibility of system resource exhaustion in the event that the user opens too many windows.

Neřeší toto váš problém?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback