[WPF] RadioButton の IsChecked バインディングがうまく動かない

ラジオボタンのデータバインディングを、チェックボタンと同様にやっているはずなのに、なぜか途中で動かなくなったりして、かなり詰まっていた。
解決方法…というか、回避策をメモしておこう。

続きを読む

[WPF] ウィンドウのリサイズが終了するまで、コントロールのリサイズを行わない方法 その1

ウィンドウ内にコントロールがたくさんあって、レイアウトが重くなってしまったので、リサイズすると凄まじくカクカクしてしまう。
そんなときに、ウィンドウのリサイズ中はコントロールの配置を変化させず、リサイズが終了してから再配置をさせる方法をご紹介。

続きを読む

非同期でプログラムを実行するバッチを、パイプする

start コマンドを使い、非同期でプログラムを実行するバッチを作成し、そのバッチの出力をパイプすると、実行したプログラムが終了するまでパイプの処理が返らない。

pause.cmd

@echo pause
@exit /b

process.cmd

@echo off
Echo 処理1開始
Rem 処理1
Echo 処理2開始
start "" cmd /s /c "pause.cmd"
exit /b

と作成し、コマンドプロンプトで単に

process.cmd

とすれば、pause.cmd を閉じなくても次の処理に進めるのだが、

process.cmd | sort

などとパイプしたとたん、処理が返らなくなってしまう。

これの対処法はいくつかある。 続きを読む

[Powershell] UTF-8 でエンコードされた標準出力を受け取る

2バイト目に ASCII コードがくることを想定していないコンソールアプリなど、標準出力を UTF-8 として使用するコンソールアプリは少なくない。
しかし、PowerShell は標準では UTF-8 の標準出力をそのまま読み取ることができない。
(後述するが、単純な方法はある)

そういった場合でも、.NET Framework を駆使すれば、ちゃんと文字列として取得できる。

続きを読む

XPath で、Doctype 宣言以外のコメントだけ抜き出す

DOM level3 に対応したブラウザで使える、 javascript の document.evaluate であれば、XPath ですべてのコメントを抜き出すときに、

var result = document.evaluate("//comment()", document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);

等としておけば問題ないが、一部の HTML パーサでは、HTML の DOCTYPE 宣言もコメントとして扱ってしまうものがある。
…と言うより、 "<!" で始まって、">" で終わるものはすべてコメントとして扱ってしまうような場合について。

続きを読む

IEではhtmlのid属性がwindowのプロパティになる

JavaScriptでは、varによる変数宣言をしていない場合、グローバルオブジェクト(window)のプロパティとして扱われる。
IEでは、htmlのid属性が、このグローバルオブジェクトのプロパティになってしまうらしい。

以下のコードで、「click!」というアラートが出たら、 window.btn01 に button の DomElement が入っているということになる。(Firefox や Chrome 等では、エラーになってなにも表示されないはず)

<button id="btn01" onclick="alert(btn01.innerHTML);">click!</button>

しかも jQuery が有効な状態で、

btn01 = null;

などとやろうとすると、btn01 変数にはすでに button の DOM が入っているのと、IE8とjQueryの相性の問題で、IEではエラーになってしまう。

まぁ、

var btn01 = null;

と、var つけてやるだけでOKだし、そもそもIE9ではエラーにならないので、古いブラウザ使うなってコトでFAでもよい気がしないでもないけどね…
とはいえ、9/1現在、IE8がシェア35%と圧倒的なので無視できないのよねぇ
参考: 日本のバージョン別ブラウザシェアグラフ (StatCounter Global Statsより)

Intel Data Migration Software は RAM Disk と相性によってフリーズ

Intel Data Migration Software がアンインストールできなくなった根本の原因は、こいつをインストール直後に起動したら、snapman.sys のエラーでブルースクリーンになったせいなのだが、いろいろ試したところ、このツールがRAM Diskと相性が悪いご様子。
Dataram RAMDisk を入れていたのだが、これをアンインストールした後、Intel Data Migration Software を実行したところ、ブルースクリーンにならずうまく実行できた。

久々にブルースクリーンから抜けられなくなって焦った。
使い終わったら、intel data migration software をアンインストールしてから、RAMDisk 入れることをおすすめする。

まぁ、起動時につながってるドライブ走査するから、そんときにRAMDiskがあるとエラーになるんだろう。

Intel Data Migration Software がアンインストールできない

インストールに失敗して、Intel Data Migration Software がアンインストールできなくなってしまった。
どうやら、インストールに失敗した上、アンインストーラ用のmsiが登録されなかったようだ。
「プログラムの機能」からアンインストールしようにも、IntelDataMigrationSoftware.msi が見つからないとエラーになる。
続きを読む