Home > Tags > Tips
Tips
[WPF] がんばってバージョン情報ダイアログ作ってみた
- 2009-09-22 (火)
- Programming
ちょっと頼まれてソフトをしこしこ作っていたのだけど、コアな機能よりUIに手間がかかってしまいます。WPF って慣れないので、ひとつひとつの作業にいちいちヘルプをにらめっこする必要があるんですよねぇ…
今日はバージョン情報ダイアログを作るのに四苦八苦。必要な機能は、
- アセンブリからアプリ名やバージンを勝手に取ってくること
- アプリケーションアイコンを抽出して表示すること
- Comments: 0
- Trackbacks: 0
Make Link と、ほかのサイトからの引用に便利な設定。
ブログでほかのサイトを引用するのに便利な「Make Link」。でも、デフォルトでは引用向けの設定があまり登録されていないのかな?数種類登録しておくと便利なんだけど。
ということで、自分用に設定をメモ。
- Comments: 0
- Trackbacks: 0
[C#] ダブルクリックでフォームを閉じる&ドラッグでフォームを移動する
- 2009-07-17 (金)
- Programming
懐かしいことを聞かれたので。調べたら、VBのコードが多いのね。
- Comments: 0
- Trackbacks: 0
WordPress で特定カテゴリのフィードを除外して取得する
- 2009-07-06 (月)
- Computer
WordPress では特定のカテゴリーを排除してフィードを表示することができる。ただし、それにはカテゴリのIDが必要。
たとえば、ウザい僕の日記を読みたくない場合、日記のCategory IDは「5」なので、http://www.be-styles.jp/feed?cat=-5 と打てば日記以外を表示できる(「-」をとれば、日記カテゴリのフィードにリダイレクトされる)。
さらに、バイクの話題も興味がない場合、バイクの Category ID は「11」なので、http://www.be-styles.jp/feed?cat=-11 と打てばバイクの話題以外のフィードを取得できる。
さらにさらに、日記もバイクもウザい人のためには、http://www.be-styles.jp/feed?cat=-5&cat=-11 が使える……と思ったが、ウチのサイトでは使えないようだ。
via Exclude Categories From Wordpress Feeds
—
- Comments: 2
- Trackbacks: 0
[ネットブック] Windows 7 のタスクバーを縦表示に
- 2009-05-24 (日)
- Computer
ネットブック + Windows 7 の組み合わせは良好。
ただ、不満がひとつあって、タダでさえ足りない縦解像度が、縦幅倍増の新タスクバーで圧迫されてしまう。 それを解決するために、タスクバーを縦表示にしてみた。
日付表示が消えてしまった!(右は通常の場合)
- Comments: 0
- Trackbacks: 0
[WPF] アプリケーションの実行パスを取得する
- 2009-03-29 (日)
- Programming
小ネタ。
WPF の Application クラスには、System.Windows.Forms.Application クラスほど便利ではなく、たとえば StartupPath プロパティがない。ないなら作れ、って感じなのだけど、はてさて。
public string GetStartupPath()
{
System.IO.Path.GetDirectoryName(
Environment.GetCommandLineArgs()[0]);
}
Environment.GetCommandLine はコマンドライン引数を返してくれるが、その先頭には必ずアプリケーションの実行パスが含まれている。それを利用しよう。つまり、コマンドライン引数を string 配列にして返してくれる Environment.GetCommandLineArgs()[0] がすなわちそのまま EXE のパスになっている。
ほかにも、System.Windows.Forms.Application にはいろいろ便利なプロパティや関数があるので、それをマネして WPF の App クラス(プロジェクト作成時に自動生成されるヤツ)のプロパティとして実装しておけば、いろいろと便利かもしれない。
- Comments: 0
- Trackbacks: 0
[WPF] キーボードフック(WM_KEYBOARD_LL)
- 2009-03-29 (日)
- Programming
SetWindowsHookExは本来DLLを作成し、そのインスタンスを指定しなければならない。でも参考にしたプログラムはEXE上のフックプロセスをそのまま指定していた。何故可能なのかは不明だが確かにそのサンプルAPは動く。そこでそれをそのまま真似てみたがSetWindowsHookExからはエラーが返ってくる。この原因がわかるまで1週間近くかかってしまった。
結論から言うと(と言うか結論しか言えない)、プロジェクトのプロパティにあるデバックタグに「Visual Studioホスティングプロセスを有効にする」が規定値でオンになっている。このチェックを外さないとSetWindowsHookExはフックプロセスを異常とみなすようだ。
フックってDLL作ってやらなきゃいけないと思ってけど、そんなことしなくても動くんだね。これを参考にして、キーボードのローレベルフックをやってみた。
- Comments: 0
- Trackbacks: 0
[WPF] WPFでいろいろ躓いたところ
- 2009-03-22 (日)
- Programming
描画領域を取得したい場合は、 RenderSize が使える。以下は、コンテンツが 590×450になるようにウィンドウサイズを変更する例。
private void buttonAdjustWindowSize_Click(
object sender, RoutedEventArgs e)
{
Width -= (grid.RenderSize.Width - 590);
Height -= (grid.RenderSize.Height - 450);
}
Window -> grid -> その他もろもろ といった感じにコントロールを配置しているので、grid の大きさが、いわば Form アプリの ClientRect() に相当する感じになっているので、それを利用してみた。
まぁ、API でガリガリとウィンドウ枠の幅を取得しても良かったんだけど、めんどくさいしね。
- Comments: 0
- Trackbacks: 0
[C#] Int を byte[] に分解する
- 2009-01-04 (日)
- Programming | Study
たとえば、Color.ToArgb() で返ってくる整数値(AARRGGBB の32ビット)を成分ごとにばらしたい場合などなど。
シフト演算をしてもよいが、私のような文系人間には少しつらい。ちょうどいいことに、.NET には専用のコンバータークラスがあるのでそれを利用すればいい。
BitConverter はさまざまな型の変数を、バイト配列に変換してくれる。
たとえば、.GetBytes() に整数値を渡せば、byte を4つ格納した配列を返す。
Int32 i = /* 何らかの整数値 */;
byte[] b = BitConverter.GetBytes(i);
label1.Text = string.Format(
"{0:X2}-{1:X2}-{2:X2}-{3:X2}",
b[0], b[1], b[2], b[3]);
出力結果は、 C0-AA-F2-87 とかそんな感じになるはず。
- Comments: 2
- Trackbacks: 2
[C#] 拡張メソッドでちょっとコードをきれいにする
- 2008-12-09 (火)
- Study
点と点の距離や中点をとる場合などに、Point型をPointF型に簡単に変換できたら便利。そのためのメソッドは、こんな感じになるだろう。
public PointF PointToPointF(Point p)
{
return new PointF((float)p.X, (float)p.Y);
}
けど、こんなメソッドが増えてくると、なんだか全体のコードの見通しが悪くなって気持ち悪い。ユーティリティー系メソッドを別ファイルにしてまとめておくというのもアリだが、PointToPointF() という名前がなんともはや(Delphi ならこれでもいい気がするけど)。
できれば、i.ToString() みたいに p.ToPointF() なんて書ければいいのだが。
C#3.0 なら拡張メソッドを使うことで、簡単に(継承を使わずに)既存のクラスへ新しいメソッドを付け加えることが出来るらしい。
- Comments: 0
- Trackbacks: 0
Home > Tags > Tips

