かざしたら、ブラウザに反映させる方法

Felicaでイロイロと試しているとブラウザにも「ピッ」って反映させたくなる。
ちょろっと調べるとFeliCaブラウザエクステンションってのが見つかる。

FeliCaブラウザエクステンションをご利用中のサービス事業者の方へ
本ソフトウェアは2011年3月に配布終了予定です。

そんな仕掛けは使えないので考える。
 
思いついたのは「クリップボード」ってな仕掛け。

すばらしい・・・IE限定だけど。
 

//Form1.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FelicaLib;
using System.Media;

namespace FelicaToCSV
{
    public partial class Form1 : Form
    {
        private bool loading = false;
        private string idm = null;
        private string tmpidm = null;

        public Form1() {
            InitializeComponent();
        }

        /**
          * バイナリ配列を文字列に変換する
          */
        private string BytesToHexString(byte[] bytes) {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < bytes.Length; i++) {
                sb.Append(bytes[i].ToString("X2"));
            }
            return sb.ToString();
        }


        private void timer1_Tick(object sender, EventArgs e) {
            //felica読み込み
            try {
                using (Felica f = new Felica()) {
                    // FeliCaポーリング開始
                    f.Polling((int)SystemCode.Any);
                    //Felica IDm読み込み
                    this.idm = BytesToHexString(f.IDm());
                    
                    if (this.tmpidm != this.idm) {
                        this.tmpidm = this.idm;
                        Clipboard.SetDataObject(this.idm, true);
                        this.textBox1.Text = this.idm;
                        System.Media.SystemSounds.Asterisk.Play();
                    }
                }

                if (!this.loading) {
                    this.loading = true;
                }

            }
            catch (Exception) {
                //MessageBox.Show("カードを検出できません", "問題あり、だめだこりゃ", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void Form1_Load(object sender, EventArgs e) {
            //タイマの間隔を1000msに設定
            timer1.Interval = 1000;
            //タイマを有効化
            timer1.Enabled = true;
        }
    }
}

FelicaIDmを取得して、変化があったらクリップボードに保存する(表現あっているか?)
 
受け取る側のHTML

<html lang="ja-JP">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<title>クリップボードの中身をチェックする</title>
<script type=text/javascript>
<!--
$(document).ready(function(){
  $("#simei").val(window.clipboardData.getData("Text"));
  $("#get_clipboard").click(function(){
    $("#simei").val(window.clipboardData.getData("Text"));
  });
});
-->
</script>

</head>
<body>
<div id="get_clipboard"><p>げっとくりぼー</p></div>
<form method="post" action="CGIのURI">
 <p>
 ID:<input type="text" id="simei" name="氏名" />
 <input type="submit" value="送信" /> 
 <input type="reset" value="取り消し" />
 </p>
</form>
</body>
</html>

ページ読み込み時に読み込むor任意のタイミングで読み込む。
うむ。コレなら簡単だね。