IEツールバーを作成!VC#2008で作ってみるよ。

※ メモのため、かなり乱雑でいろいろ考えてない記事です。

IEツールバー作成のために、BandObjectsを入手

http://www.codeproject.com/KB/shell/dotnetbandobjects.aspx

※ユーザー登録しないとダウンロードできません

Download source files - 118 Kb
をクリックして「dotnetBandObjects_src.zip」をダウンロード

IEツールバー作成のために、BandObjectsをコンパイル

http://d.hatena.ne.jp/yuta4839/20080519のまとめ

1.VC#2008で、新規プロジェクト作成
プロジェクト名:適当(BandObjectsとか)
クラスライブラリを選択

2.そのまま、保存
プロジェクト用のディレクトリ作成が目的

3.「dotnetBandObjects_src.zip」を解凍

4.「Class1.cs」と同一階層のディレクトリに
ComInterop.cs
BandObject.cs
Attributes.cs
をコピーして、プロジェクトに読み込ませる

5.不要コードの削除
BandObject.cs
の AssemblyVersion と AssemblyKeyFile の2つをコメントアウト

6.参照設定
 COM >> Microsoft Internet Controls (SHDocVw)
 .NET >>System.Drawing、System.Windows.Forms

7.アセンブリの署名
 パスワード保護なしでキーファイル作成

8.ビルドイベント、ビルド後
 gacutil /if "$(TargetDir)BandObjectLib.dll"
 gacutil /if "$(TargetDir)Interop.SHDocVw.dll"

9.ビルド
 bin/Release から、BandObjectLib.dllとInterop.SHDocVw.dllをget

http://codezine.jp/article/detail/58

IEツールバーを作る

適当にあーだこーだして作成。
このへんはC#で普通にアプリ作るのと同じなので省略

あ、BandObjectを継承する。
で、base.なんか.navigate2() で、ブラウザにURLを送れる。
このへんは、webbrowserコントロールの応用でおk。

で、プロジェクトのプロパティの、ビルド後の実行に
>cd 作成したDLLがある場所
>gacutil /if 作成したDLL
>regasm 作成したDLL
をセット

作成したIEツールバーを手動でインストール

dosで
>cd 作成したDLLがある場所
>gacutil /if 作成したDLL
>regasm 作成したDLL

作成したIEツールバーを手動でアンインストール

>gacutil /u 作成したDLL
>regasm /u 作成したDLLの名前(拡張子なし)

gacutil が見つからない

→ パスが通ってないので、windowのファイル検索で場所を探して環境変数に登録

regasm が見つからない

→ パスが通ってないので、windowのファイル検索で場所を探して環境変数に登録

gacutilで、「厳密名のないアセンブリ」

「プロジェクト」→「プロパティ」→「署名」
  「アセンブリの署名」にチェック
キーファイルを作成(パスワードなし)

regasmで、「型は何も登録されませんでした。」の対処

プロジェクトのプロパティ、アセンブリ情報
[アセンブリを COM 参照可能にする] にチェック。

インストーラの作成

ソリューションエクスプローラで、右クリック、新規プロジェクト、セットアップウィザード

で、プロパティで、なんかしてレジストリ情報を引き継ぐようにする(だったはず)

あと、C#なので、サーバのapi側は、jsonよりもXMLで吐き出したほうが色々と扱いやすい。
json.netとかダイナミックjsonよりは、とりあえず見送ってxmlで。

ってか、.netの下位バージョンのことまで考えなくってよかったっけ?どうだっけ?

※VS起動するのも億劫なので記憶だけを頼りに書いてます。