Динамический поиск Chrome на компьютере Windows с конечным пользователем

2242
David Moritz

Итак, я искал везде, где только мог придумать, и не могу понять. Я надеюсь, что ответ очень прост. Вот ситуация:

Я создаю ссылку для быстрого доступа для конечного пользователя. Мы назовем это «shortcut.lnk». Мы можем предположить, что у них установлен Chrome и что «myFolder» находится на их рабочем столе. Ключ в том, что это приложение должно открываться в Chrome, а не в браузере пользователя по умолчанию. В настоящее время я имею в качестве «цели» shortcut.lnk:

%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe --app=%USERPROFILE%\Desktop\myFolder\path\to\app.html 

Это работает на 3 машинах, на которых я тестировал. Тем не менее, из исследований я заметил, что Chrome иногда устанавливается в AppData или других местах вместо Program Files.

У меня такой вопрос, есть ли способ динамически определить, где Chrome установлен на их Windows-машине, чтобы я мог прикрепить его к «Target» в shortcut.lnk?

1
Вы можете использовать Powershell? если это так, см. [Использование PowerShell для поиска установленного программного обеспечения] (http://blogs.technet.com/b/heyscriptingguy/archive/2013/11/15/use-powershell-to-find-installed-software.aspx). Не будет работать для поиска моего портативного Chrome, хотя :) DavidPostill 9 лет назад 0
Почему вы не можете использовать IE? Или браузер по умолчанию (Win + R-> `http: // superuser.com`). Если вы действительно хотите Chrome, вы должны проверить реестр для пути к Chrome, но это не 100% решение. crazypotato 9 лет назад 0
@crazypotato К сожалению, приложения просто недостаточно для работы в IE. У всех этих пользователей есть все, начиная с IE 6 и заканчивая IE 11, но, похоже, он постоянно работает в Chrome. Могу ли я проверить путь к реестру с помощью переменных среды? David Moritz 9 лет назад 0
@DavidPostill Я не могу быть уверен, что у них есть Powershell, и в моем первом прототипе у меня был файл «ClickMe.bat», который мог быть более сложным и консервированным. Итак, теперь я ограничен такими вещами, как переменные среды в Target of shortcut.lnk David Moritz 9 лет назад 0
Невозможно использовать переменную окружения для поиска нестандартного пути к Chrome. Только если кто-то уже установил путь к некоторой переменной. crazypotato 9 лет назад 0
@crazypotato да, это имеет смысл. Я просто надеялся, что есть способ David Moritz 9 лет назад 0

1 ответ на вопрос

3
DavidPostill

Есть ли способ динамически определить, где установлен Chrome?

Следующая команда определит, где установлен Chrome, и установит для CHROMEPATHпеременной среды это значение:

for /f "usebackq tokens=1,2,3,4,5" %a in (`reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ /s /f \chrome.exe ^| findstr Application`) do set CHROMEPATH=%c%d%e 

Пример вывода:

echo %CHROMEPATH% C:\ProgramFiles(x86)\Google\Chrome\Application\chrome.exe 

Для использования в командном файле вам нужно удвоить проценты следующим образом:

for /f "usebackq tokens=1,2,3,4,5" %%a in (`reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ /s /f \chrome.exe ^| findstr Application`) do set CHROMEPATH=%%c%%d%%e 
Это фантастика! Мне нравится идея создания новой переменной среды. Спасибо! David Moritz 9 лет назад 0
Нужна ли модификация для запуска из файла bat? mike_x_ 6 лет назад 0
@mike_x_ Да. Вам нужно удвоить проценты. Я обновлю ответ. DavidPostill 6 лет назад 1