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起動するのも億劫なので記憶だけを頼りに書いてます。