Ikona ShellNew dla „.” Typ pliku


8

Pomyślnie utworzyłem polecenie ShellNew, dzięki czemu mogę utworzyć nowy pusty plik bez rozszerzenia. Plik reg wygląda następująco:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\.]

[HKEY_CLASSES_ROOT\.]
@="emptyFile"

[HKEY_CLASSES_ROOT\.\ShellNew]
"NullFile"=""
@="Empty File"
"ItemName"=""

[HKEY_CLASSES_ROOT\.\ShellNew\Config]
"NoExtension"=""

[-HKEY_CLASSES_ROOT\emptyFile]

[HKEY_CLASSES_ROOT\emptyFile]
@="Empty File"

[HKEY_CLASSES_ROOT\emptyFile\DefaultIcon]
@="%SystemRoot%\\system32\\imageres.dll,2"

To działa fantastycznie. Tworzy plik tak, jak tego chcę, ale ikona wyświetlana w oknie ShellNew jest ikoną partycji systemowej w następujący sposób:

1

Jak mogę zmienić tę ikonę, aby pasowała do DefaultIcon, który podam dla samego typu pliku? Próbowałem utworzyć ciąg znaków „Ikona”, taki jak to, co musiałem zrobić dla elementów menu Unity i Sublime Text, i to nie działało bez względu na to, gdzie go umieszczę.


Mogę replikować. Próbuję dowiedzieć się, czy jest jakiś sposób, aby to naprawić ...
Karan

Przypuszczam, że jeszcze nie znalazłeś rozwiązania? Myślę, że musi być coś w rejestrze, co oznacza, że ​​skoro nie ma powiązanego typu pliku, zakłada, że ​​jest to dysk?
GodsBane

Wygląda na to, a gdybym to wymyślił, oczywiście napisałbym odpowiedź.
Karan

Nie mogę tego powtórzyć.
Visual Vincent,

Odpowiedzi:


3

Spróbuj, działa jak magia.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.]
@="emptyFile"

[HKEY_CLASSES_ROOT\.\ShellNew]
"NullFile"=""
@="Empty File"
"ItemName"=""
"IconPath"="C:\\windows\\system32\\imageres.dll,2"

[HKEY_CLASSES_ROOT\.\ShellNew\Config]
"NoExtension"=""

[-HKEY_CLASSES_ROOT\emptyFile]

[HKEY_CLASSES_ROOT\emptyFile]
@="Empty File"

[HKEY_CLASSES_ROOT\emptyFile\DefaultIcon]
@="%SystemRoot%\\system32\\imageres.dll,2"

Tylko zmień. Dodałem IconPath na poziomie .ext. Powiązania typów plików to niesamowite rzeczy!


Inną rzeczą jest to, że dla DefaultIcon ProgIDa ustawiłeś ciąg rozwijany, który naprawdę powinien być typu REG_EXPAND_SZ zamiast REG_SZ. Niezależnie od tego wydaje się, że ShellNew nie używa zdefiniowanej tam ikony.
w32sh

Tak, to robi. Dobra robota!
Ben N

Wow, w wieku ~ 9 miesięcy i taka prosta poprawka. Wspaniała praca!
GodsBane

Powiedział, że nagroda wkrótce się zakończy „za 2 godziny”. Właśnie wtedy odpowiedziałem :)
w32sh

0

Czy chcesz użyć „imageres.dll, 3”, ponieważ jego 3. ikona w imageres.dll?

Możesz wypróbować domyślną aplikację Edytor programów, otworzyć program, kliknąć ikony, znaleźć typ pliku, kliknąć przycisk Dalej, wybrać ikonę z obrazków i zapisać jako plik .REG, a następnie sprawdzić, co jest w środku .reg.


Nie można do tego użyć Edytora programów domyślnych, ponieważ plik, który tworzy, nie ma rozszerzenia.
GodsBane

@ orion310591: Indeks zaczyna się od 0. Więc technicznie jest to druga ikona.
w32sh

0

Jeśli możesz znaleźć typ „Pusty plik” w narzędziu FileTypesMan, możesz tam zmienić domyślną ikonę.

FileTypesMan: http://www.nirsoft.net/utils/file_types_manager.html


Mam wrażenie, że tego rodzaju narzędzia po prostu robią to, co OP robił ręcznie, ale spróbuję tego, gdy będę miał czas.
Ben N

@ BenN Myślę, że masz rację - założyłem, że OP chciał tylko to naprawić, ale sądzę, że chcą znaleźć rozwiązanie regedit.
Stian Lund,

Gdzieś Windows musi przesłonić ikonę, ponieważ FileTypesMan widzi prawidłową ikonę, wyświetla ją tam, a mimo to ShellNew nadal wyświetla ikonę napędu systemu operacyjnego. Tak jest nadal w Windows 10, chociaż wątpiłem, że to by się zmieniło.
GodsBane

0

Z jakiegokolwiek powodu używa tej samej domyślnej ikony co Cdysk.

Możesz to zobaczyć, tworząc następujący klucz, jeśli jeszcze nie istnieje:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C\DefaultIcon

I ustawienie (Domyślne) na:

%SystemRoot%\\system32\\imageres.dll,2

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Obawiam się, że nie potrafię odpowiedzieć dokładnie, dlaczego tak się dzieje. Istnieje jednak inny wątek , który zmienia ikonę za pomocą innego klucza rejestru.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.