从终端以kiosk模式打开谷歌浏览器(所有用户安装)

时间:2014-08-08 11:32:33

标签: google-chrome kiosk-mode

我执行此操作是为了在自助服务终端模式下打开Goog​​le Chrome:

" C:\用户\哈维尔\应用程序数据\本地\谷歌\铬\应用\的chrome.exe" --user-data-dir = $(mktemp -d) - kiosk" url"

但是,如果在程序文件(x86)中安装了Google Chrome,我需要修改哪些内容?如果我执行:

" C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe --user-data-dir = $(mktemp -d)--kiosk" url"

我在--user-data-dir = $(mktemp -d)句子中收到错误。

提前致谢。 哈维尔

2 个答案:

答案 0 :(得分:1)

我认为此时可能没有优雅的解决方案。 “ mktemp -d ”是一个linux / unix命令,我无法在Windows上找到它或等效的命令。它可能曾经一次工作过(我在微软开发页面上偶然发现了mktemp ),但是在8.1上却没有。我得到的错误说它与权限有关,但事实并非如此。

如果有人可以在Windows命令提示符下在Cygwin中获取命令,那么上面的内容可能会有效。另一种选择可能是为PowerShell创建一些相同的东西,并将其插入其中。

“C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe”--user-data-dir = c:\ somedir --kiosk“some.url.here” 确实工作。它可以从快捷方式工作,因此它也可以在命令行中运行,但是你确实丢失了随机临时目录。

对于我的情况,我只是希望某些网站/网络应用程序从快捷方式默认为全屏(F11),我只需要关闭Alt-F4,并在它们和桌面之间使用Alt-Tab。事实上,我认为我必须为每个我想做的事情制作一个单独的数据目录。

答案 1 :(得分:1)

我使用命令chrome.exe --user-data-dir = $(mktemp -d)--kiosk http:// someUrl /并且它运行良好超过一周,直到我开始测试我的程序今天有限的特权用户。我注意到在调用process.start()方法后,chrome进程本身没有启动。事件日志中没有条目可以查看出现了什么问题。在查看了您的解决方案后,我将程序更改为使用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();