web-dev-qa-db-ja.com

特定のウィンドウ座標でコマンドラインからGoogle Chromeを起動します

特定のx座標とy座標でGoogle Chromeを開くシェルコマンドを見つけようとしています(開いたときにウィンドウの位置を設定できるようにするため)。コマンドラインを使用してこれを行うことは可能ですか?引数?

これを実現するには、次のコマンドを変更する必要があります。

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

21
Anderson Green

http://peter.sh/experiments/chromium-command-line-switches/ は--window-position = x、yが探しているものだと言います。

数年前に書いた小さなシェルスクリプトを含めるようにこの年を更新します(ただし、この質問に答えた後)。カスタムウィンドウサイズ/位置でchromeを開始し、「偽の」ユーザーを作成する方法の例を示します名前によるデータディレクトリ。

動作する場合と動作しない場合があり、いくつかの危険なオプションが設定されていますが、アイデアは得られます。この言葉をそのまま使用しないでください。

#!/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" \
20

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>"

プロ:

  • ウィンドウを自動的に開きます
  • ポップアップブロッカーを回避する
  • 異なるモニターで複数のウィンドウを開きます(マルチモニターのセットアップ、2つ以上が必要Chromeプロファイル)

短所:

  • 「アプリ」モードでのみ動作するようです
  • 他のブラウザではテストされていません
35
nitram509

@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/"

残念なことに、新しいインスタンスとして持つことは、他のインスタンスからのセッション/ Cookie /などの情報を引き継がないことを意味するため、(--appパラメーターのみで)通常どおりに開く必要があります。私が開いているページにjavascriptがあります:

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

他の人が所有するウェブページを開いている場合、上記のjsを持つ独自のウェブページを開いてから、そのウェブページに移動できると思います。

19
Redzarf

私はこれを使用しました:

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>"

これを行うには良い方法を与えます。

注:これはfirefoxでも同様に機能します。

3
F. Hauri

最新バージョンのChrome-次のものだけが必要でした。アプリを閉じるたびに、ウィンドウのサイズと位置が記憶されていました。

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

これは、バージョン48.0.2564.48 beta-m(64ビット)およびバージョン48.0.2564.48 beta-m(64ビット)で機能しました。

1
BickiBoy