サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
会話術
anon-193.hatenadiary.org
Windowsで、プログラムに対してキーボード入力があったと偽るには、SendMessage, PostMessageで、対象プログラムのスレッドメッセージキューにWM_KEYDOWN/WM_KEYUP等のキーボード系メッセージを積んだり、keybd_event/SendInputでキーボードインプットストリームに入力情報を流し込むのが常套手段となっている。 しかし、対象プログラムがDirectInputを用いてキーボード入力をフェッチしている場合は別問題。メッセージキューはまず無視されるので、SendMessage/PostMessageは使えない。残るはkeybd_event/SendInputだけど、これも普通に仮想キーコードを与えただけでは、対象プログラムはうんともすんとも言わない。 何かものを言わせるためには、仮想キーコードに加えて、スキャンコードを指定する必要がある。しかし、k
最近、入力値検査の不備を突いたSQLインジェクションが取りざたされているのを見ていて、Windows上で、共通のAPIによるデータベースへのアクセスを可能にするActiveXコンポーネントADO(ActiveX Data Objects)では、対策を講じられるかどうか不安になって調べてみた。 どうやら、ADOはプリペアドステートメントを利用出来るらしいことが分かった。正確にはMSDNがパラメータクエリと呼んでいるものだけど。 まずは、ADODB.Commandオブジェクトを生成して、現在のコネクションをCommand#ActiveConnectionプロパティに束縛する。これにより、コマンドとコネクションが関連づけられる。 // connect to the database conn = new ActiveXObject("ADODB.Connection"); conn.Open(.
Outlookや、一部のメールユーザクライアントは、メールが一定以上のサイズになると、そのメールを分割して送信する機能を持っている。メールサーバのサイズ制限で大きなメールが送れないときも、この機能を使うことで、送信できるようになるわけだ。しかも、時々我々を困らせる某社独自拡張ではなく、RFC 2046(www.ietf.org)の5.2.2.で定義されており、れっきとした標準仕様である。 だが、困ったことに、Thunderbird君はこの仕様に則ったメールを受け取っても結合する術を持たない。しかも、真っ白な本文に、「attachment」なる一つの添付ファイルだけの内容を示してくるからタチが悪い。そんなに不審なメールに見せたいの?どうしてBug 71189(bugzilla.mozilla.org)を塩漬けにするの? さて、そこで活躍するのがThunderbirdアドオンJoin(www.
ATOKダイレクトでASがサポートされないから無視するなんていうのは、宝の持ち腐れにも程があるってもので、何か作ってみることにした。 しかし、作るからには誰ともかぶってなくて、ありそうでないようなものが作りたい。小一時間思案に耽ってみたところ、「x86アセンブラ」というキーワードが思い浮かんだ。 そう、今求めているのはきっとこれだ。これでいこう。 x86アセンブラと言えば、MicrosoftのMASMや、BorlandのTASM、オープンソースプロジェクトのNASM、GNUのGAS辺りが有名だと思う。こいつらを呼び出して、出力をunpackしてもいいんだけど、スクリプトでやるなら100% Pure Rubyで行きたいところだ。 検索サイトで調べてみると、Metasploitと関連深いプロジェクトにMetasmというものがあって、Rubyでアセンブラ・逆アセンブラ・リンカ・Cコンパイラ・デバ
PHP+SmartIRCでIRCボットを書きたいというお話で,SmartIRCなるライブラリの存在を始めて知った.他の言語にある,IRCクライアントライブラリは幾つか知っているけど,それらも分かるのは名前ぐらいで,使い方はさっぱりだ. それならこれを機に使い方(言語もライブラリも)を憶えようと言うことで,有名なスクリプト言語でIRCボットを実装していくひとりツアーを開催することにしたのだった.わーわー. IRCボットの仕様 仕様は以下の通り. 4桁ないし5桁のポート番号を発言するとネットワーク対戦ゲームの募集文をNOTICE発言する "good night, jewel."と発言すると落ちる IRCボットライブラリの出来だけではなく,DNSリゾルバライブラリの有無や出来まで問われることになるのは想定外だったけど,なかなか楽しいツアーになった. PHP PHPは``<?php"と``?>"で
国内で開発されたWindows IRCクライアント最大手のLimeChatが、2.25あたりから、従来のマクロ機能に加えて、JScriptによるスクリプティングが可能になり、マクロ作成の自由度がよりいっそう高まったことは記憶に新しい。WWWリソースのスクレイピング、時刻に応じた自動発言、非同期的な処理など、マクロでは対応が難しい、または出来なかったことが、わずか数行から数十行のスクリプトで記述できることにいたく感動したものだ。 しかし、LimeChatスクリプトの制御機能を担っているLimeChatスクリプティングホストには、Windows Scripting Host、いわゆるWSHで指摘されているものを含む機能不足を利用していて感じることがある。 具体的にそれらを挙げていくと、 タイプライブラリに含まれる定数のインポートが出来ない JScriptでActiveXオブジェクトメソッドの途
ちょっとした用で、SQLite3(via ODBC) を始めてみた。その用件で必要なのは項目に対する正規表現マッチング。LIKE 演算子で済ませなくもないけど、やっぱり楽したい。 SQL における正規表現マッチングに付いて調べてみると、 SQL99 にて、SIMILAR TO 演算子による正規表現のサポートがあるとのこと。だけど、SQLite は SQL92 ベース、そんなもの実装されているはずがない。標準に頼るのは諦めて各 DBMS について見ていくと、Oracle では REGEXP_LIKE 関数、SQL Server では SQL CLR によるサポート、MySQL では REGEXP 演算子、PostgreSQL では ~演算子・・・とまちまちなことが分かった。 では、SQLite は・・・というと、MySQL と同じ REGEXP 演算子が備わっていた・・・が、標準の構成だとこ
このページを最初にブックマークしてみませんか?
『anon-193.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く