ウィンドウが閉じたときにイベントを受け取る

ウィンドウが閉じたときにイベントを受け取る

私が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

関連情報