C#でスクリーンセーバー
2ちゃんねるの時をかける少女スレでみかけた、速報ダム日和さんのJavascriptで時かけクロックにグッときたので、勝手にWebページをスクリーンセーバー化するアプリケーションを作ってみました。URLはスクリーンセーバーの設定画面から変更できるので、天気予報の画像やYouTubeの動画のURLなどを設定するのもよいと思います。
ダウンロード (ソースコード付き)
動作には .NET Framework 2.0 が必要です。
Visual C# 2005 Express Editionをインストールすると、スクリーンセーバーは比較的容易に作ることができます。本アプリケーションでやっていることは、
程度です。上記のコードでは、Visual Studio Express のサンプルプロジェクトをさらに削って、最小限のコードにしているので、独自の拡張は簡単だと思います。
さて、本ツールを利用して、Webサイトを指定すると、Webサイトによってはスクリーンの外周に枠が表示されます。これは、HTMLの最初の方の宣言の仕方に依存します。
例えば、
と宣言されている場合は枠が表示されてしまうのですが、
というように1行追加すると表示されなくなります。
IEの仕様ってやつですね...。
参考
- DTDとブラウザの表示モード
それにしても、時をかける少女2006は良い映画ですね。何年か後には、かなりの人が知ることになる予感がします。私は、劇場には2度足を運んだ上、関連商品も結構買ってしまうほどはまっています。最近はNHKや朝日新聞などの大手マスコミにも取り上げられるようになったためか、都内の劇場はいつも満席のようです。
現時点では全国9箇所... orz の映画館で絶賛上映中ですので、見ていない人は是非この夏のうちに!
追記
劇中であまりにおいしそうに食べていたのでつい買ってきてしまいました。モロゾフのプリン。素材の味がしっかり出ていて確かにうまい!
写真は、時をかける少女 NOTEBOOK p.15 を参考に撮影。
ダウンロード (ソースコード付き)
動作には .NET Framework 2.0 が必要です。
Visual C# 2005 Express Editionをインストールすると、スクリーンセーバーは比較的容易に作ることができます。本アプリケーションでやっていることは、
1. 普通にWindowsアプリケーションを作成する(全画面表示するように設定)
2. いくつかの決まった引数に対応できるようにする
3. 作成したexe の拡張子を .scr に変更して、%SystemRoot%system32 フォルダにコピーする
2. いくつかの決まった引数に対応できるようにする
3. 作成したexe の拡張子を .scr に変更して、%SystemRoot%system32 フォルダにコピーする
程度です。上記のコードでは、Visual Studio Express のサンプルプロジェクトをさらに削って、最小限のコードにしているので、独自の拡張は簡単だと思います。
さて、本ツールを利用して、Webサイトを指定すると、Webサイトによってはスクリーンの外周に枠が表示されます。これは、HTMLの最初の方の宣言の仕方に依存します。
例えば、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
と宣言されている場合は枠が表示されてしまうのですが、
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
というように1行追加すると表示されなくなります。
IEの仕様ってやつですね...。
参考
- DTDとブラウザの表示モード
それにしても、時をかける少女2006は良い映画ですね。何年か後には、かなりの人が知ることになる予感がします。私は、劇場には2度足を運んだ上、関連商品も結構買ってしまうほどはまっています。最近はNHKや朝日新聞などの大手マスコミにも取り上げられるようになったためか、都内の劇場はいつも満席のようです。
現時点では全国9箇所... orz の映画館で絶賛上映中ですので、見ていない人は是非この夏のうちに!
追記
劇中であまりにおいしそうに食べていたのでつい買ってきてしまいました。モロゾフのプリン。素材の味がしっかり出ていて確かにうまい!
写真は、時をかける少女 NOTEBOOK p.15 を参考に撮影。
この記事のトラックバックURL
http://tmp.junkbox.info/tb.php/34
新着トラックバック
「時かけクロックスクリーンセーバー」というのがあるわけではないです。たぶん。 先日書いたように、ダム日和さん(id:dambiyori)の『時をかける少女』のタイムマシンのカウンタの字...
| thinkin’ in the brain | 06/10/23 23:26 |
『時をかける少女』を観る 大変良い映画でございました。 いい年して涙ぐんでしまったりしたが──いい年だから涙腺ゆるみまくってるとも言えるが、映画が暗闇で上映されるもので...
| thinkin’ in the brain | 06/10/22 02:50 |
Javascriptで時かけクロック http://dambiyori.sakura.ne.jp/tokiclo/ ずーっと同じ場所に表示させるのはスクリーンセイバーとしてどうかとおもうので、一定時間たつと移動するようにしました。配...
| 速報ダム日和 | 06/08/06 22:19 |
画像処理で有名なあの画像
画像処理の書籍などを読んでいると必ずといっていいほど登場する例のサンプル画像は、The USC-SIPI Image Database から入手できます。
#なぜか引用元をちゃんと明記している書籍を見たことが無いのですが....
特に、3番目の レナ ( Lena あるいは Lenna ) という女性の画像は頻繁に引用されていますが、元ネタを知っていて使っているのだとすると、どうにかしているんじゃないか? とも思います。
http://sipi.usc.edu/database/database.cgi?volume=misc&image=1#top
http://sipi.usc.edu/database/database.cgi?volume=misc&image=11#top
http://sipi.usc.edu/database/database.cgi?volume=misc&image=12#top
more ...
#なぜか引用元をちゃんと明記している書籍を見たことが無いのですが....
特に、3番目の レナ ( Lena あるいは Lenna ) という女性の画像は頻繁に引用されていますが、元ネタを知っていて使っているのだとすると、どうにかしているんじゃないか? とも思います。
http://sipi.usc.edu/database/database.cgi?volume=misc&image=1#top
http://sipi.usc.edu/database/database.cgi?volume=misc&image=11#top
http://sipi.usc.edu/database/database.cgi?volume=misc&image=12#top
more ...
この記事のトラックバックURL
http://tmp.junkbox.info/tb.php/31
新着トラックバック
抱き枕は抱きしめて眠ることで、安心感に包まれて安眠できるという寝具。体圧分散の効果も高い抱き枕は、本来は健康志向の下で流行ってきた感がありますね。しかし、今や抱きまく...
| 抱きまくらをGET | 07/11/27 15:00 |
.NET Framework 2.0 / 4.0 でキャプチャ
.NET Framework 2.0 対応言語 (C#2.0, VB2005など) を利用して USB接続の Webカメラなどから画像を取得するためのサンプルです。画像認識などを行うことを想定しています。
サンプルでは以下のことを行っています。
- 取り扱いが容易なライブラリの作成
数行の記述で Web カメラやキャプチャカードからの画像を取得/加工できるようなライブラリを作成しています。
内部的には DirectX の GetCurrentBuffer を利用して同期処理を行っているため、スレッドを意識しないプログラミングが可能です。もちろん unsafe ではありませんのでメモリリークの心配もありません。
- 高速な画像処理
標準的な方法 ( GetPixel() で 1ピクセルずつよみこむ ) を利用すると、とてつもなく遅くなります。このサンプルでは Marshal.Copy, Bitmap.LockBits, Bitmap.UnlockBits を利用して、Bitmap を byte配列 にコピーしたり、その逆を行うことで高速な画像処理を行っています。この処理もライブラリに組み込まれています。
サンプルコード
- [2006/06/12] ver. 0.7 (単純な静止画キャプチャ処理)
- [2008/03/02] ver. 0.8 (静止画キャプチャを連続的に行い、リアルタイム動画像処理)
* クリックで動画を表示します
- [2008/03/04] 射影変換のテスト
- [2012/03/10] DirectShow.NET の.NET Framework 4.0対応版
参考
- USBカメラをC#で使おう
- 第 3 章 画像処理入門 1 ~ アルゴリズム入門 ~ (Microsoft)
- Bitmap.UnlockBits メソッド (MSDNライブラリ, 画像処理サンプルコードあり)
ΔΣ変調とPIC16F88とADPCMと
PIC16F88の内蔵クロックを利用する
PIC16F88は内蔵オシレータの周波数設定機能があり、8MHz±約1MHzの範囲を64段階で設定できます。これを利用することで、最大460800bps (誤差1%未満)のシリアル通信が外付けオシレータ(水晶発振子やセラロック)無しに可能となります。内蔵クロックの動作の確認のための最小限のコードを示します。
more ...
more ...
この記事のトラックバックURL
http://tmp.junkbox.info/tb.php/16
新着トラックバック
月頭定例カキコ。はあ~、忙しい。あと2週間はこの調子かと思うとウンザリ。と言うわけでネタがない。そこで今後の予定というか、今気になっていることというか、暇が出来たらした...
| 地質時代 | 06/11/02 17:04 |
C# を利用したシリアル通信
Bluetooth RS232 シリアルアダプター AKC121
Network Devices: Bluetooth RS232シリアルアダプター
AKC121 動作確認手順 (Windows XP SP2の場合)
0. 用意するもの
(ハードウェア)
- SPP (Serial Port Profile)対応のBluetoothモジュール (Bluetooth v1.2以上に対応したもの)
Amazon.co.jp:BT-01UDE Bluetooth USBアダプタ (AKC121と接続できることを確認済み)
- USB-シリアル変換ケーブル
- D-sub 9 pin シリアルクロスケーブル
- AKC121
- 5V電源
基板に直接電源を供給する例
(ソフトウェア)
- UTF-8 TeraTerm Pro with TTSSH2 ( 窓の杜: UTF-8 TeraTerm Pro with TTSSH2)
COM1~4だけではなく、COM99までをサポート
1. 接続準備
(準備中)
2. 接続確認
AKC121 側から以下のKCコマンドを実行する。AKC121のデフォルトの通信設定は、115200 bps, N81, ハードウェアフロー, 改行コード=CR であるので、TeraTerm等の設定をあらかじめ行っておくこと。
例: ID 000a94021234 のデバイスに対して、PINをhogehogeに設定
ここまで入力すると Windows側でデバイスが発見されパスワード(デバイスキー)を求められるので、上記で設定したパスワードを入力する。これ以降は通常のシリアル通信と同様に動作する。
3. 自動接続
任意のシリアルケーブル接続デバイスと接続する場合、接続デバイス側でATコマンドを発行することができないことが普通である。AKC121をあらかじめPCに直接接続してSmartCableSetupモードに設定しておくことでこの問題を解決できる。
例: 接続が切れた場合、3秒間隔で100回自動リトライする。
この指定を無効にする場合は、接続が切れた状態で以下のコマンドを実行する。
4. 通信速度の変更
以下のコマンドで通信速度が変更可能である。これは電源を切っても値が保持される。一時的に変更したい場合には ChangeBaud コマンドを利用する。
なお、設定可能な通信速度は、9600, 19200, 38400, 57600, 115200 (出荷時), 230400, 460800, 921600 bps である。
例: デフォルトの通信速度を 38400 bps に設定する。
AKC121 動作確認手順 (Windows XP SP2の場合)
0. 用意するもの
(ハードウェア)
- SPP (Serial Port Profile)対応のBluetoothモジュール (Bluetooth v1.2以上に対応したもの)
Amazon.co.jp:BT-01UDE Bluetooth USBアダプタ (AKC121と接続できることを確認済み)
- USB-シリアル変換ケーブル
- D-sub 9 pin シリアルクロスケーブル
- AKC121
- 5V電源
基板に直接電源を供給する例
(ソフトウェア)
- UTF-8 TeraTerm Pro with TTSSH2 ( 窓の杜: UTF-8 TeraTerm Pro with TTSSH2)
COM1~4だけではなく、COM99までをサポート
1. 接続準備
(準備中)
2. 接続確認
AKC121 側から以下のKCコマンドを実行する。AKC121のデフォルトの通信設定は、115200 bps, N81, ハードウェアフロー, 改行コード=CR であるので、TeraTerm等の設定をあらかじめ行っておくこと。
AT+ZV EnableBond (PC側のID12桁) (任意のパスワード)
AT+ZV SPPConnect (PC側のID番号12桁)
AT+ZV SPPConnect (PC側のID番号12桁)
例: ID 000a94021234 のデバイスに対して、PINをhogehogeに設定
AT+ZV EnableBond 000a94021234 hogehoge
AT+ZV SPPConnect 000a94021234
AT+ZV SPPConnect 000a94021234
ここまで入力すると Windows側でデバイスが発見されパスワード(デバイスキー)を求められるので、上記で設定したパスワードを入力する。これ以降は通常のシリアル通信と同様に動作する。
3. 自動接続
任意のシリアルケーブル接続デバイスと接続する場合、接続デバイス側でATコマンドを発行することができないことが普通である。AKC121をあらかじめPCに直接接続してSmartCableSetupモードに設定しておくことでこの問題を解決できる。
AT+ZV SmartCableSetup (PC側のID12桁) (自動接続リトライ数: 0~999) (リトライ間隔: 1~1000x100 ms)
例: 接続が切れた場合、3秒間隔で100回自動リトライする。
AT+ZV SmartCableSetup 000a94021234 100 30
この指定を無効にする場合は、接続が切れた状態で以下のコマンドを実行する。
AT+ZV DeleteSmartCable
4. 通信速度の変更
以下のコマンドで通信速度が変更可能である。これは電源を切っても値が保持される。一時的に変更したい場合には ChangeBaud コマンドを利用する。
AT+ZV ChangeDefaultBaud (通信速度/bps)
なお、設定可能な通信速度は、9600, 19200, 38400, 57600, 115200 (出荷時), 230400, 460800, 921600 bps である。
例: デフォルトの通信速度を 38400 bps に設定する。
AT+ZV ChangeDefaultBaud 38400
TOP PAGE △