Tengo un programa que se abre con un acceso directo específico, pero el acceso directo parece enviar parámetros a la aplicación. Si voy directamente al directorio de destino y hago doble clic, no funciona. Sin embargo, si uso la línea de comando y paso cierto argumento, la aplicación se abre correctamente.
Quiero abrir ciertos tipos de archivos usando la aplicación, pero la aplicación debe tener los parámetros, o no funcionará. ¿Es posible hacer este tipo de cosas?
Respuestas:
Me encontré con el mismo problema que @jtpereyda y la solución de @bobbymcr tampoco funcionó para mí. Intenté pasar todos los parámetros de la línea de comandos a los scripts de node.js sin necesitar node.exe en el comando.
El problema es que si ya ha asociado el programa con la extensión a través del
Open With
cuadro de diálogo, habrá creado una asociación de aplicación, en lugar de una asociación de extensión de archivo, entre los dos. Y las asociaciones de aplicaciones tienen prioridad.Si no le importa editar el registro, puede modificar la
(Default)
clave en la siguiente ruta:HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command
Debe reemplazarlo
node.exe
con la aplicación que está ajustando.O simplemente puede eliminar la carpeta de la aplicación de la
HKEY_CLASSES_ROOT\Applications
carpeta por completo y suftype
asociación comenzará a funcionar.Asegúrese de usar el
%*
que pasará en los argumentos restantes de la línea de comandos no especificados o nada en absoluto. Si lo hace"%2" "%3" "%4" "%5"
, obtendrá 5 parámetros de cadena vacíos pasados a su aplicación cuando no especifique ningún argumento de línea de comando.Finalmente, si no está de acuerdo con modificar el registro a mano, puede usar una herramienta gratuita de Nirsoft - FileTypesManager - http://www.nirsoft.net/utils/file_types_manager.html
Las asociaciones de archivos aparecerán en la parte superior de la lista, sin ningún texto en la primera columna de extensión. Simplemente encuentre el nombre del ejecutable en la lista y selecciónelo para modificar el
command line
campo para elopen
nombre de la acción.En windows7 los cambios se reflejaron inmediatamente sin reiniciar o reiniciar la aplicación. Sin embargo, la utilidad Nirsoft tiene una función para "Actualizar el escritorio" en cualquier modificación, por lo que me hace creer que quizás Vista o las versiones anteriores del sistema operativo almacenarían en caché los datos. En ese caso, la utilidad sería una mejor apuesta, de lo contrario, es posible que deba cerrar sesión e iniciar sesión para ver los cambios.
fuente
"C:\Program Files\nodejs\node.exe" "%1"%*
NOTA: el%*
valor NO está entre comillas, y no tiene espacio entre él y la comilla doble anterior.HKEY_CLASSES_ROOT\.ulaw
en el regedit en caso de que.ulaw
sea la extensión de los archivos para los que estaba haciendo el procedimiento.HKEY_CLASSES_ROOT
artículo. Es un malentendido comprensible dado que gran parte de la documentación de Microsoft es anterior a la vista fusionada para HKCR que se introdujo alrededor de Windows 2000.Puede hacer esto con
assoc
yftype
en el símbolo del sistema. Abra un símbolo del sistema elevado e intente lo siguiente:Esto asociará la
.xyz
extensiónMyProgram.exe
y pasará la línea de comando/arg1 /arg2 [filename.xyz]
al programa para ejecutarla.fuente
.ulaw
archivo consox
argumentos predefinidos de él. Tenga en cuenta que además de eliminar la aplicación anterior, también eliminé laHKEY_CLASSES_ROOT\.ulaw
que definía el tipo de archivo.assoc
yftype
son comandos heredados. No se actualizaron para las extensiones de las asociaciones de archivos agregadas en Windows XP, 7 y 8. Solo modifican las claves de asociación de archivos y ProgId bajo la clave del sistema "HKLM \ Software \ Classes". No leen ni modifican la configuración de HKCU por usuario, que tiene prioridad, o las subclaves más nuevas, como "Aplicaciones" y "Asociaciones de archivos de sistema", o claves de capacidades por aplicación de "RegisteredApplications". Tampoco leen ni modifican la elección del usuario en "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts".La persona que hace la pregunta informa que la mejor respuesta en realidad no funciona.
Lo descubrí para XP, que podría aplicarse a un sistema operativo posterior.
En un indicador de cmd, necesita dos comandos:
assoc
,ftype
.Estos dos pueden mostrar lo que está asociado y luego editar la asociación, pero hay un giro, las instrucciones de MS parecen estar equivocadas / incompletas. Fui alertado de esto al notar un estilo de asociación indocumentado por aplicaciones veteranas conocidas, ¿por qué?
Este ejemplo permite que se pasen muchos argumentos al programa asociado.
No es un error tipográfico
"%1" "%*"
. El porcentaje de estrella no funcionará sin el porcentaje anterior 1 .Y eso se activa de inmediato, no es necesario cerrar sesión, etc.
Hecho bien pasará 3 a arg []
No lo he hecho, pero parece que las siguientes citas externas pasarían -m si el programa necesita una bandera.
fuente
%1 %*
sin comillas ! malditas ventanasTuve un problema similar con una versión anterior de PSP con Windows7
Esta solución (cambiar la línea de comando shell \ open \ en el Registro) funcionó PERO tenía que tener la sintaxis "C: \ MyFolderName \ PSP.EXE"% 1 SIN COTIZACIONES ALREDEDOR% 1 de lo contrario, esto se interpreta como una constante
fuente
No es la mejor solución, pero la más fácil es usar un archivo por lotes.
Cree un archivo bat como ese y configure su programa predeterminado para su extensión de archivo. Y sí, la cita vacía después del inicio es necesaria:
{nombre de la aplicación} .bat
Ejemplo:
BCompareEdit.bat
fuente
Aquí hay una extensión que parece hacer exactamente lo que quieres. Nunca lo he usado antes, pero parece obtener buenas críticas. deja un comentario si hay problemas.
fuente
Cree un acceso directo de Windows y use la siguiente plantilla:
fuente
xyz.jpg
?