2014-08-08 2 views
0

я исполню это для того, чтобы открыть Google Chrome в режиме киоска:Открыть Google Chrome (все пользователи установки) в режиме киоска от терминала

«C: \ Users \ Хавьера \ AppData \ Local \ Google \ Chrome \ Application \ chrome.exe "--user-data-dir = $ (mktemp -d) --kiosk" url "

но, что мне нужно изменить, если google chrome установлен в Program Files (x86)? Если я выполняю:

«C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe --user-данных реж = $ (Mktemp -d) --kiosk "URL"

я получаю сообщение об ошибке в --user-данных-каталог = $ (Mktemp -d) предложение.

Спасибо заранее. Хавьер

ответ

1

Я думаю, что не может быть никакого элегантное решение в этой точке. "mktemp -d "- это команда linux/unix, и я не могу найти ее или ее эквивалент в окнах. Возможно, она работала за один раз (Я споткнулся о n mktemp на странице разработки Microsoft), но на 8.1 это не так. Ошибка, о которой я говорил, что она связана с разрешениями, но это было не так.

Если кто-то может получить команды в Cygwin, работающие в командной строке Windows, возможно, вышеописанное будет работать. Другой вариант может заключаться в создании чего-то для PowerShell, который делает то же самое и подключает его там.

"C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe" --user-данных реж = C: \ somedir --kiosk "some.url.here"делает работа хотя. Он работает из ярлыка, поэтому он также должен работать из командной строки, но вы теряете случайный каталог temp.

Для моего случая я просто хотел, чтобы некоторые веб-сайты/веб-приложения отображались по умолчанию на весь экран (F11) из ярлыка, и я бы просто Alt-F4 закрылся и Alt-Tab между ними и рабочим столом. Как бы то ни было, я думаю, что мне нужно будет создать отдельный каталог данных для каждого из них, который я хочу сделать.

1

Я использовал команду chrome.exe --user-data-dir = $ (mktemp -d) --kiosk http: // someUrl /, и она работала хорошо в течение недели, пока я не начал тестировать свою программу с ограниченным пользователем привилегий сегодня. Я заметил, что сам процесс chrome не запускался после вызова метода process.start(). В журналах событий не было записей, чтобы узнать, что пошло не так. Посмотрев на ваше решение, я сменил свою программу на создание временной папки, используя команду C#, передав ее в качестве аргумента, и она начала работать. Спасибо за помощь. Это упрощенная версия используемого кода.

DirectoryInfo tempDirectory = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), "Chrome" + DateTime.Now.ToString("ddMMHHmmss"))); 

Process process = new Process(); 
process.StartInfo.FileName = GetBrowserPathFromRegistry(); 
process.StartInfo.Arguments = String.Format("--user-data-dir={0} --kiosk {1}", tempDirectory.FullName, this.uri); 
process.Start();