Nuevo icono de Shell para "." Tipo de archivo

8

He creado con éxito un comando ShellNew para poder crear un nuevo archivo en blanco sin extensión de archivo. El archivo de registro se ve así:

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"

Esto funciona fantástico y todo. Crea el archivo tal como lo quiero, pero el icono que se muestra en la ventana ShellNew es el icono de la partición del sistema de la siguiente manera:

1

¿Cómo puedo cambiar este icono para que coincida con el DefaultIcon que estoy proporcionando para el tipo de archivo en sí? He intentado hacer un valor de cadena "Icon" como lo que tenía que hacer para los elementos del menú Unity y Sublime Text, y eso no funcionó sin importar dónde lo coloque.

GodsBane
fuente
Puedo replicar Tratando de averiguar si hay una manera de solucionarlo ...
Karan
¿Supongo que aún no has encontrado una solución? Estoy pensando que debe haber algo en el registro que indique que, dado que no tiene ningún tipo de archivo asociado, ¿se supone que es una unidad?
GodsBane
Parece que sí, y si lo hubiera descubierto, habría publicado una respuesta, por supuesto.
Karan
Parece que no puedo replicar esto.
Visual Vincent

Respuestas:

3

Prueba esto, funciona como 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"

Solo cambio. Agregué un IconPath en el nivel .ext. ¡Las asociaciones de tipo de archivo son cosas increíbles!

w32sh
fuente
Otra cosa es que, para el ícono predeterminado del ProgID, ha establecido una cadena expandible, que realmente debería haber sido del tipo REG_EXPAND_SZ en lugar de REG_SZ. De todos modos, ShellNew no parece usar el icono definido allí.
w32sh
Sí, eso lo hace. ¡Bien hecho!
Ben N
Wow, ~ 9 meses de edad, y una solución tan simple. ¡Trabajo asombroso!
GodsBane
Dijo que la recompensa estaba a punto de cerrar "en 2 horas". Fue entonces cuando respondí :)
w32sh
0

¿No se supone que debes usar "imageres.dll, 3" porque es el tercer icono en imageres.dll?

Puede probar la aplicación Editor de programas predeterminados, abrir el programa, hacer clic en los iconos, buscar el tipo de archivo, hacer clic en siguiente, elegir el icono de imageres y guardar como archivo .REG, luego verificar qué hay dentro de ese .reg.

orion310591
fuente
No puede usar el Editor de programas predeterminados para esto porque el archivo que crea no tiene extensión.
GodsBane
@ orion310591: el índice comienza desde 0. Por lo tanto, técnicamente es el segundo icono.
w32sh
0

Si puede encontrar el tipo "Archivo vacío" en la herramienta FileTypesMan, puede cambiar el icono predeterminado allí.

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

Stian Lund
fuente
Tengo la impresión de que ese tipo de herramientas solo hacen lo que el OP hizo manualmente, pero lo intentaré cuando tenga tiempo.
Ben N
@BenN Supongo que tienes razón: supuse que OP solo quería "arreglarlo", pero supongo que quieren encontrar una solución regedit.
Stian Lund
En algún lugar, las ventanas deben anular el ícono porque FileTypesMan ve el ícono correcto, lo muestra allí y, sin embargo, ShellNew todavía muestra el ícono de la unidad del sistema operativo. Este sigue siendo el caso en Windows 10, aunque dudaba que eso hubiera cambiado.
GodsBane
0

Por alguna razón, esto usa el mismo ícono predeterminado que su Cunidad.

Puede ver esto por sí mismo creando la siguiente clave, si aún no existe:

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

Y configurando el (Predeterminado) a:

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

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Me temo que no puedo responder exactamente por qué ocurre este comportamiento. Sin embargo, hay otro hilo aquí que logra cambiar el icono con una clave de registro diferente.

Jonno
fuente