谷歌浏览器 – 新窗口开关忽略 – 窗口位置和 – 窗口大小

我试图通过命令行(通过C#)控制新生成的Google Chrome窗口的大小和位置。

我的命令行最终看起来像:

--new-window --window-position=100,100 --window-size=800,600 www.UrlToOpen.com 

但是,新窗口只会打开最后一个Chrome窗口的顶部。

我正在寻找的最终结果是能够在单独的窗口中启动具有特定位置和大小的多个Google Chrome实例。 到目前为止,我能够做到这一点的唯一方法是指定每个实例都拥有它自己的--user-data-dir 。 但是,考虑到用户可能安装了多少扩展,这并不理想,并且它不是最佳用户体验。

有没有人有什么建议?

如果Chrome未编程为允许此操作,则只有一个选项。

  1. 创建流程并保留流程对象。
  2. 使用Process.MainWindowHandle获取新创建的窗口(您可能需要使用循环和Process.Refresh ,或Process.WaitForInputIdle )
  3. 使用SetWindowPos本机函数将窗口定位在您想要的任何位置。

本机挂钩可用于检测窗口的创建,但这需要您创建非托管DLL。

我有另一个想法,为什么不使用镀铬扩展来处理定位。

背景:我们遇到了相关的困难。 内部webapp,在Windows中打开多个文档,需要放在其他监视器中。 出于安全原因,javascript不支持此function,并且只有本机扩展可以正确使用选项卡/窗口对象。

因此,我们创建了一个开源的chrome扩展,以实现这一目标:在多显示器设置中灵活的窗口位置。

您可能更感兴趣的是使用预定义模板的function。 模板文件位于您喜欢的任何网络服务器中,因此可以轻松地在不同用户之间共享。

镀铬扩展名为“MultiWindow Positioner”,完全免费。 你可以在这里的镀铬店买到它

您在项目chrome-multiwindow-positioner中的github中找到的实际源代码

免责声明:我是开源(MIT)github项目的维护者。 如果有任何有趣的想法,或者评论随时可以在这里分享。