logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak dodać pozycję do menu kontekstowego dla wszystkich plików w Delphi?

blackrage 11 Lis 2004 22:20 1620 9
REKLAMA
  • #1 978878
    blackrage
    Poziom 15  
    Posty: 177
    Pomógł: 10
    Ocena: 13
    Nie wiem jak w delphi dodać nową pozycję do menu rozwijanego w momencie kliknięcia prawym przyciskiem myszki na pliku.
    Wiem jak dodać taką pozycję dla określonego typu pliku, a zależy mi na tym - aby pokazywało się to dla wszystkich plików (np. jak pozycje związane z WinRarem).

    Zamykam. - arnoldziq
  • REKLAMA
  • #2 978969
    maxdutka
    Poziom 15  
    Posty: 169
    Pomógł: 4
    Ocena: 12
    Wrzuć sktór do folderu "SendTo" (zależnie od systemu jest w różnych miejscach)
  • #3 986325
    blackrage
    Poziom 15  
    Posty: 177
    Pomógł: 10
    Ocena: 13
    Ja chciałbym to zrobić przez ingerencję w rejestr sysytemowy.
    I nie bardzo wiem o co Ci chodzi z tym folderem, ja mam xp i on sam nie potrafił znależć tego folderu...
  • REKLAMA
  • #4 987107
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Wydawało mi się że Microsoft wypuszcza coś takiego jak "Internet Explorer SDK" w swoim pakiecie MSDN, przypuszczam że tam powinieneś znaleźć jak dodać to do menu oraz wiele innych sztuczek np toolbar w IE.
    Mógłbyś spróbować też śledzić zmiany w rejestrze jakie wprowadzają programy typu download accelerator.
  • REKLAMA
  • #5 987370
    Akane
    Poziom 27  
    Posty: 638
    Pomógł: 144
    Ocena: 33
    dodaj wpis w kluczu *
    [HKEY_CLASSES_ROOT\*\shell]
    
    [HKEY_CLASSES_ROOT\*\shell\Podgląd w notatniku]
    
    [HKEY_CLASSES_ROOT\*\shell\Podgląd w notatniku\command]
    @="notepad %1"
    
    [HKEY_CLASSES_ROOT\*\shell\Szukaj i podmieniaj]
    
    [HKEY_CLASSES_ROOT\*\shell\Szukaj i podmieniaj\command]
    @="D:\\IBpro\\projects\\FindReplaceInFile\\FindReplace.exe %1"
    
    [HKEY_CLASSES_ROOT\*\shell\WinHex]
    
    [HKEY_CLASSES_ROOT\*\shell\WinHex\command]
    @="d:\\totalcmd\\winhex11.15\\WinHex2.exe %1"
  • REKLAMA
  • #6 988563
    maxdutka
    Poziom 15  
    Posty: 169
    Pomógł: 4
    Ocena: 12
    Z tym folderem to tak: w XP dla administratora będzie: C:\Documents and Settings\Administrator\SendTo , on jest ukryty i może temu system Ci go nie znalazł.
  • #7 989747
    blackrage
    Poziom 15  
    Posty: 177
    Pomógł: 10
    Ocena: 13
    Akane dzięki bardzo, owszem działa.
    Tylko jeszcze, jedna sprawa - menu nie pojawia się przy kliknięciu na folderze...
    Jak to zrobić?
  • #8 989781
    Akane
    Poziom 27  
    Posty: 638
    Pomógł: 144
    Ocena: 33
    HKEY_CLASSES_ROOT\Folder\shell\linia poleceń\command = cmd.exe /k cd "%1"
    podobnie w HKEY_CLASSES_ROOT\Drive
  • #9 991826
    blackrage
    Poziom 15  
    Posty: 177
    Pomógł: 10
    Ocena: 13
    ...tak poza tematem to tworzę "genialną aplikację", która ma za zadanie pobieranie ikon z plików, pod prawym bedzie pozycja "pobierz ikony" i o to całe zamieszanie....
    Ale tak na poważnie - to jeszcze raz dzięki.
  • #10 992113
    Akane
    Poziom 27  
    Posty: 638
    Pomógł: 144
    Ocena: 33
    no problem, ja już naskrobałem taki program - ładował ikony do ListView
    Może jeszcze jedna podpowiedź dot. rozszeżeń plików w rejestrze.
    Chcąc zmienić/dodać coś to menu jakiegoś typu pliku - np. .exe trzeba znaleźć najpierw HKEY_CLASSES_ROOT\.exe i tam odczytać wartość domyślną (zazwyczaj exefile) - teraz trzeba znaleźć HKEY_CLASSES_ROOT\exefile i tam szarżyc. Niekiedy jest więcej przekierowań, nawet do objektów COM i żeby taki klucz obadać potrzeba regedit z opcją CALL i RET

    Wprawdzie mam programik który otwiera regedit na jakimś wskazanym kluczu (kopie regedita, wpisuje klucz do rejestru i uruchamia regedit) ale nie jest to wcale wygodne i można się pogubić. W totalcmd można przeglądać kilka(naście) kluczy naraz - opcję pracy w zakładkach

Podsumowanie tematu

✨ Dyskusja dotyczy dodania pozycji do menu kontekstowego dla wszystkich plików w systemie Windows za pomocą Delphi. Rozwiązaniem jest modyfikacja rejestru systemowego w kluczu HKEY_CLASSES_ROOT*shell, gdzie można dodać własne polecenia wywołujące aplikacje z parametrem %1 wskazującym na wybrany plik. Przykłady wpisów obejmują uruchamianie Notatnika, własnych programów czy WinHex. Alternatywnie, można użyć folderu "SendTo" w profilu użytkownika, jednak jest on ukryty i trudny do znalezienia w Windows XP. Aby dodać pozycje menu kontekstowego dla folderów i dysków, należy analogicznie modyfikować klucze HKEY_CLASSES_ROOTFoldershell oraz HKEY_CLASSES_ROOTDrive. Wskazano także narzędzia i metody śledzenia zmian w rejestrze, np. poprzez analizę wpisów programów typu download accelerator. Dyskusja zawiera praktyczne porady dotyczące nawigacji w rejestrze i tworzenia własnych rozszerzeń menu kontekstowego w systemie Windows.
REKLAMA