26

Обычно в Windows XP, если я хочу узнать местоположение установленной программы, я просто нажимаю «Свойства», и она показывает, где находится исполняемый файл.

В Windows 7 я делаю то же самое и получаю следующее:

альтернативный текст

Как я могу узнать, где находятся программы, основываясь на ярлыке? Однако я заметил, что для некоторых программ в разделе «Цель» отображается ярлык, но не в случае с iTunes, например.

9 ответов9

21

То, что вы видите, это специальные ярлыки, называемые Advertised Shortcuts. Ярлыки на самом деле ссылаются на msiexec.exe который является исполняемым файлом установщика Windows. Рекламируемые ярлыки позволяют авторам установщика устанавливать только части своего приложения, а затем устанавливать дополнительные части, когда к ним обращаются через объявленный ярлык. Установщик Windows также автоматически проверяет целостность всех установленных файлов при каждом запуске приложения, поэтому вы можете быть уверены, что приложение действительно при запуске.

Вот вопрос переполнения стека с немного большей информацией о рекламируемых ярлыках.

Поиск исполняемого файла, который в конце концов запускает ярлык, - непростая задача, которая потребует некоторых действий в реестре. Предложение Хью, вероятно, гораздо проще.

17

Я удивлялся тому же для некоторых ярлыков под win XP. Я пробовал использовать readshortcut Cygwin , но он не сказал мне настоящую цель:

$ readshortcut.exe -fa "Microsoft Word.lnk"
Target: /cygdrive/c/WINDOWS/Installer/{00000409-78E1-11D2-B60F-006097C998E7}/wordicon.exe
Working Directory:
Arguments:
Show Command: Normal
Icon Library: /cygdrive/c/WINDOWS/Installer/{00000409-78E1-11D2-B60F-006097C998E7}/wordicon.exe
Icon Library Offset: 0
Description: Create and edit text and graphics in letters, reports, Web pages, or e-mail messages by using Microsoft Word.

Так что они, очевидно, как-то связаны с установщиком Windows. Чтобы найти исполняемый файл, вы всегда можете просто запустить его и использовать Process Explorer, чтобы получить путь - в моем случае, C:\Program Files\Microsoft Office2K\Office\WINWORD.EXE .

7

У меня была похожая проблема, и я смог использовать диспетчер задач (Ctrl - Alt - DeleteStart Task Manager), чтобы найти приложение (после открытия) на вкладке « Приложения ».

Щелкните правой кнопкой мыши нужное приложение, чтобы открыть меню, и выберите « Перейти к процессу». Это показывает, какой процесс связан с приложением на вкладке Процессы.

Затем щелкните правой кнопкой мыши процесс, чтобы вызвать меню, и выберите « Свойства» или « Открыть местоположение файла», чтобы узнать больше.

6

Для тех, кто хочет сделать это в PowerShell без использования модуля:

$lnk = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Adobe\Adobe Acrobat X Pro.lnk"
$WindowsInstaller = New-Object -ComObject WindowsInstaller.Installer
$ShortcutTarget = $WindowsInstaller.GetType().InvokeMember("ShortcutTarget","GetProperty",$null,$WindowsInstaller,$lnk)
$StringData1 = $ShortcutTarget.GetType().InvokeMember("StringData","GetProperty",$null,$ShortcutTarget,1)
$StringData3 = $ShortcutTarget.GetType().InvokeMember("StringData","GetProperty",$null,$ShortcutTarget,3)
$WindowsInstaller.GetType().InvokeMember("ComponentPath","GetProperty",$null,$WindowsInstaller,@($StringData1,$StringData3))
2

Попробуйте любое из нижеприведенного (с форумов Tek-Tips):

VBScript

' GetRealTarget.vbs
' This version needs to be run under wscript engine rather than cscript

' Pass the full path to an MSI "Advertised Shortcut" lnk file (including the extension) as a parameter
' e.g. assuming that we have a default install of Office 2003 for All Users:
' GetRealTarget "C:\Documents and Settings\All Users\Start Menu\Programs\Microsoft Office\Microsoft Office Excel 2003.lnk" 
' Displays fully resolved target for the MSI shortcut

Option Explicit
Dim MSITarget

On Error Resume Next ' just some simple error handling for purposes of this example
If wscript.arguments.count = 1 Then ' did actually pass an MSI advertised shortcut? Or, at least, a parameter that could be such a thing?
   With CreateObject("WindowsInstaller.Installer")
      Set MSITarget = .ShortcutTarget(wscript.arguments(0))
      If Err = 0 then
         MsgBox .ComponentPath(MSITarget.StringData(1), MSITarget.StringData(3))
      Else 
         MsgBox wscript.arguments(0) & vbcrlf & "is not a legitimate MSI shortcut file or could not be found"
      End If
   End With
End If
On Error Goto 0

PowerShell (с установкой этого модуля установщика Windows)

get-msiproductinfo | where { $_.ProductState -match "Installed" } | fl AdvertisedProductName, InstallLocation
2

Откройте regedit и найдите имя программы. Потребуется несколько "поиск снова" (F3), но в итоге вы найдете папку.

В моем случае это было в HKEY_CLASSES_ROOT\Applications\<name of app>\shell\open\command

0

Если у вас активен контроль учетных записей, то при появлении окна UAC с запросом «Разрешить, Отмена» под ним часто появляется стрелка раскрывающегося списка (пропускаемая многими) с заголовком "Подробности". Если вы нажмете на Детали, вы увидите фактическое местоположение цели.

PS Если я вспоминаю, что эта проблема уходит далеко за пределы Windows 7, даже после XP, чтобы выиграть 98, где щелчок правой кнопкой мыши по ярлыку и выбор свойств часто не показывают цель. Затем нам пришлось запустить приложение, открыть диспетчер задач, щелкнуть правой кнопкой мыши приложение в списке, выбрать перейти к процессу, щелкнуть правой кнопкой мыши процесс, выбрать местоположение открытого файла (или иногда свойства). Теперь UAC делает меньше шагов.

0

Уловка, которая может работать, состоит в следующем: Запустите CMD и запустите:

dir C:\iTunes /s /b

Он будет сообщать о любом файле или каталоге с именем "iTunes" (без учета регистра). Если у вас есть более одного фиксированного диска, может потребоваться повторить также для этого диска.

Или вы можете создать файл в "неизвестной папке" (здесь: iTunes), а затем найти этот файл на диске:

dir C:\* testfilenumber1 * /s /b

-1

Самый простой способ узнать место исполняемого файла:

  1. Найдите программу в меню "Пуск" и переместите ее на рабочий стол, используя правую кнопку мыши. Это создает ссылку.
  2. Наведите курсор на ссылку и щелкните правой кнопкой мыши. Выберите "Свойства"
  3. На этом экране у вас есть полный путь к исполняемому файлу. Скопируйте в буфер и вставьте, когда вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .