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 Withcuadro 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\commandDebe reemplazarlo
node.execon la aplicación que está ajustando.O simplemente puede eliminar la carpeta de la aplicación de la
HKEY_CLASSES_ROOT\Applicationscarpeta por completo y suftypeasociació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 linecampo para elopennombre 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\.ulawen el regedit en caso de que.ulawsea la extensión de los archivos para los que estaba haciendo el procedimiento.HKEY_CLASSES_ROOTartí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
assocyftypeen el símbolo del sistema. Abra un símbolo del sistema elevado e intente lo siguiente:Esto asociará la
.xyzextensiónMyProgram.exey pasará la línea de comando/arg1 /arg2 [filename.xyz]al programa para ejecutarla.fuente
.ulawarchivo consoxargumentos predefinidos de él. Tenga en cuenta que además de eliminar la aplicación anterior, también eliminé laHKEY_CLASSES_ROOT\.ulawque definía el tipo de archivo.assocyftypeson 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?