私がxdotool
望む1つのタスクに。ウェブサイトをファイルとして自動保存。 Firefoxから印刷すると、次の進行状況バーが表示されます。
印刷ウィンドウが閉じたときに新しいジョブを開始したい(ファイルを保存して自動的に閉じます)。現在の回避策は、sleep 10
次のタスクが早く開始されるのを防ぐために、このようなものを使用することです。印刷ウィンドウが閉じたというイベントをどのように取得しますか?
(私はLinux Mintユーザーです。)
バッシュスクリプト
# Get window id (Firefox)
FIREFOX_ID=$(xdotool search --name "Mozilla Firefox" | head -n1)
# Activate window (Firefox)
xdotool windowactivate "$FIREFOX_ID"
# Open print dialog
xdotool key "ctrl+p"
# Get window id (print dialog)
DIALOG_ID=$(xdotool search --name "Print") # Change name to your language
# Activate window (print dialog)
xdotool windowactivate "$DIALOG_ID"
# Click "Print" button
xdotool mousemove 1240 790 click 1 # Change coordinates to yours
答え1
「印刷」ウィンドウを確認してください。上記のコードを使用して印刷をクリックした瞬間に集中してみましょう。
# Click "Print" button
xdotool mousemove 1240 790 click 1 # Change coordinates to yours
これにより、「Drucken」進行状況ボックスが表示されます。続行する前に存在することを確認しましょう。
#sleep 1 second to allow printing to start - a pure safety measure
sleep 1
#check for printing progress window until failed
while (xdotool search --name "Printing") ; do
sleep 0.1
done
<next command>
つまり、印刷ダイアログがある限り、dowhile
ループが実行され、次のコマンドがブロックされます。
wait
コマンド情報:
xdotool
これはシェルスクリプトの外側のプロセスを有効にするため、ここには適用されません。それでも待っているプロセスが完了したことを確認するためのものです。
#!/bin/bash
do_some_command & wait