MoonWing
[VS]PIA対応バージョンまとめ
- 2010年11月19日 12:00 AM
- 資料
PIAのバージョンとOfficeのバージョンと.NetFrameworkのバージョンの表をVSTO表のついでに作成。
PIAとはPrimaryInteropAssemblyことで・・・詳細はMicrosoftにお尋ねください。
| PIA | 対応Office | 対応.NetFramework | 対応Windows |
|---|---|---|---|
| XP | XP | 1.1 | XP |
| 2003 | 2003 | 1.1 | 2000 SP3,XP,Server 2003 |
| 2007 | 2007 | 1.1 | 2000 SP4,XP SP2,Server 2003 |
| 2010 | 2010 | 2.0 or higher | 2000 SP4,XP SP2,Server 2003,Vista,7,Server 2008 |
[VS]VSTO対応バージョンまとめ
- 2010年11月18日 12:00 AM
- 資料
VSTOのバージョンとOfficeのバージョンと.NetFrameworkのバージョンの表がほしくなったので作成。
VSTOとは
- Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime
- Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System
- Microsoft Visual Studio Tools for the Microsoft Office system (Version 3.0 Runtime)
- Microsoft Visual Studio 2010 Tools for the Microsoft Office System (Version 4.0 Runtime)
と微妙に名前が変わっているOffice拡張用コンポーネントのことです。
基本的には上記の2個目を省いた以下の3つあれば問題ないはず。
(というか、3個目も省いていいかも、結局2個で2003,2007,2010に対応できることになるわけだし。)
| Vsto | 対応Office | 対応.NetFramework | 対応VisualStduio | 対応Windows |
|---|---|---|---|---|
| 2005 SE | 2003,2007 | 2.0 | 2005 | 2000,XP,Server 2003,Vista,7,Server 2008 |
| 3.0 | 2007 | 3.5 SP1 | 2008 | 2000,XP,Server 2003,Vista,7,Server 2008 |
| 4.0 | 2007,2010 | 3.5 SP1 | 2010 | XP,Server 2003,Vista,7,Server 2008 |
[C#]文字列整形関数
- 2010年11月8日 12:00 AM
- 記録
.Netframework 3.0 以降でなるだけ国・地域に依存しない感じで、文字の整形関数を考えてみた。
というのも、もともと用意されているPadLeftなどでは日本語の全角文字を使用するとずれてしまう。
ここでめんどくさいのが文字数と文字コードのバイト数ともに文字の表示数と一致しないこと。
全角文字はよく2バイト文字といわれていたが、Unicodeではそうならない。
表示上2バイト分(全角)でも、バイト数は3バイトとか4バイトも存在する。
もちろん、文字数でカウントしても全角文字は1文字として検出される。
つまり、3バイトの全角文字1文字をPadLeftで整形しようとしたときにめんどくささに気づくわけだ。
で、強引な方法で実装してみたのでメモ。
実際は、半角か全角かを検出できればいいから画面から取得なんて強引なことをしなくてもできそう。
でも、気がついた時にはすでに組み終わってたので、改良された方はトラックバックとかお願いします・・・。
//書式整形に使用するフォント
public Font fixedPitchFont;
public setFixedPitchFont()
{
//書式整形に使用するフォントをユーザー環境に合わせて切り替える
System.Globalization.CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
if (ci.TextInfo.LCID == 1041)
{
//日本
fixedPitchFont = new Font("MS ゴシック", SystemFonts.DefaultFont.SizeInPoints);
}
else
{
//その他("Courier New":マルチバイト時にずれる)
fixedPitchFont = new Font(FontFamily.GenericMonospace, SystemFonts.DefaultFont.SizeInPoints);
}
}
private void GetFontPitch()
{
//描画サイズから1文字表示分の幅を取得する
// 1. DPIから求める
{
//解像度の取得
Font font20pixel = new Font(FontFamily.GenericMonospace, 20, GraphicsUnit.Pixel);
int dpi = (int)Math.Round((72 * font20pixel.Size) / font20pixel.SizeInPoints);
//固定幅はWidth:Height=1:2で作成されていることを前提として
fixedPitchFontHeight = (int)Math.Ceiling(fixedPitchFont.SizeInPoints * dpi / 72);
fixedPitchFontWidth = fixedPitchFontHeight / 2;
}
// 2. 念のため、描画してみた大きさから求めたものと比較する
{
//適当な大きさで描画用Bmpを作成(メインディスプレイの大きさで作成)
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
try
{
Graphics g = Graphics.FromImage(bmp);
Size Size1word = TextRenderer.MeasureText(g, " ", fixedPitchFont); //半角(1Word)
Size Size2word = TextRenderer.MeasureText(g, "m1", fixedPitchFont); //全角(マルチバイト文字も表示上2Word)
int wordWidth = Size2byte.Width - Size1byte.Width;
int wordHeight = Size1byte.Height;
//一致しない場合は固定幅フォントではない可能性がある。とりあえず大きい方を使う。
if (fixedPitchFontWidth != wordWidth)
{
fixedPitchFontWidth = Math.Max(fixedPitchFontWidth, wordWidth);
}
if (fixedPitchFontWidth != wordWidth)
{
fixedPitchFontHeight = Math.Max(fixedPitchFontHeight, wordHeight);
}
}
finally
{
bmp.Dispose();
}
}
}
public int Display1ByteWordCount(string text)
{
int displayFontWidth;
//適当な大きさで描画用Bmpを作成(メインディスプレイの大きさで作成)
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
Graphics g = Graphics.FromImage(bmp);
Size stringSize = TextRenderer.MeasureText(g, text, fixedPitchFont);
//表示に使用したpixelから文字数を逆算する。
displayFontWidth = stringSize.Width / fixedPitchFontWidth + (int)Math.Round((double)(stringSize.Width % fixedPitchFontWidth) / 10);
return displayFontWidth;
}
public string PaddingLeft(string text, int totalWidth)
{
int diff = Display1ByteWordCount(text) - text.Length;
return text.PadLeft(totalWidth - diff);
}
public string PaddingRight(string text, int totalWidth)
{
int diff = Display1ByteWordCount(text) - text.Length;
return text.PadRight(totalWidth - diff);
}
[CGO]CGOptimizer麦茶v1.00β3
- 2010年10月26日 12:00 AM
- CGOptimizer麦茶
CGOptimizer麦茶の開発版を更新しました。
今回の更新は下記のとおりです。
- Jpeg・PNG関係ツールで同梱可能なものは同梱
- コントロールの配置修正
- 内部コードの最適化
暫定対応のため、細かくパラメータ設定ができません。
また、開発版のため、不具合を含んでいる場合がありますので使用時に画像のバックアップを行うようにしてください。
[CGE]CGEffecterおにぎりv1.13β
- 2010年10月25日 12:00 AM
- CGEffecterおにぎり
ながらく開発が止まっていましたがメールを何通かいただいたので、手を加えました。
時間の都合上未テストコードが含まれていますのでベータ版として公開します。
今回の更新内容は下記の
- GIF形式の標準読み込み対応
- クリップボードへの格納形式をDIBからBitmapに変更
- 特定のBitmapがうまく開けない不具合に暫定対応
- 内部文字コードをUTF-8に変更(Windows98/Meで不具合があるかも・・・)
GIFアニメーションには対応しません。
もし、GIFアニメーションを開いた場合先頭画像のみ表示されます。
また、GIF形式の保存は現在未対応です。
その上、画像処理を施すと透過情報がなくなってしまいます。(該当機能未実装のため)
ベータ版のため画像処理を施す場合は画像ファイルのバックアップを必ず行ってください。
[FSIC]FileStructureImageCapture v0.9.0 Beta
- 2010年10月6日 12:00 AM
- ソフト

概要
このソフトはファイルのツリー構造を表示及び画像として保存するためのソフトウェアです。
一般的にはあまり使われないかもしれませんが、マニュアル作成時やフロントエンドソフトで
外部DLLを特定の場所に格納してほしい際にこのソフトを利用することで配置イメージを取得できます。
使い方
- File->Openからツリー構造を表示したいフォルダを選択してください。
- ScreenShot->GetTreeImageを押下すると、保存ダイアログが表示されます。
- ダイアログで保存先を選択し、保存名を入力しOKを押下するとツリーイメージが保存されます。
[I2K]IDM2KeePass 1.00
- 2010年9月2日 12:00 AM
- ソフト

- 概要
このソフトウェアはIDMからエクスポートしたXMLファイルを
KeePass CSV、XML(1.x)、XML(2.x)形式に変換するソフトウェアです。IDMことID ManagerはWoodenSoldier氏によって作られた、
Windows用の優れたIDとパスワードを管理するツールです。
公式サイト:WoodenSoldier SoftwareKeePassことKeePass Password SafeはDominik Reichl氏によって作られた、
オープンソースで多くのプラットフォームで動作するIDとパスワードを管理するツールです。
公式サイト:KeePass Password SafeKeePass XML(1.x)をインポートする場合、「VariousImport」プラグインを使用してください。
公式サイト:Plugins – KeePass - 使い方
- IDMのデータをXML形式でエクスポートしてください
- IDM2KeePassを実行してください
- 変換したい出力形式を選択してください
- [変換]ボタンを押下し、IDMからエクスポートしたXMLを開いてください
- 変換に成功すると、保存先を訪ねるダイアログが表示されますので適切なファイル名で保存してください
- KeePassを起動し、保存したファイルをインポートしてください
- Download
[I2K]IDM2KeePass 1.00 RC
- 2010年8月31日 12:00 AM
- ソフト

KeePass XML(1.x)形式への変換を追加しました。
これにより、CSV,XML(1.x),XML(2.x)の全てに対応しました。
あとは、少し使ってみながら不具合がなさそうであれば正式版をKeePassとIDMに報告しVectorに登録します。
RC版のため、不具合が残っている可能性がありますので、ご使用になるときはファイルのバックアップをしておいてください。
[Tool]Gnu On Windows
- 2010年8月25日 12:00 AM
- ツール
LinuxやMacOSXなどと比べるとWindowsだけコマンドが違うとかコマンドが足りないとかクロスコンパイル時に困ることもあった。
こういった場合、今まではCygwinを利用したり、用途によってはMSYSで作業していたがCygwinはレジストリの変更などが多くできれば入れたくない。
そこで、見つけたのがGOW。シンプルなコマンド群でCygwinと比べれば簡易的なものだろうけれど、多くの場合において十分使える。
- ダウンロード
Home-gow-GitHub
[Tool]exciteメールを保存
- 2010年8月24日 12:00 AM
- ツール
昔はよく使っていたexciteメールだけれど、使い勝手からか使わなくなってしまった。
転送メールの設定もできず、保存するのにツールを使用したのでそのメモ。
- 準備
- 使用方法
- 「Jupiter5」を起動するとセキュリティ警告が表示される場合があるが、通信を行う必要があるので「ブロックを解除する」を選択

- メニュー[設定]->[スクリプト]->[インストール]を選択する

- ダウンロードしたExciteメール Ver. 2.12の[Excite_yobane.js]をドラッグする

- ドラッグした[Excite_yobane.js]をダイアログにドロップし、スクリプトをインストールする

- メニュー[設定]->[アイテムの追加]を選択する

- ユーザIDやパスワード、メールアドレスを入力する

- 設定したアイテムを右クリックし[このアイテムを実行する]を選択し、取得を開始する

- 「Jupiter5」を起動するとセキュリティ警告が表示される場合があるが、通信を行う必要があるので「ブロックを解除する」を選択
- 検索
- フィード
- 翻訳










