懸賞支援ソフトの自動入力の仕組み

あっという間に個人情報を懸賞の応募フォームに入力してくれる懸賞支援ソフトですが、懸賞支援ソフトってどのような仕組みで自動入力をしているか知っていますか?

このコーナーでは、懸賞支援ソフト「懸賞当確」の作者TAIGA.K.Nが懸賞支援ソフトの仕組みについて解説したいと思います。

懸賞の応募フォームの住所を取得

懸賞支援ソフトの動作フローチャート多少プログラミングをかじったことのある方ならご存知かと思いますが、アプリケーションのウィンドウズやタイトルバー、ボタン、コンボボックスなどにはポインタやウィンドウハンドルと呼ばれる住所があります。この住所はパソコン固有のもので、1台のパソコン上において同一のものは存在しません。当然、懸賞応募フォームにもそれぞれ固有の住所があります。

懸賞支援ソフトの場合、自動入力の対象となるInternet Explorer の住所を取得し、IWebBrowser2IHTMLDocument2 と呼ばれるIEコンポーネントから応募フォームの住所を取得します。

この応募フォームの住所を取得すればフォームの名前やフォームの種類、サイズ、最大入力文字数といったさまざまな情報を取得することができます。住所からは情報の取得のみでなくさまざまな操作もでき、例えば任意のデータを応募フォームに入力したりすることもできます。

この取得した応募フォームの住所からの情報でも自動入力は可能で、例えばフォームの名前が「氏名」や「name」なら応募者の名前を、「メール」や「mail」ならメールアドレスを入力するソフトを作成すれば懸賞支援ソフトは完成です。

ところがこの懸賞支援ソフトには大きな欠点があり、氏名を入力すべき「フォームの名前が「Q1」や「問1」なら絶対に自動入力することはできないのです。

そこで応募ページの内容(HTML)を分析&解析する必要性が出てくるのです。ちなみに応募ページの内容はIHTMLDocument2から取得可能です。

(注意)Internet Explorerに表示したホームページのフォームには IWebBrowser2 や IHTMLDocument からアクセスできますが、それ以外のブラウザ、Opera や FireFox などからはアクセスすることができません。

応募フォームの入力アルゴリズム

懸賞応募フォームの住所からの情報だけでは、認識力(自動入力の精度)は不十分です。認識力を高めるには、応募ページの内容(HTML)を分析&解析する能力を備えた懸賞支援ソフトの開発が必要となります。

応募フォームの住所の取得及び応募フォームへの入力アルゴリズムはおそらくどの懸賞支援ソフトも似たような構成をしているでしょうが、認識力を高めるための分析&解析処理は懸賞支援ソフトの心臓部、言い換えればプログラマーの腕の見せ所となります。懸賞支援ソフトの要である心臓部は企業秘密も多くて詳しくは語れませんが、可能な範囲で解説したいと思います。

学習型懸賞支援ソフトと分析型懸賞支援ソフト

数年前から流行の学習型懸賞支援ソフト(ロボフォームが有名)、このソフトはソフト自らが学習しながら勉強していくという特徴を持っています。ソフトはユーザーが送信した個人情報を元に学習しますから、学習を重ねるごとに賢くなります。

メリットだらけに見える学習型懸賞支援ソフトですが、デメリットも併せ持っています。このソフトは学習型なので、あまり学習させることないユーザー、つまり、たまにしか懸賞に応募しないユーザーは学習能力の成果を十分に発揮させるができないのです。また、学習型懸賞支援ソフトは主に今まで学習した内容を利用して応募フォームに個人情報を自動入力しているため、今まで学習したことのないパターンの応募フォームが出現した場合、うまく対応できない場合があります。

それに比べて分析型懸賞支援ソフト(aiBarが有名)は、オール‐ラウンドな応募フォームに対応できるように作成されています。学習型懸賞支援ソフトのように学習機能は搭載していませんが、全ての応募フォームに平均的に個人データが自動入力されるようシビアな調整がされています。シビアな調整の結果、見た目は普通の応募フォームに自動入力されないこともありますが、懸賞市場やYahooショッピングのストア懸賞のような定型的な応募フォームは当然のごとく、初めて開かれた応募フォームにもうまく対応できるのです。

応募フォームの自動検出機能

懸賞の応募ページを開くだけで応募フォームに自動入力させるには、システムフックと呼ばれる技法を使います。システムフックを利用するとパソコン上のさまざまなイベントを監視でき、他のアプリケーションで発生したイベントを中止したり、他のアプリケーションに送ったりといったことができます。

全自動入力型(起動しておくだけで自動的に応募フォームを検出して自動入力するソフトのこと)の懸賞支援ソフトは、入力対象となるブラウザをシステムフックで監視し、表示されているホームページが遷移する(切り替わる)たびに懸賞支援ソフトに通知します。

通知を受け取った懸賞支援ソフトは表示されているホームページにアクセスし、応募フォームがあれば入力処理を行うわけです。

(注意)システムフックはシステム全体を監視します。誤った使い方をするとアプリケーションが起動不能になるばかりでなく、パソコンをフリーズさせる原因となります。