Home > Tags > C#

C#

むしゃくしゃしてやった、絶対反省しない。

今日は一日、Webサーバーのセットアップとサイトデザイン(自分のと会社のと)をやっていてちょっと疲れた。同じことばかりやっていると飽きる。そこでRSSを読んで気晴らしをしていると…

イミフwwwうはwwwwおkwwww モールス信号の「・」「-」を「あ」「ん」に変えると喘ぎ声になる
http://imihu.blog30.fc2.com/blog-entry-3151.html

ってことで、やってみた。

image

なんかエロいね!

もうちょっとブラッシュアップ(イロハニへの対応と、Decode機能の実装)したら、公開してみようかなーと思う。内部的には一度モールス信号への変換をかましているので、フィルター関数を実装すれば、「ウホッウホホッ!」でも「キラッ☆キラリラリンッ☆」でもなんでもいけそうだ。どうせなら、コマンドラインで使えるようにしよう。

ああ、夢、ひろがりまくリング。

image

サイトの方はこんな感じになった。サイト名は思いつきすぎるので、なんとかしたい。だれかいい案がない?

7V信号解析機
http://3qe.us/kaidoku.php

もう作られてるやん!(++ すげーなぁw

[WPF] がんばってバージョン情報ダイアログ作ってみた

image

ちょっと頼まれてソフトをしこしこ作っていたのだけど、コアな機能よりUIに手間がかかってしまいます。WPF って慣れないので、ひとつひとつの作業にいちいちヘルプをにらめっこする必要があるんですよねぇ…

今日はバージョン情報ダイアログを作るのに四苦八苦。必要な機能は、

  1. アセンブリからアプリ名やバージンを勝手に取ってくること
  2. アプリケーションアイコンを抽出して表示すること

Continue reading

[C#] ダブルクリックでフォームを閉じる&ドラッグでフォームを移動する

懐かしいことを聞かれたので。調べたら、VBのコードが多いのね。

Continue reading

LinQ2Twitter にお任せ

image 

Windows Mobile 用の Twitter クライアントが欲しくなったんだが、イマイチしっくりくるものがない。だったら作ればいいじゃない!家のPCにはVS2010Betaしか入っていないのでWindows Mobile用のソフトは作れないが、とりあえずWindows Formアプリとして作ってみた。

1時間ぐらい頑張ったけど、それなりにムズかしい部分もある感じ。アイコンは多分マルチスレッドにして裏でダウンロード+キャッシュを自分で管理しなきゃいけないし、OAuth とかもチャレンジしてみたいかも。ListBox はオーナードローでガリガリ。指やカーソルキーで上下スクロールするなら、あとでスクロールバーは消しちゃってもいいな。

肝心のTwitterとの通信部分は、LinQ2Twitter にお任せ。コレは楽チンですよ。

LINQ to Twitter – Home

TwitterContext context = new TwitterContext(
	"daruyanagi", "********");

var query = from twit in context.Status
            where twit.Type == StatusType.Friends
            select twit;

listBox1.Items.Clear();

foreach (Status s in query)
    listBox1.Items.Add(s);

[WPF] アプリケーションの実行パスを取得する

小ネタ。

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 クラス(プロジェクト作成時に自動生成されるヤツ)のプロパティとして実装しておけば、いろいろと便利かもしれない。

Continue reading

[WPF] キーボードフック(WM_KEYBOARD_LL)

SetWindowsHookExは本来DLLを作成し、そのインスタンスを指定しなければならない。でも参考にしたプログラムはEXE上のフックプロセスをそのまま指定していた。何故可能なのかは不明だが確かにそのサンプルAPは動く。そこでそれをそのまま真似てみたがSetWindowsHookExからはエラーが返ってくる。この原因がわかるまで1週間近くかかってしまった。

結論から言うと(と言うか結論しか言えない)、プロジェクトのプロパティにあるデバックタグに「Visual Studioホスティングプロセスを有効にする」が規定値でオンになっている。このチェックを外さないとSetWindowsHookExはフックプロセスを異常とみなすようだ。

Jumboのブログ! | WPFを使った拡大鏡を目指して

フックってDLL作ってやらなきゃいけないと思ってけど、そんなことしなくても動くんだね。これを参考にして、キーボードのローレベルフックをやってみた。

Continue reading

[WPF] WPFでいろいろ躓いたところ

描画領域を取得したい場合は、 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 でガリガリとウィンドウ枠の幅を取得しても良かったんだけど、めんどくさいしね。

Continue reading

Windows Mobile プログラミング、始め<del>たい</del>ました。

image

Windows Mobile ってほんと、中身が Windows なのな。

そりゃ使えない機能もあるけど、案外 Win32 API がそのまま通ったりして、フルスペック Windows とあまり違わない感じ。楽がしたいので .NET 3.5 CF + C# でコソコソと何かを作ってるんだけど、Compact Framework で何ともならない部分は、API をじかに叩けばOK。
(たとえば、IMEを制御したいときはIMM系APIを呼べば良かったりとか。あ、これでいいんだ?ってな感じ。全角/半角キーのメッセージを送ってもいいみたいだが。もちろん、WM独自要素のサポートはあって、たとえば Smartphone なら InputModeEditor を使うと、SIP をテンキー・かな・カナ・アルファベット…とさらにいい感じに制御できる。)

ただ、DllImport するときに呼び出すアイツの名前。

CoreDLL.dll(←Windows Mobile では大概このDLLにAPI関数が収まってる)

というDLLの名前だけは気に食わん。DLLってかぶってるやんけ!

.NET 3.5 CF の方は省かれた部分が多くて、いちいちヘルプやインテリセンスでメソッドやプロパティがあるか調べるのが面倒。あと、リソースが厳しいのでガベコレに任せず手動でさっさとDispose()したほうがいいようだ。

生まれて初めてのモバイルものを作るけど、こういう非力なデバイスでいろいろ作れる人って、正直すごいと思う。

おやすみ。

[C#] Int を byte[] に分解する

たとえば、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 とかそんな感じになるはず。

Continue reading

[C#] フォントに影をつけて描画する

image

手順としては、

  1. 文字を描画 → ぼかし(ついでに適宜文字色を薄くする。 黒→灰色)
  2. 文字をずらして再描画

するだけ。だけど、"ぼかし" のやり方がわからん。けれど、さいわい手取り足取り解説してくれているすばらしいサイトを見つけた。こんなんできるんだなぁー、と感心しきり。

とりあえず今回は、ImageUtils.cs を拝借して手っ取り早くちょろっとやってみた。

Continue reading

Home > Tags > C#

My Friend Feed

http://friendfeed.com/daruyanagi

Google Analyticator

550
 Unique Visitors 
 (1 day) 
Powered By Google Analytics

Return to page top