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"?

usuario2319146
fuente
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

DavidPostill
fuente
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.

seguridad
fuente
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()
Ben N
fuente
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