So-net無料ブログ作成

HtmlDocumentのGetAttribute [C#]

WebBrowswerが表示するhtml中のリンクを取得して
独自に処理をしようとする時、HtmlDocumentから
特定のHtmlElementを抜き出して、処理をする必要がある。

指定されたポイントからエレメントを特定できたりする。
結構便利だ。右クリックされた時にクリックされたリンクを・・・
という処理をしたい時に

HtmlElement el = Document.GetElementFromPoint(e.Location);
(DocumentはWebBrowser.Document eはMouseEventArgs)

すれば簡単に取れる。そのHtmlElementが

<a href="http://www.example.com">Hoge</a>
のようなリンクで、URLを取得したい場合は、
HtmlElement.GetAttributeで取得してやればいい。

string attr = el.GetAttribute("href");

GetAttributeは特定の属性を抜いてくれるのでhref属性を
指定すれば、問題なく取れる。

しかも、<a href="/sample">~</a>という相対パスでも
HtmlElementがきちんと「http://www.example.com/sample
という絶対パスとして返してくれる。

これをHtmlElement.OuterHtml等から取得して文字列操作で
対応しようとすると、相対パス → 絶対パスの変換が必要で 対応が面倒そう。


C#でリソース(Bitmap)をアセンブリに埋め込んでそれを利用する [C#]

以下、以下の設定として話を進めます。
・プロジェクトはhogeApp
・埋め込むビットマップはhoge.bmp

○ファイル埋め込み編

1.ビットマップをプロジェクトに追加

2.ビットマップのビルドアクションを
「EmbeddedResource(埋め込みリソース)」に設定

○ファイル読み込み編

1.現在実行しているアセンブリ取得
 System.Reflection.Assembly.GetExecutingAssembly();

2.アセンブリに埋め込まれているリソースを読み込む
 asm.GetManifestResourceStream("hogeApp.hoge.bmp");

3.リソースから読み込んだストリームからBitmapクラス作成
Bitmap bitmap = new Bitmap(stream);