Crear acceso directo usando la ruta de la aplicación


1

¿Cómo puedo crear un acceso directo (quizás usando NirCmd) para Acrobat.exeusar la ruta HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Acrobat.exey los parámetros /A "page=10" "file.pdf"?


Use reg querypara obtener el camino, luego usenircmd shortcut
— DavidPostill

¿Puedo combinar los dos para crear un acceso directo que busque la ruta en el registro en lugar de codificarlo?
— usuario2319146

Sí. Analizar el resultado de la reg queryy pasarlo a nircmd...
— DavidPostill

Supongo que no podrías publicar una solución, por favor. (Está más allá de mí.)
— user2319146

Hecho. Respuesta agregada. Avíseme si funciona (no tengo instalado Acrobat para probarlo).
— DavidPostill

Respuestas:


1

¿Cómo puedo crear un acceso directo (quizás usando NirCmd) a Acrobat.exe?

Use el siguiente archivo por lotes:

@echo off
setlocal enabledelayedexpansion
rem query the registry to get the full path to acrobat
for /f "usebackq tokens=3*" %%a in (`reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ /s /f \Acrobat.exe ^| findstr Default`) do (
  set _acrobat=%%a %%b
  rem create the shortcut
  nircmd shortcut "!_acrobat!" "shortcut_folder" "shortcut_name" /A "page=10" "file.pdf"
  )
endlocal

Notas:

  • Reemplace shortcut_foldercon el nombre de la carpeta donde desea crear el acceso directo
  • Reemplace shortcut_namecon el nombre que desea dar al acceso directo

Otras lecturas


Gracias, pero esto parece crear un acceso directo con una ruta codificada; ¿es posible en su lugar buscar siempre la ruta en el registro?
— user2319146

@ user2319146 No, eso no es posible. Los atajos no funcionan de esa manera. Si el programa se mueve a otro lugar, simplemente elimine el acceso directo y vuelva a ejecutar el archivo por lotes.
— DavidPostill

¿Quizás lo que necesito es un archivo por lotes que se comporte como un atajo?
— user2319146

Bueno, puedes usar el archivo por lotes en la respuesta. Reemplazar nircmd shortcut "!_acrobat!" "shortcut_folder" "shortcut_name" /A "page=10" "file.pdf"con"!_acrobat!" /A "page=10" "file.pdf"
— DavidPostill

Aparte de eso, realmente no estoy claro cuál es su propósito original con querer leer el registro cada vez ...
— DavidPostill

0

Puede hacer clic derecho en su escritorio y seleccionar Nuevo y luego acceso directo . Esto creará un acceso directo estándar.


Como habrás adivinado, estoy buscando hacer algo un poco más complicado.
— usuario2319146

0

No se requiere software de terceros; puedes usar PowerShell:

# Get the target path from the Registry
$path = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Acrobat.exe').'(default)'
# Create the shell and shortcut objects with COM
$wshshell = New-Object -ComObject WScript.Shell
$shortcut = $wshshell.CreateShortcut([Environment]::GetFolderPath('Desktop') + '\Acrobat.lnk')
# Configure the shortcut
$shortcut.TargetPath = $path
$shortcut.Arguments = '/A "page=10" "file.pdf"'
# Write the shortcut to disk
$shortcut.Save()

El archivo de acceso directo aparece en el escritorio. Para cambiar dónde se guarda el acceso directo, modifique la línea con la CreateShortcutllamada.

Versión más corta de una línea:

$w=New-Object -com WScript.Shell;$s=$w.CreateShortcut([Environment]::GetFolderPath('Desktop')+'\Acrobat.lnk');$s.TargetPath=(gp 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Acrobat.exe').'(default)';$s.Arguments='/A "page=10" "file.pdf"';$s.Save()

Para invocar con el símbolo del sistema, simplemente ejecute powershelly escape las comillas dobles adecuadamente:

powershell -command $w=New-Object -com WScript.Shell;$s=$w.CreateShortcut([Environment]::GetFolderPath('Desktop')+'\Acrobat.lnk');$s.TargetPath=(gp 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Acrobat.exe').'(default)';$s.Arguments='/A """page=10""" """file.pdf"""';$s.Save()

Gracias (y por presentarme a PowerShell), pero estoy buscando crear un acceso directo que busque la ruta en el registro en lugar de codificarlo.
— usuario2319146

@ user2319146 La ruta de destino se recupera del Registro; es la ubicación del archivo de acceso directo que está codificada. Puedo cambiar eso para que se calcule a partir de algo, si lo desea.
— Ben N

Sí, por favor: quiero que la ubicación del archivo de acceso directo siempre busque la ruta en el registro.
— user2319146

@ user2319146 ¿Cómo se debe calcular? Actualmente, siempre va en el escritorio y se llama Acrobat. Me temo que no entiendo dónde le gustaría que aparezca el acceso directo, ¿podría aclarar eso, por favor?
— Ben N

En el escritorio está bien; Supongo que puedo moverlo a otra ubicación como cualquier otro acceso directo.
— user2319146
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.