"Kopiuj/wyślij do folderu" w menu kontekstowym powoduje błąd


(Egrabrych) #1

Witam !

Przed laty, w czasach "królowania" Windows 98, suplement o nazwie "Power Toys" umożliwiał uzupełnienie menu kontekstowego o polecenia "Kopiuj do folderu" i "Wyślij do folderu". Za realizację tych poleceń była odpowiedzialna biblioteka o nazwie "sendtox.dll", instalowana w ramach wyżej wskazanego suplementu.

Narodziny Windows XP wprowadziły zmianę polegającą na wprowadzeniu odnośnych poleceń do menu podstawowego Eksploratora Windows i przeniesienie ciężaru ich realizacji na bibliotekę "shell32.dll"; równocześnie jednak polecenia te znikły z menu kontekstowego (gdyż biblioteka "sendtox.dll" nie współpracowała z nowym systemem). Sytuacja ta wywołała dociekliwość wielu osób, które dostrzegły, że przywrócenie w kluczu Rejestru:

[HKEY_LOCAL_MACHINE\Software\CLASSES\AllFilesystemObjects\shellex\ContextMenuHandlers]

podkluczy: "Copy To" i "Move To" o zawartości wzorowanej na "Power Toys", skutecznie owe polecenia w menu kontekstowym przywraca. Informacja ta, w formie porady pod hasłem "jak usprawnić system Windows XP" znalazła się w wielu różnych zbiorach porad, w Internecie i nie tylko.

Zdawać by się mogło, że temat jest wyczerpany... może poza kwestią braku odpowiedzi na pytanie: czemu u licha Microsoft sam nie umieścił w Rejestrze wymienionych przed chwilą podkluczy, jednak był on wyczerpany w istocie... tylko pozornie ! Całą rzecz testowałem na kilku różnych komputerach, z systemem Windows XP Home i Professional, więc o przypadku nie może być mowy (zresztą każdy chętny może ów test powtórzyć), umieszczając w Rejestrze podklucze:

[HKEY_LOCAL_MACHINE\Software\CLASSES\AllFilesystemObjects\shellex\ContextMenuHandlers\Copy To]

@="{C2FBB630-2971-11d1-A18C-00C04FD75D13}"

[HKEY_LOCAL_MACHINE\Software\CLASSES\AllFilesystemObjects\shellex\ContextMenuHandlers\Move To]

@="{C2FBB631-2971-11d1-A18C-00C04FD75D13}"

i sprawdzając, czy są tam już (powinny być) klucze:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{C2FBB630-2971-11d1-A18C-00C04FD75D13}]

@="Microsoft CopyTo Service"

"flags"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{C2FBB630-2971-11d1-A18C-00C04FD75D13}\InProcServer32]

@=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,74,65,6d,33,32,5c,53,\

48,45,4c,4c,33,32,2e,64,6c,6c,00

"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{C2FBB631-2971-11d1-A18C-00C04FD75D13}]

@="Microsoft MoveTo Service"

"flags"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{C2FBB631-2971-11d1-A18C-00C04FD75D13}\InProcServer32]

@=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,74,65,6d,33,32,5c,53,\

48,45,4c,4c,33,32,2e,64,6c,6c,00

"ThreadingModel"="Apartment"

gdzie zapis heksadecymalny: hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,74,65,6d,33,32,5c,53,\

48,45,4c,4c,33,32,2e,64,6c,6c,00

odpowiada zapisowi tekstowemu: %SystemRoot%\system32\SHELL32.dll

Przy tak uzupełnionym Rejestrze należało teraz wybrać w dowolnym folderze co najmniej dwa pliki tekstowe (*.txt), zaznaczyć je i w dowolny sposób wybierając polecenie "Otwórz" spróbować otworzyć je równocześnie w Notatniku (mogą być to również pliki innego, byle tylko jednakowego typu , otwierane domyślnie dowolnym innym niż Notatnik programem; ja podaję tu jednak opis tego, co sam sprawdziłem). W warunkach normalnych powinny otworzyć się niezależne okna Notatnika dla każdego z zaznaczonych plików i nic poza tym; jednak przy obecności powyższych poleceń w menu kontekstowym oprócz działania Notatnika pojawią się dodatkowo okna poleceń "Kopiuj do folderu" i "Przenieś do folderu" - choć przecież w żadnym momencie naszego doświadczenia polecenia te nie były wywoływane !

Gdy zaobserwowałem ów błąd, w pierwszej chwili byłem skłonny przypisywać to zjawisko nieprawidłowym powiązaniom wewnątrz pliku "shell32.dll"; z czasem jednak zacząłem podejrzewać, że być może przyczyna tkwi w samym Rejestrze. Zamierzam oczywiście w wolnym czasie dalej zgłębiać ów problem, jeśli jednak znalazłby się ktoś chętny i gotowy mnie w tym wesprzeć (może znający ów problem głębiej niż ja), z chęcią i życzliwością przyjmę jego rady i wskazówki.

A zatem zapraszam do współpracy i pozdrawiam !

Ryszard


(DJ J) #2

Hmm, może jest to związane z opisywanym przeze mnie problemem:

http://forum.dobreprogramy.pl/problem-przy-otwarciu-edycji-kilku-plikow-graficznych-raz-t349429.html

Też kiedyś skorzystałem z podobnej porady i przez modyfikację w rejestrze utworzyłem "Kopiuj do folderu"/"Przenieś do folderu" w menu kontekstowym.

Pozdrawiam!