Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic
> Menu kontekstowe a CD rom Wsuń / Close Wysuń / Eject
nietopyrz
post 19/01/2008, 15:44
Post #1


Second Rank
Ikona grupy

Grupa: Użytkownicy +
Postów: 90
Dołączył: 30/11/05
Użytkownik nr: 60.825



CYTAT(woroo @ dobreprogramy.pl)
(sposób spisany, z pewnymi poprawkami, stąd)
1) należy ściągnąć sobie taki programik.
2) rozpakować to i wgrać powiedzmy do katalogu "%SystemRoot%\system32" (można też do innego, ale należy wtedy pamiętać, że jeżeli nie będzie to katalog do którego mamy dostęp bez podawania całej ścieżki dostępu to będzie trzeba tę ścieżkę podać przy wywołaniu programu - o tym też trochę niżej)
3) teraz troszku zmodyfikować rejestr, najłatwiej skopiować to co jest poniżej do nowego pliku tekstowego i nazwać np. FIX.REG

Kod: Zaznacz cały
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell\ZamknijCD]
@="&Zamknij CD"

[HKEY_CLASSES_ROOT\Drive\shell\ZamknijCD\command]
@="cdr.exe close all"

po czym kliknąc na ten plik 2 razy, i 2 razy potwierdzić OK.
uwagi:
- oczywiście klucz "ZamknijCD" można se nazwać inaczej,
- samą nazwę opcji, która będzie widoczna w menu kontekstowym - "&Zamknij CD" - też se można nazwać inaczej (znaczek ampersand (&) poprzedza literę, którą chcielibyśmy aby aktywowała naszą funkcję z klawiatury - o ile już inna opcja tej litery nie wykorzystuje biggrin.gif - i można se go pominąć),
- jeśli program cdr.exe wgraliśmy do katalogu, do którego ścieżka nie jest dopisana do zmiennej systemowej PATH, to przed wywołaniem programu trzeba jeszcze napisać ścieżkę dostępu do niego,
- słówko "all" możemy zastąpić literą napędu który chcemy zamykać, gdy jest "all" to pewnie zamyka każdy/wszystki napędy - nie sprawdziłem tego bo mam tylko jeden biggrin.gif,
4) no i to wszystko, teraz w menu kontekstowym dla napędu optycznego pojawi się nowa opcja "Zamknij CD" (albo inna, którą se wybraliście)
5) są też małe minusiki tego sposobu, ale jak dla mnie są tak małe, że można się przyzwyczaić, a mianowicie po pierwsze: nowa opcja nie jest obok opcji "wysuń", tylko trochę wyżej w menu, przemieszana razem z opcjami innych zainstalowanych programów, i po drugie: nowa opcję mają nie tylko ikonki napędów optycznych ale i ikonki dysków twardych biggrin.gif
6) osoba na forum z którego jest spisany sposób miała jakieś problemy:

Ten trik działa dość dziwnie... Jak klikam prawym na napędzie optycznym, otrzymuję "Nazwa katalogu jest nieprawidłowa". Jeżeli kliknę na dysku twardym, program wykonuje się i zamyka CD

ja tych problemów nie zaobserwowałem
7) ten programik ma jeszcze możliwość otwierania napędu (wywoływany z opcją "open LITERA_NAPĘDU"), można se dorobić dodatkową opcję otwierania w podobny sposób, ale nie wiem po komu by była druga opcja otwierania CD biggrin.gif
8 ) no i na koniec wspomnę, że ów programik działa równie dobrze z linii komend


Program z linka wygasł więc zamieszczam nowego.
http://www.klmsoftware.net/downloads/CDR.zip

Innym wyjściem może być http://www.cdrinfo.pl/downloads/Utils-DVD-CDROM

Nie byłbym sobą jakbym nie szukał jeszcze prostszego rozwiązania.
Wiem, że za m.kontekstowe dysków są odpowiedzialne wpisy
HKEY_CLASSES_ROOT\Drive\Shell
HKEY_CLASSES_ROOT\Drive\ShellEx\ContextMenuHandlers
HKEY_CLASSES_ROOT\Folder\Shell
HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers
no dobrze skoro tak to gdzie się znajduję opcja "wysuń", która tak naprawdę pokazuje nam sie tylko przy napędach a nie tak jak w/w we wszystkich dyskach?
Go to the top of the page
 
+Quote Post
picasso
post 19/01/2008, 16:55
Post #2


Expert Rank
Ikona grupy

Grupa: Na emeryturze
Postów: 36.724
Dołączył: 27/05/03
Skąd: Był Kraków Jest Holandia
Użytkownik nr: 2.797



Ta metoda skopiowana z neowin ma liczne skutki uboczne i jest nieestetyczna. Nie dość, że zamyka wszystkie otwarte tace po kolei (jak ALL to ALL tongue.gif), to jeszcze dyski twarde też to dostają, explorer jest na zawiasie (jest zablokowany dopóki nie ukończy się instrukcja ALL), oraz tłowo miga pop-up cmd (choć cmd da się ukryć, ale do tego znowuż potrzebny kolejny program np. CMDOW).

CYTAT
ten programik ma jeszcze możliwość otwierania napędu (wywoływany z opcją "open LITERA_NAPĘDU"), można se dorobić dodatkową opcję otwierania w podobny sposób, ale nie wiem po komu by była druga opcja otwierania CD


Heh ale ja mam dwa (i nie chcę ich wsuwać razem). Tym modem rejestru nie da się rozgraniczyć na dwa różne dyski reagujące indywidualnie, bo to by oznaczało kuriozalne wymnożenie ilości wejść kontekstowych. Jeden CD-ROM miałby aż dwie = jedną wsuwającą jego samego, drugą wsuwającą kolegę. laugh.gif


Tipem tej samej kategorii (ale ciut lepszym i o tym zaraz) jest też NirCMD (lekka konsolówka, skopiować plik NirCmd.exe do system32) w kombinacji z takim importem:

KOD
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell\Nircmd]
@="Wsuń"

[HKEY_CLASSES_ROOT\Drive\shell\NirCmd\command]
@="nircmd cdrom close %1:"


NirCMD jest lepszy niż CDR.EXE, bo nie próbuje wsuwać wszystkich tac (= nie ma wynikowego zawiasu), tylko robi to dla klikniętego konkretnego dysku. I nie ma brzydkiego cmd. Ale skutki "kosmetyczne" w menu kontekstowym te same, bo klucz Drive, z którym kombinujesz, należy do wszystkich dysków i nie rozróżnia, który jest optyczny a który twardy. Dlatego te metody aplikują menu do wszystkich dysków a nie tylko do optycznych. Tak samo jest jeśli w kluczu Drive zrobisz sobie "Otwórz w wierszu poleceń" akurat pod twarde dyski, a ta pozycja menu wskakuje też do optyków. tongue.gif Konstrukcja, o której tu mowa, zawsze będzie tak reagować = niezależnie jaki program konsolowy użyjesz....

Tu raczej trzeba by było brać z Drive podklucz ShellEx, ale specyfika tego klucza wymaga rejestrowania {klasy} powiązanej z DLL wykonującym zestaw konkretnych instrukcji i jest to rzecz programistyczna (OPIS), bo skąd wytrzaśniesz DLL. I właśnie:


Ja wolę ten sposób:

KLIK

Bazuje na rejestrowaniu pliku cdeject.dll (który elegancko się umieszcza w system32), z importowaniem:

KOD
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{02A07E80-EFA2-11D4-8306-A7EBD4C50C7C}]
@="CDEject Context Menu Shell Extension"

[HKEY_CLASSES_ROOT\CLSID\{02A07E80-EFA2-11D4-8306-A7EBD4C50C7C}\InprocServer32]
@="C:\\WINDOWS\\system32\\cdeject.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\Drive\shellex\ContextMenuHandlers\{02a07e80-efa2-11d4-8306-a7ebd4c50c7c}]
@="{02a07e80-efa2-11d4-8306-a7ebd4c50c7c}"


Wprowadza dokładnie tę opcję tylko dla optycznych. To najprostsza i efektywna metoda bez instalowania dużych programów i robi dokładnie to czego się od niej oczekuje = tylko CD-ROMy, a nie hadeki hurtem. Wada = opcja chyba będzie tylko po angielsku. Tego nie jestem pewna, bo nie mam dostępu do polskiego Windows i nie wiem jak to DLL się zachowuje na PL, ale na 99% zostanie anglojęzycznie.

No tak, "za dużo dla ciebie" tongue.gif. Ale oblicz dokładnie. Metoda, którą mi zacytowałeś a moja metoda = obie wpuszczają po jednym pliku i obie wprowadzają wpisy rejestru, różni je jednak sposób w jaki załatwiają sprawę .. na korzyść mojej.

CYTAT
no dobrze skoro tak to gdzie się znajduję opcja "wysuń", która tak naprawdę pokazuje nam sie tylko przy napędach a nie tak jak w/w we wszystkich dyskach?


Obiekt "wtopiony". Są rzeczy wrośnięte w shella i ich nie zedytujesz bez pomocy zewnętrznego programu i w sposób jaki byś chciał. Czasem musisz się z tym pogodzić. tongue.gif Przecież nie wszystkie opcje menu kontekstowego są zapisane w rejestrze w kluczach menu kontekstowych (i nie wszystkie da się wprowadzić na bazie tylko edycji rejestru). Przykładowo typ Kopiuj / Wklej etc. = czy to nie zastanawia teraz dlaczego jedne menu mają inne zestawy i nie ma tego w kluczach rejestru tam gdzie szukasz? Ich przekształcenie / usunięcie (a już o zgrozo dodawanie nowych pozycji w tym typie) wymaga moda pliku systemowego (jeśli mówimy o robocie bez udziału programistyki i programów zewnętrznych). Wzmianka o prostym edytowaniu:

KLIK

Eject CD-ROMu też tam jest. A Close Microsoft wyeliminował chyba nie bez powodu. Coś mi tak miga, że taka opcja w starych systemach chyba była, ale ją usunięto w nowych edycjach Win (kompatybilność sterowników romów?).





.
Go to the top of the page
 
+Quote Post
nietopyrz
post 19/01/2008, 19:55
Post #3


Second Rank
Ikona grupy

Grupa: Użytkownicy +
Postów: 90
Dołączył: 30/11/05
Użytkownik nr: 60.825



Dziwne, że nie znalazłem tego tematu na forum a szukałem właśnie tagami menu kontekstowe. No ale ostatnio dziwne rzeczy się z nim dzieją.

NirCMD widzę jest często wykorzystywany np. ComboFix. U on właśnie zadziałał a Cdeject niestety nie pewnie z powodu wersji językowej os'a. Nir ma jedną tylko wadę jak dla mnie- niestety "wysuń" umiejscawia się w górnej części menu a nie tak "ładnie" jak cdeject.
Za co są odpowiedzialne te "dziwne" numerki {02a07e80-efa2-11d4-8306-a7ebd4c50c7c} w cde?

PS: To wcale nie jest dla mnie za dużo :] pobawię się jeszcze shellem może coś zmodzę.
Go to the top of the page
 
+Quote Post
picasso
post 19/01/2008, 20:02
Post #4


Expert Rank
Ikona grupy

Grupa: Na emeryturze
Postów: 36.724
Dołączył: 27/05/03
Skąd: Był Kraków Jest Holandia
Użytkownik nr: 2.797



CYTAT
U on właśnie zadziałał a Cdeject niestety nie pewnie z powodu wersji językowej os'a. Nir ma jedną tylko wadę jak dla mnie- niestety "wysuń" umiejscawia się w górnej części menu a nie tak "ładnie" jak cdeject.


Wątpię. Na forum hack był prowadzony na polskim Windows bez problemu. Czy: ścieżka w REG jest zgodna, czy był reset komputera po rejestracji pliku cdeject.dll, czy wykonywałeś regsvr32 cdeject.dll? Może też to DLL nie wspólpracuje dobrze z twoim napędem. Czyli opcję widzisz tylko ona nie reaguje? Czy tak?

A z tym umiejscowieniem opcji NirCmd to się zastanowię, jak to przesunąć w dół. Jak wymyślę = dam znać.

CYTAT
Za co są odpowiedzialne te "dziwne" numerki {02a07e80-efa2-11d4-8306-a7ebd4c50c7c} w cde?


Popatrz post wyżej. Jeszcze dodałam linka Microsoftu o co chodzi:

CYTAT(picasso)
Tu raczej trzeba by było brać z Drive podklucz ShellEx, ale specyfika tego klucza wymaga rejestrowania {klasy} powiązanej z DLL wykonującym zestaw konkretnych instrukcji i jest to rzecz programistyczna (OPIS), bo skąd wytrzaśniesz DLL.

Po przeczytaniu zrozumiesz co to za numery.... Dlatego gotowe DLL to jest najkrótsza droga na wymęczenie tego.

CYTAT
NirCMD widzę jest często wykorzystywany np. ComboFix.


Tak. Popatrz jeszcze tu na ostatni post: KLIK. Topik o przekształcaniu wyglądu XP na Vista-like, ale na końcu jest o przerobieniu menu zamykania systemu przy udziale NirCmd. Można brać ogólnie. Mam tak zrobione, bo jest lepsze niż to co daje MS i tam też można sobie zrobić skróty CD-ROMu. tongue.gif






.
Go to the top of the page
 
+Quote Post
nietopyrz
post 19/01/2008, 20:32
Post #5


Second Rank
Ikona grupy

Grupa: Użytkownicy +
Postów: 90
Dołączył: 30/11/05
Użytkownik nr: 60.825



Tak był reset ale zapomniałem o zarejestrowaniu pliku dll '-_-
Tym razem obeszło się bez reseta nawet.

cdeject.dll próbowałem edytować ResHacker'em aby zmienić nawę z "insert" na coś bardziej swojsko brzmiącego lecz wyskakuje mi komunikat "this file has a non-standard resource layout... it has probably been compressed with an "EXE compressor"." cóż jakieś zabezpieczenie.

Tak dodałem od razu ten artykuł MS do przeczytania w najbliższym czasie...

Odwiedziłem właśnie stronę NirCmd. Niewątpliwie jest tam pare ciekawych aplikacji. Ciekawe jest to, że 1/3 programów służy do wyciągania haseł z różnych aplikacji czy nawet systemów. Potestowałem też szybko RegScanner'a lecz nie ma możliwości edycji rejestru w sobie- otwiera regedit aczkolwiek szybciej znajduję wartości i można wybierać kryteria szukania.
Go to the top of the page
 
+Quote Post
picasso
post 19/01/2008, 20:48
Post #6


Expert Rank
Ikona grupy

Grupa: Na emeryturze
Postów: 36.724
Dołączył: 27/05/03
Skąd: Był Kraków Jest Holandia
Użytkownik nr: 2.797



CYTAT
Tym razem obeszło się bez reseta nawet.


Czyli działa opcja?

CYTAT
wyskakuje mi komunikat "this file has a non-standard resource layout... it has probably been compressed with an "EXE compressor"." cóż jakieś zabezpieczenie.


To jest wynik użycia kompresora (obniżającego rozmiar). By móc plik edytować, trzeba go najpierw rozwalić dekompresując tym czym został skompresowany (często kompresor i dekompresor występują jako odddzielne aplikacje a czasem nie ma wcale dekompresora), po edycji (o ile wykonalna) ponownie skompresować. Sprawdziłam plik przez PEiD i podał mi, że kompresorem jest ASPack. Przejechałam plik przez UnASPack (tu ogólny zestaw linków rozwalających exeki klik, ale nie idą downloady). Otwiera się w Res Hackerze ale ... ja tam nie widzę nic do edycji.

Tu trzeba inaczej kombinować. Może dziś w nocy nad tym posiedzę.




.
Go to the top of the page
 
+Quote Post
nietopyrz
post 19/01/2008, 20:56
Post #7


Second Rank
Ikona grupy

Grupa: Użytkownicy +
Postów: 90
Dołączył: 30/11/05
Użytkownik nr: 60.825



Działa, piękne dzięki.

No to mam długą lekturę do przeczytania. MS, zasoby no i menu zamykania systemu choć do tej pory używałem shutdown.exe -f -s -t 0 ale lektura się przyda gdyż czasami komputer z zamykaniem ale to już jak sobie nie poradzę temat na inny topic smile.gif
Go to the top of the page
 
+Quote Post
picasso
post 20/01/2008, 10:06
Post #8


Expert Rank
Ikona grupy

Grupa: Na emeryturze
Postów: 36.724
Dołączył: 27/05/03
Skąd: Był Kraków Jest Holandia
Użytkownik nr: 2.797



Nie da się tego spolszczyć z poziomu opcji Windows ..... Jest to menu dynamiczne, w zależności od stanu tacy Insert zamienia się na Eject i vice versa. Tu jest potrzebne przeprogramowane DLL .... I na to już tu nie mam triku, musisz się chwilowo pogodzić z obecnością opcji anglojęzycznej. Kosmetycznie: w związku z morfowaniem Inserta na Eject domyślna opcja Windows już zbędna, ale sposób jej wywalenia to już tylko edycja pliku shell32.dll lub pomoc jakiegoś innego programu, który potrafi ukrywać obiekty wtopione w menu.

W zasadzie w metodzie cdeject.dll to można sobie dowolny plik DLL brać, tylko trzeba go mieć skąd brać. I tu jest problem. Taka akcja musiałaby rozłożyć się na: wybrać jakiś program do wypalania płyt CD z taką funkcją (albo w ogóle program dedykowany do mataczenia z tacami), zainstalować program nagrywając zmiany które wprowadza, ukraść mu DLL które za to odpowiada, program wywalić, plik DLL zarejestrować powyższym trikiem klucza ShellEx trzymając się tego jak instalator to rejestrował w systemie.

Dla własnej ciekawości wykonałam test na Virtual CloneDrive (on wprowadza opcję Close Tray / Zamknij tackę). Podebrałam mu plik ElbyVCDShell.dll odpowiedzialny za wyświetlanie tej opcji i przerzuciłam do system32, Clone wywaliłam i zaimportowałam taki edit (wzorując się na tym jak Clone rejestrowało własny plik):

KOD
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B7056B8E-4F99-44f8-8CBD-282390FE5428}]
@="VirtualCloneDrive Shell Extension"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B7056B8E-4F99-44f8-8CBD-282390FE5428}\InProcServer32]
@="C:\\WINDOWS\\system32\\ElbyVCDShell.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\Drive\shellex\ContextMenuHandlers\VirtualCloneDrive]
@="{B7056B8E-4F99-44f8-8CBD-282390FE5428}"


To jest dokładnie ten sam schemat jak z cdeject.dll, tylko klasa ma inny numerek. Niestety w tym konkretnym przypadku nie działa bez kompletnego VirtualClone. Prawdopodobnie DLL nie jest samodzielne i potrzebuje jeszcze sterownika Clone.... Dla tych co chcą korzystać z napędów wirtualnych to jest dobre jako kompletne rozwiązanie (a opcja wsuwania tacy jest spolszczona), ale samej funkcji nie da się chyba stamtąd wyrwać....

  • Natomiast znalazłam jeszcze mini CDTray.zip. Jest to skrypt AutoHotkey (już skompilowany, nie wymaga montażu tego programu), który umożliwia wsuwanie / wysuwanie tac CD-ROM wprost z opcji zasobnika lub na bazie skrótów klawiaturowych Winkey+ALT+litera dysku. Standalone, bez żadnych instalacji, czysta sprawa. Spodobało mi się dość.
  • W kwestii NirCmd, zamiast menu kontekstowego, można np. zrobić sobie gest myszkowy przez StrokeIt.


I na teraz nie mam już więcej pomysłów. Jedno jest pewne: ta funkcja jest niewykonalna bez pomocy skryptów lub dodatkowych aplikacji, a w menu kontekstowym musi być wykorzystany klucz ShellEx z odpowiednim DLL by adresatem opcji były tylko i wyłącznie CD-ROMy a nie wszystkie dyski.






.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 

RSS Wersja Lo-Fi Aktualny czas: 29/07/2010, 18:58
PRACA w IT