2015/06/26(金)VBSでログイン

 なでしこの「キー送信」に相当するVBS(WSH)のSendKeysを使ってインターネットエクスプローラーで宮崎銀行のネットバンキングに自動ログインするスクリプトを書いてみた。参考にしたのはIEへのキー入力をVBScriptで再現する。 - Qiita。なでしこのインストールが不要なのでこちらの方が手軽だが、クリップボードのデータではなく、直接IDとパスワードを入力しているのでキーロガー対策はない。IEでクリップボードのデータを使おうとすると、警告メッセージが出るから。パソコンにスパイウェアが入ってなければ、心配はありませんが。

'シェルを起動する
Dim wsh
Set wsh = WScript.CreateObject("WScript.Shell")
'IEを起動する
Dim ie 
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
'指定URLを開く
ie.Navigate("https://mib.miyagin.co.jp/MYIK/BankIK?xtr=aulogon01000&NLS=IKP")
Do While ie.Busy = True Or ie.readyState <> 4
Loop
'キー入力する
Wscript.Sleep 1000 
wsh.SendKeys "ID" 'ここにIDを書く
Wscript.Sleep 1000 
wsh.SendKeys "{tab}"
Wscript.Sleep 1000 
wsh.SendKeys " " 'スクリーンキーボードのチェックを外す
Wscript.Sleep 2000 
wsh.SendKeys "{enter}" '警告ダイアログにエンターキーを送る
Wscript.Sleep 1000 
wsh.SendKeys "PASSWORD"  'ここにパスワードを書く
Wscript.Sleep 1000 
wsh.SendKeys "{enter}" 'ログインを実行する

キー送信もSendKeysもパソコンの負荷が高い時などタイミングによっては失敗することがある。だから1秒とか2秒の時間を空けてコマンドを送っているが、それでもダメな時はダメですね。

2015/06/25(木)宮崎銀行の自動ログイン

 資産管理ソフトのMoney Look(マネールック)で宮崎銀行のネットバンキングに自動ログインできなくなった。4月にサイトのデザインが変わって以来だ。そのうち対応してくれるだろうと思っていたのだが、いっこうに改善されないのでサポートに要望メールを出した。ユーザーから要望がないと、サポートとしても不具合が起きているかどうかも分からないだろう。

その日のうちに「対応したのでテストしてみてほしい」と返信メールが来た。早い。で、やってみたが、ダメ。数回、メールのやり取りをして、インストールしている PhishWallTrusteer Rapportなどフィッシング詐欺・ウィルス対策ソフトが一因だろうとの結論になった。「お客様の環境によって自動ログインができない現象が発生する場合があり、現在対応が困難な状況です。恐れ入りますがご了承いただきますようお願い申し上げます」。ま、しょうがない。環境によってはそういうこともあるだろう。

 ただ、気になったのは他の銀行には普通に自動ログインできていること。ということはフィッシング詐欺・ウィルス対策ソフトが原因とは考えにくく、サイト固有の問題だろう。しょうがないので、日本語プログラム言語なでしこで作ってみた。サイトへの自動ログインツールは「Webサイトへのログイン作業を簡単にする自動化ツールを作ろう(第134回)《クジラ飛行机「文系サラリーマンのための仕事に役立つプログラミング入門」》」などに書いてあるように比較的簡単に作れる。なでしこにはサイトのフォーム入力のために「ブラウザINPUT値設定」という命令がある。これを使ってみたが、入力されない。サイトのソースを見ると、ユーザーIDの入力フォームがオートコンプリートオフの設定になっていることと、スクリーンキーボード使用のチェックを外さないと、パスワードのフォームに入力できないことが原因のようだ。

 それならばと、「キー送信」命令でやってみたら、あっさりできた。フォーム自動入力のソースは以下の通り

「{ユーザーID}」をコピー
母艦へ『^v』をキー送信 #ユーザーIDをコピーしてCTRL+Vで貼り付け
1秒待つ
母艦へ『{TAB}』をキー送信 #タブキーでチェックボックスにフォーカス
1秒待つ
母艦へ『 』をキー送信 #スペースキーを送信してチェックを外す
#ここで注意を促すダイアログが出るので手動でOKボタンを押す
1秒待つ
「{パスワード}」をコピー
母艦へ『^v』をキー送信 #パスワードをコピーしてCTRL+Vで貼り付け
1秒待つ
母艦へ『{ENTER}』をキー送信 #エンターキーをキー送信

 スクリーンキーボードはキーロガーを防ぐためには意味があるが、それならば、ユーザーIDを入力するフォームにも適用した方がいいでしょう、宮銀さん。ちなみにIDとパスワードをコピーしてCTRL+Vで貼り付けると、キーロガーされても盗まれるのはCTRLとVだけなので、上のソースを使っても安心です。

 それにしても感心したのはMoneyLookサポートの対応の早さ。返事が来るまで2、3日かかるかなと思っていたのだ。解決はしなかったけど、対応が早いのは気持ちが良い。問い合わせ(ユーザー)が多くないのだろうか? MoneyLookは使い始めて3年。サーバー上にIDやパスワードなどのデータを置かないので他の同種のソフト(サイト)よりセキュリティーは高いと思う。

2015/03/27(金)名刺管理アプリの下請け

 ポイント交換サイトPeXの名刺入力タイポというのをやってみた。これ何かと思ったら、無料の名刺管理アプリに使用するデータの入力だった。ユーザーから送られた名刺の画像を読み取って無料で入力してくれるサービスがいくつかあるが、その一つ。いわば人力OCRだ。人力で入力するのは大変だろうなあと思っていたが、こういう下請けの仕組みがあったわけか。

 名刺の画像は全部が表示されるわけではなく住所や肩書き、メールアドレス、URLなど部分的だ。名刺をそのまま表示して入力させると、個人情報保護の観点から問題なので一部にしているのだろう。30分ほどやってみた。入力できたのは52件で、その中には個人の名前はなかった。中には分かりにくい画像もあるが、入力自体は難しくない。ただ、旧字体はそのまま旧字体で入力しなくてはいけないので、手書き文字入力や文字パレットを使わなくてはいけない場合もあり、そういうのに当たると、文字を探すのに時間がかかる。入力結果はこれまた人力でチェックしているようで、間違いがなければ、1件につき1ポイントもらえる。

 52件入力して正解率は67%だったから、間違いが17件あったことになる。この正解率は参加した20,257人中10,016位だそうだ。PeXのポイントは1ポイントがだいたい0.1円。1万件入力しても1000円にしかならない。内職、という言葉が頭に浮かんだ。ぼくの場合は30分の作業で3.5円の収益、つまり時給7円ということになる。けっこう集中力も必要なので労働の対価としてはバカバカしくてやってられない。暇な時間にゲーム感覚でちょこっとやるぐらいなら良いかもしれない(その後、2回入力してみたら、正解率91%に上がった。だんだん上達してくるものだなあ)。

 参加者が2万人と言うと、多いように思えるが、こうしたポイントサイトのゲーム(すごろくゲームがよくありますね。あれ作ってるのは全部同じ会社ではないかと思う)では毎週10万人以上が参加しているのが普通だ。ゲームならもっと短い時間で楽にポイントが稼げる。1件当たり5~10ポイントにしないと、参加者の増加は望めないし、本気で取り組む人も増えないのではないかと思う。

2015/03/01(日)OneDriveの同期エラー

 エクセルとWordのファイルで最近、OneDriveのエラーが頻発するようになった。見てみると、エラーが起きているのはSkyDriveの頃に保存したもの。どうもOfficeアップロードセンターと競合しているらしい。アップロードするURLにskydriveが含まれているのでエラーになっているようだ。あまり支障はないので放置しておこうかと思ったが、100ファイル近くもあると気になる。

 いろいろやってみて、新たに保存し直せばエラーがなくなることが分かった。単純に上書き保存ではダメで、名前を付けて保存を選んだ上で上書きする必要がある。その上でOfficeアップロードセンターを開き、「競合の解決」からサーバー側のファイルを保持する。

 エクセルファイルの場合はこれでエラーがなくなったが、Wordファイルはダメだった。いずれも6年ほど前に作成したファイルで、拡張子.docがどうもまずいらしい。まあ、そうでしょうね。拡張子.docはOffice2003までの標準拡張子だから。サポート終了に伴って、OneDriveでのサポートもなくなったのだろう。というわけで.docxで保存しなおしたらOK。

2014/12/20(土)メンバーズオンデマンドをTVに出力

 以前、スマホとパソコンのディスプレイをMHLケーブルでつなぎ、WOWOWのメンバーズオンデマンドをディスプレイに出力しようとしたら、できなかった。「外部出力はできません」とのメッセージが出た。パソコンの場合はディスプレイの切り替えができるので、もしかしたらと思ってSurface Pro2とテレビをつないでみた。あっけなくできた。

 Surface Pro2には外部出力用にMini Diaplay Portがあるので、テレビとの接続にはMacLab. Thunderbolt ( Mini DisplayPort ) - HDMI 変換 ケーブル 3m 1080p - ビデオ、オーディオ、マルチディスプレイ、ミラーリングモード対応(amazon)を使用した。Mac用だが、問題なく利用できる。念のために、パソコンの「画面の解像度」から設定を変更し、テレビにだけ出力する設定にした後にメンバーズオンデマンドのページを開いたが、「画面の複製」でもいいようだ。

 画面の遅延はほとんどない。あっても10分の1秒ぐらいか。画面と音のずれは感じられないので、テレビ画面だけを見ていれば、気にならないレベルだ。メンバーズオンデマンドは元々、SD画質だし、回線速度によって表示がぶれることがある。大画面のテレビではそれが目立ってしまうが、無料だからいいでしょう。

 当然のことながら、Google Playの映画も表示できる(WOWOWより画質がきれいだ)。有線ケーブルでいちいちつなぐのは面倒だが、一時はm-Stickなどの小さなパソコンの購入を考えていたので、それを考えれば、安い出費だった。最近はビデオレンタル店に行くのも面倒なので、自宅からamazonインスタントビデオやGoogle Playを利用することが多い。これでますます店でのレンタルは少なくなりそうだ。

 で、今ふと思ったのだが、スマホとディスプレイをつないだ時にはメンバーズオンデマンドのアプリを利用したのだった。ブラウザからならあっさり外部出力できるのかもしれない。MHLよりはHDMIの方が転送速度が速いので、HDMIの方が快適ではないかと思いますが。と思ったが、どうもスマホやタブレットからはアプリじゃないと、視聴できないようだ。