83
コメント:
|
1762
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
作ったものの置き場所。プログラムに限らないかもしれない | いろいろ === お手軽ストップウォッチ === 1秒未満の精度がいらないとき用。英語の課題でスピーチの原稿を書いているとき、時間が測りたくなって5分足らずで書いた。このとき`difftime()`の存在を初めて知った。 * `clock_t`と`clock()`を使って`(end - start) / CLOCKS_PER_SEC`の方が良かった気がする {{{#!highlight c /* stopwatch.c */ #include <stdio.h> #include <time.h> int main(void) { time_t start, end; puts("Enter to start:"); getchar(); start = time(NULL); puts("Enter to stop:"); getchar(); end = time(NULL); printf("%.0f sec.\n", difftime(end, start)); return 0; } }}} === セルフタイマー付きでスクリーンショットを撮る === 一定時間`sleep`した後、ImageMagickの`import`を使って画面全体のキャプチャをするだけ。 * すぐに制御を返すので、このコマンド自体のコマンドラインを隠せる {{{#!highlight bash #!/usr/local/bin/bash if [ $# -eq 0 ] then echo "usage: desktopcap filename [sleeptime]" exit 0 elif [ $# -eq 2 ] then sleeptime=$2 else sleeptime=0 fi (sleep $sleeptime; import -window root $1; echo "captured.")& }}} === クリックしたウィンドウのスクリーンショットを撮る === {{{ name=$(xprop | grep "WM_NAME(STRING)" | sed 's/.*= "\(.*\)"/\1/') && import -window $name hoge.png }}} * ウィンドウ名(タイトルバーの文字列)を使っているので、同名のウィンドウが複数あると期待した動作をしない * タイトルに空白が含まれていても動かない。やはりウィンドウIDで指定した方がいいか |
いろいろ
お手軽ストップウォッチ
1秒未満の精度がいらないとき用。英語の課題でスピーチの原稿を書いているとき、時間が測りたくなって5分足らずで書いた。このときdifftime()の存在を初めて知った。
clock_tとclock()を使って(end - start) / CLOCKS_PER_SECの方が良かった気がする
1 /* stopwatch.c */
2
3 #include <stdio.h>
4 #include <time.h>
5
6 int main(void)
7 {
8 time_t start, end;
9
10 puts("Enter to start:");
11 getchar();
12 start = time(NULL);
13
14 puts("Enter to stop:");
15 getchar();
16 end = time(NULL);
17
18 printf("%.0f sec.\n", difftime(end, start));
19
20 return 0;
21 }
セルフタイマー付きでスクリーンショットを撮る
一定時間sleepした後、ImageMagickのimportを使って画面全体のキャプチャをするだけ。
- すぐに制御を返すので、このコマンド自体のコマンドラインを隠せる
クリックしたウィンドウのスクリーンショットを撮る
name=$(xprop | grep "WM_NAME(STRING)" | sed 's/.*= "\(.*\)"/\1/') && import -window $name hoge.png
- ウィンドウ名(タイトルバーの文字列)を使っているので、同名のウィンドウが複数あると期待した動作をしない
- タイトルに空白が含まれていても動かない。やはりウィンドウIDで指定した方がいいか