Запустите Google Chrome из командной строки с определенными координатами окна

Я пытаюсь найти команду оболочки, которая откроет Google Chrome с определенными координатами x и y (чтобы я мог установить положение окна при его открытии.) Возможно ли это сделать с помощью командной строки-аргументов

Мне нужно изменить следующую команду, чтобы добиться этого:

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

Ответы

Ответ 1

http://peter.sh/experiments/chromium-command-line-switches/ говорит --window-position = x, y - это то, что вы ищете.

Обновляя эти годы позже, чтобы включить небольшую оболочку script, я писал несколько лет назад (но после ответа на этот вопрос), которая дает пример того, как запускать хром с пользовательскими размерами/позицией окна и имеет возможность создавать "поддельные", каталоги данных пользователя по имени.

Он может или не может работать, и имеет некоторые опасные параметры, но вы получаете идею. Не используйте этот дословный текст, некоторые из флагов могут быть переименованы или полностью удалены.. (например, прокси-сервер 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" \

Ответ 2

Когда вы используете 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>"

Pro:

  • Автоматически открывает окно
  • Предотвращает всплывающее блокирование
  • Открывает несколько окон на разных мониторах (настройка нескольких мониторов требует двух или более профилей Chrome).

Con:

  • Кажется, что работает только в режиме "app".
  • Не протестирован с другими браузерами

Ответ 3

Чтобы построить ответ на @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/"

К сожалению, для меня, имея его как новый экземпляр, он не переносит информацию session/cookie/etc из других экземпляров, поэтому мне приходилось открывать ее обычно (только с параметром --app), то у меня есть javascript на странице, которую я открываю:

window.moveTo(580,240);
window.resizeTo(800,600);

Я предполагаю, что если вы открываете веб-страницу, принадлежащую кому-то другому, вы можете открыть свою собственную веб-страницу с указанными выше js, а затем перейти на свою веб-страницу.

Ответ 4

Я использовал это:

google-chrome "data:text/html;charset=ISO-8859-1,<html>
    <head></head><body><script language=\"javascript\">
        window.open('http://perso.f-hauri.ch/~felix/svg/dustin_w_Clock_autonom.svg',
             'clock','toolbar=0,location=0,status=0,menubar=0,scrollbars=1,'
             +'resizable=1,width=600,height=600,top=100,left=120');</script>"

но google-chrome блокируют всплывающие окна, поэтому это:

google-chrome "data:text/html;charset=ISO-8859-1,<html><head></head><body>
    <button onclick=\"javascript:window.open(
        'http://perso.f-hauri.ch/~felix/svg/dustin_w_Clock_autonom.svg',
        'clock','toolbar=0,location=0,status=0,menubar=0,scrollbars=1,'
        +'resizable=1,width=600,height=600,top=100,left=120');\"> clock </button>"

дайте хороший способ сделать это.

Nota: Эта работа также работает с firefox.

Ответ 5

В моей последней версии Chrome мне нужно было только следующее. Каждый раз, когда я закрывал приложение, он помнил мой размер и положение окна.

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --chrome-frame --app=https://mightytext.net/web8/?exp=1

Это работало для меня в версии 48.0.2564.48 бета-м (64-разрядная версия) и версия 48.0.2564.48 beta-m (64-разрядная версия)