10

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

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

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

但是,新窗口只是在最后一个 Chrome 窗口的启动位置上方打开。

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

有没有人有什么建议?

4

2 回答 2

1

如果 Chrome 没有被编程为允许这样做,那么您只有一个选择。

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

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

于 2014-08-30T20:37:35.087 回答
0

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

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

因此,我们为此创建了一个开源 chrome 扩展:跨多显示器设置的灵活窗口位置。

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

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

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

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

于 2016-11-23T15:22:54.127 回答