使用特定窗口坐标从命令行启动Google Chrome

And*_*een 21 bash google-chrome

我正在尝试找到一个shell命令,它将打开具有特定x和y坐标的Google Chrome(这样我可以在打开时设置窗口的位置.)是否可以使用命令行参数执行此操作?

我需要修改以下命令才能实现此目的:

google-chrome http://www.google.com/

小智 38

当您使用Google的Chrome时,有一种更短的方式:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 
     --profile-directory="Default"
     --app="data:text/html,<html><body><script>window.moveTo(580,240);window.resizeTo(800,600);window.location='http://www.test.de';</script></body></html>"
Run Code Online (Sandbox Code Playgroud)

优点:

  • 自动打开窗口
  • 避免弹出窗口阻止程序
  • 在不同的显示器上打开多个窗口(多显示器设置,需要两个或更多Chrome配置文件)

缺点:

  • 似乎只能在"app"模式下工作
  • 未经其他浏览器测试过


syn*_*tel 21

http://peter.sh/experiments/chromium-command-line-switches/说--window-position = x,y就是你要找的东西.

这几年后更新,包括我在几年前写的一个小shell脚本(但回答了这个问题之后),它提供了一个如何使用自定义窗口大小/位置启动chrome的示例,并且能够按名称创建'假'用户数据目录.

它可能会或可能不会工作,并且有一些危险的选项设置,但你明白了.不要逐字逐句地使用,一些标志可能已被重命名或被完全删除..(就像socks代理命令一样)

#!/bin/bash -x

FAKEUSER="${1:-fake-chrome-user}"
CHROMEROOT=$HOME/.chromeroot/

mkdir -p ${CHROMEROOT}

export PROFILE="${CHROMEROOT}/${FAKEUSER}-chromium-profile"
export DISK_CACHEDIR="${CHROMEROOT}/${FAKEUSER}-chromium-profile-cache"
export DISK_CACHESIZE=4096
export MEDIA_CACHESIZE=4096

PARANOID_OPTIONS="\
        --no-displaying-insecure-content \
        --no-referrers \
        --disable-zero-suggest \
        --disable-sync  \
        --cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007 \
        --enable-sandbox-logging >/dev/null 2>&1
        "


/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
        --remember-cert-error-decisions \
        --ignore-certificate-errors \
        --ignore-urlfetcher-cert-requests \
        --allow-running-insecure-content \
        --window-position=2400,400 \
        --window-size=1500,1000 \
        --no-pings \
        --user-data-dir=${PROFILE} \
        --disk-cache-dir=${DISK_CACHEDIR} \
        --disk-cache-size=${DISK_CACHESIZE} \
        --media-cache-size=${MEDIA_CACHESIZE} \
        2>&1


#--proxy-server="socks4://localhost:30604" \
#--host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" \
Run Code Online (Sandbox Code Playgroud)


Red*_*arf 19

要建立@ synthesizerpatel的答案,--window-position将无法自行完成.

你需要使用--user-data-dir或者--chrome-frame像它自己的新实例一样启动它:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir=XXXXXXXXXX --window-size=800,600 --window-position=580,240 --app="http://www.google.com/"
or
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --chrome-frame --window-size=800,600 --window-position=580,240 --app="http://www.google.com/"
Run Code Online (Sandbox Code Playgroud)

对我来说不幸的是,将它作为一个新实例意味着它不会从其他实例中继承session/cookie/etc信息,所以我必须正常打开它(只有--app参数),然后在页面中有javascript我打开做:

window.moveTo(580,240);
window.resizeTo(800,600);
Run Code Online (Sandbox Code Playgroud)

我想如果您打开其他人拥有的网页,您可以打开自己拥有上述js的网页,然后导航到他们的网页.

  • 选项 --chrome-frame 对我不起作用,但是使用 `--user-data-dir` 我让它工作了。谢谢 (2认同)