web-dev-qa-db-fra.com

Windows 7 trouver l'emplacement du programme installé

Habituellement, sous Windows XP, si je voulais connaître l'emplacement d'un programme installé, je cliquais simplement sur "Propriétés" pour afficher l'emplacement de l'exécutable.

Sur Windows 7, je fais la même chose et je reçois ceci:

alt text

Comment savoir où se trouvent les programmes en fonction du raccourci? J'ai toutefois remarqué que, pour certains programmes, un raccourci apparaît sous la "cible", mais pas dans le cas d'iTunes par exemple.

26
7wp

Ce que vous voyez sont des raccourcis spéciaux appelés raccourcis annoncés. Les raccourcis sont en fait liés à msiexec.exe, qui est l'exécutable de Windows Installer. Les raccourcis publiés permettent aux auteurs d'installation d'installer uniquement des parties de leur application, puis d'installer des éléments supplémentaires lorsqu'ils sont accessibles via le raccourci annoncé. Windows Installer vérifie également automatiquement l'intégrité de tous les fichiers installés chaque fois que l'application est exécutée afin que vous puissiez être sûr que l'application est valide lors de son exécution.

Voici une question de débordement de pile avec un peu plus d’informations sur les raccourcis annoncés.

Trouver le fichier exécutable que le raccourci est éventuellement exécuté n’est pas une tâche simple et impliquerait de fouiller dans le registre. La suggestion de Hugh est probablement beaucoup plus simple.

21
heavyd

Je me suis demandé la même chose pour certains raccourcis sous Win XP. J'ai essayé la variable readshortcut de de Cygwin , mais elle ne m'a pas révélé la véritable cible:

$ 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.

Donc, ils ont évidemment quelque chose à voir avec Windows Installer. Pour trouver l'exécutable, vous pouvez toujours l'exécuter et utiliser Process Explorer pour obtenir le chemin - dans mon cas, C:\Program Files\Microsoft Office2K\Office\WINWORD.EXE.

17
Hugh Allen

J'ai eu un problème similaire et j'ai pu utiliser le Gestionnaire des tâches (Ctrl-Alt-Delete → Démarrer le gestionnaire de tâches) pour rechercher l'application (après l'avoir ouverte) dans l'onglet Applications.

Cliquez avec le bouton droit de la souris sur l'application souhaitée pour afficher le menu, puis choisissez Aller au processus. Cela montre quel processus est associé à l'application dans l'onglet Processus.

Cliquez ensuite avec le bouton droit de la souris sur le processus pour afficher le menu, puis choisissez Propriétés ou Ouvrir l’emplacement du fichier pour en savoir plus.

7
user207224

Pour ceux qui cherchent à le faire dans PowerShell sans utiliser de module:

$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))
6
user334199

Essayez l’un des choix ci-dessous (dans les forums 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 (avec l'installation de ce module Windows Installer )

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

Ouvrez regedit et recherchez le nom du programme. Il faudra quelques "recherches à nouveau" (F3) mais vous finirez par trouver le dossier.

Dans mon cas, c'était sous HKEY_CLASSES_ROOT\Applications\<name of app>\Shell\open\command

2
Marcelo Trejo

Si vous avez le contrôle de compte d'utilisateur actif, lorsque la boîte UAC vous demandant d'autoriser, d'annuler, vous voyez souvent une autre flèche déroulante (négligée par beaucoup) sous le titre "Détails". Si vous cliquez sur Détails, vous devriez voir l'emplacement réel de la cible.

P.S. Si je me souviens bien, ce problème remonte bien au-delà de Windows 7, voire de XP, pour gagner 98 où un clic droit sur le raccourci, la sélection des propriétés, ne montrait souvent pas la cible. Ensuite, nous devions démarrer l'application, ouvrir le gestionnaire de tâches, cliquer avec le bouton droit de la souris sur l'application dans la liste, sélectionner Aller au processus, cliquer avec le bouton droit, sélectionner l'emplacement du fichier ouvert (ou parfois des propriétés). Maintenant, UAC fait moins d'étapes.

0
user503911

Une astuce qui peut fonctionner est la suivante: Démarrer CMD et exécuter:

dir C:\iTunes/s/b

Il signalerait tout fichier ou répertoire nommé exactement "iTunes" (non sensible à la casse). Si vous avez plus d'un lecteur fixe, il peut être nécessaire de répéter l'opération pour ce lecteur également.

Vous pouvez également créer un fichier dans le "dossier inconnu" (ici: iTunes), puis rechercher ce fichier sur le disque:

dir C:\* testfilenumber1 */s/b

0
TVC