DialogHandlerを作った理由

yesiam: Dialogを 慣らすでDialogHandlerが紹介されてた。O2HandlerよりDialogHandlerの方がよく使われているなぁ・・・と思いながら読んでいて思い出したのが、O2Handler 0.2 の一機能だったダイアログ制御機能をDialogHandlerとして分離した理由。それは …

ATOK2007

IME2007を使った後だからかもしれないが、感動するほど軽い!昔のATOKはImmGetConversionListが非常に遅かった気がするが、少なくとも今のPCとATOK2007の組み合わせでは気にならない。(IME2007の動かないImmGetConversionListの呼び出しの方が遙かに遅い)I…

続・グラフィカルなコマンドラインインターフェース

感動が醒めないうちに、実装することにした。が・・・意外と地味になってしまった。アナログ時計は面倒だからとテキストだけにしたのが原因か。まぁ、それでも1秒ごとに表示は変わるし、実用的だからいいか。http://frozenlib.net/o2handler/

グラフィカルなコマンドラインインターフェース

こんなの欲しい。 入力はテキスト、出力はグラフィックスなCLI。 当然パイプも使いたい。 http://slashdot.jp/~ruto/journal/335078 グラフィカルなコマンドラインインターフェースについていろいろ考えている人の日記。 O2Handlerでもやはり、入力はコマン…

IME 2007

Expression Webを入れたらIME 2007が付いてきた。ImmGetConversionListの読み仮名取得には対応してないし、変換は遅いしで、今まで悪い点ばかり見つかっていたが、一つだけ良い点が見つかったぞ! それは・・・変換候補一覧が常に手前に表示ウィンドウより手…

iTunes SDK

iTunesを起動していない状態で IiTunes.Sources にアクセスすると iTunes のウィンドウが開いてしまうので、O2Hander.Netのプラグインとして組み込む事を断念。MIcrosoft Office等のようにウィンドウ非表示モードは無いのだろうか?

不動点関数

Y(M) = M(Y(M)) となる関数 Y の事を不動点関数という。C#だとこんな感じ。 class Fix<T> { protected delegate T FuncType(T arg); protected delegate FuncType FixType(FuncType func); protected static FuncType Y(FixType maker) { FuncType f = null; f </t>…

CruiseControl.NET 1.3 導入

ASP.NETのバージョンを2.0にしないとエラーが出る。 CPU使用率が100%になってPC全体が重くなる問題は相変わらず。

Flashに引数を渡す

HTML側 EMBEDタグのFlashVars属性に引数を設定する。 例: ActionScript側 var flashvars:Object = LoaderInfo(loaderInfo).parameters; var a:string = flashvars["test"]; var b:string = flashvars["msg"];

ngenが終わらない

自作ライブラリに対してngenを使用すると、CPU使用率が上がったまま、ずっとngenが終了しないことがあった。幸い、自作ライブラリのソースはsubversionで管理していたので、過去のソースを元にビルドしたアセンブリに対して、片っ端からngenをかけてみると、…

プロセスをインスタンスと考えればグローバル変数も非グローバル変数も同じじゃね?

結論から言うとこの考え方は不味かった・・・・。 理由は簡単。マルチプロセスプログラムのデバッグ環境が整っていないから。

IExtractIcon

IExtractIconを使用してファイルアイコンを取得した場合、アイコンを含まないExeファイルからアイコンを取得できない。このような場合、代わりにSHGetFileInfoを使用すれば、デフォルトExeアイコンが取得可能。

DataObjectに型情報を含めない生データを設定するには

WPF

SetDataの引数にMemoryStreamを指定すればOK。

ウィンドウをアクティブ化する

Windows98あたりから、他のウィンドウでキーボード入力中に 入力状態を持たないスレッドがウィンドウをアクティブ化することができなくなっている。その対策として、入力状態を持たないスレッドがウィンドウをアクティブ化する為に SystemParametersInfo(SPI…

液晶モニタ

もう発色は気にならなくなってきた。ただし視野角の狭さは気になるなぁ。 単一色がグラデーションに見えるのはちょっと・・・。

三菱 RDT201L

液晶モニタを買った。 解像度1600x1200 目に優しい 安い の3つの理由でRDT201にしたが・・・、視野角の狭さが気になる。あと発色の悪さも。慣れれば気にならないような気もするが・・・。

Office2003

COM

Office2003をインストール。 そしたらExcel8.0 Object Library(Excel97付属)が動かなくなった。 'System.ExecutionEngineException' のハンドルされていない例外が mscorlib.dll で発生しました。 動かなくなった場所は遅延バインディングで呼び出していたWo…

ShellExecuteEx

ShellExecuteExはSTA内で呼び出さなくてはならないらしい。 「コントロールパネル\管理ツール\サービス」等が何故かShellExecuteExで実行できないな〜、と思ったら、STAでないスレッドプールのスレッドからShellExecuteExを呼び出していたのが原因だった。

TrackPopupMenu

WPF

WPFアプリケーション内でShellのContextMenuを表示すると、 なぜか、TortoiseSVNの項目が空白となり、しかも、表示中にエラーが発生することがある。 FatalExecutionEngineError が検出されました。 Message: ランタイムの重大なエラーが発生しました。 エラ…

Tips

マネージド環境から作成されたSTA COMオブジェクトのメソッドは、自動的にオブジェクトが作成されたスレッドで実行される。(カレントスレッドIDを返すCOMオブジェクトを作成して確認済み)

今日の教訓

HRESULT 0x80004002 は正しくないCOMインターフェイスID(IID)を指定した時に返される 出力のみの引数でもC#から呼び出す場合には out ではなく ref を設定しておかないと動かない場合がある NULLでも良いとされる引数でも、有効なポインタを指定しないと動か…

休止状態が失敗しないようにした

方法:boot.ini に "/maxmem=1360" と記述し、認識メモリ量を1360Mに制限する。 参考:http://www.ouma.jp/program/kyuushi.html

PlainOldFavorites

IEのお気に入りを扱う為の拡張 お気に入り編集ソフトを作ろうと思っているので。

デリゲート呼び出し中に

そのデリゲートに変更を加えても、その変更はデリゲートの呼び出しが全て完了するまで反映されない。 delegate void NonParamMethod(); static NonParamMethod TheEvent; void Main(string[] args) { TheEvent += Func1; TheEvent += Func2; TheEvent(); } v…

RichTextBoxで漢字変換中に

LinesプロパティをTextプロパティの値を取得すると、漢字変換が強制的に確定されてしまう。SelectionCharOffsetの取得やGetLineFromCharIndex()の呼び出しは大丈夫っぽい。

Navigateで同一ページ内を移動しても

NavigateComplete2イベントは発生しない。例: "File.txt" → "File.txt#Top" へ移動した場合

GUIスレッドが複数存在する場合、

Application.Exit();を呼び出すと、全てのスレッドのウィンドウが一つのスレッドから破棄されるためか、異常が起こる。Application.ExitThread();を使用し、適切に終了処理を行うと異常は起こらなくなった。

Alt+Tabで表示されない、枠無しのウィンドウを作成するには

タイトルが空のツールウィンドウを作成すればよい

トップレベルウィンドウが表示されなくなる

タスクバーを自動的に隠す設定にしてある場合で、マウスポインタをタスクバー付近に移動させてもタスクバーが表示されないような状態になると、この現象が起こる。 Windowsキーを押して、タスクバーが正常に動作するようになると治る。

Mozilla ActiveX Control の設定を変更するには

"C:\Program Files\Mozilla ActiveX Control v1.7.7\defaults\pref\activex.js" を編集する。文字コードはUTF-8。