Diary on wind(跡地)

おもにPC関係(2008-2013)、跡地兼日記避難所(2014-)

ESET Smart Security V7.0にアップグレード

2013-12-12 01:06:17 | ソフトウェア

今日、ESET Smart Security V7.0がリリースされたので早速更新してみた。インターフェイスの見た目はあまり変わっていないが、新機能としては未知のウイルスについて検出精度が上がったらしい。

早速モニター版から更新すると、ライセンスが有効期限切れだというメッセージが。あれ?3年版のESET Family Securityを買ってまだ1年経っていないはずなのにどういうこと。バージョンアップグレードが有料だという話は聞いていないぞ。

と思ったら、ユーザー名をよく見ると購入したときのライセンスのものと違う。どうやら、モニタープログラムを入れたときにモニターユーザー専用のライセンスが登録され、それが引き継がれた模様。自分のライセンスのユーザー名・パスワードを登録し直したら、有効期限も正しく修正された。

ところで、販売元であるキヤノンITソリューションズのWebサイトの構造がわかりにくい。プログラムを再ダウンロードしようと思ってもなかなかリンクが見つからなかったりする。そこで、ここによく見る・必要とされるリンクを置いておく。

○ キヤノンITソリューションズ ESET Smart Security 関連リンク

12/11 B2 U7 RR


静的ブログウェブサイト生成ツール『Jekyll』

2013-11-22 22:30:10 | ソフトウェア

最近geekどもの間で話題になっているJekyllをWindows上で使ってみる。

Jekyllとは、HTMLやCSSで作ったテンプレートファイルとMarkdownで記述した原稿テキストをもとに、静的なウェブサイトやブログサイトを生成するツール。Movable TypeやWordpressとは異なり、ローカルで実行するもの。Jekyll自体はウェブサイト生成ツールしか含まないので、テンプレートやテキストなどの必要なファイルは自分で作成・配置する必要がある。とはいってもテンプレートは既にネット上で多くの方が公開しているので、それをそのまま使ってもいいし、許されているならそれを改変して自分流にカスタマイズしてもいい。

WindowsへのJekyllの導入手順はこちらの方の情報が参考になった。
Windows で Jekyll 1.3 を動かすまでの手順 - てっく煮ブログ

Pythonにsetuptoolsを入れようとするとUnicodeDecodeErrorが発生するので、Pygmentsの導入はあきらめた。(←後に解決。原因はよくわからなかったけど、とりあえずPython 3.xでは動かないということは明らか。)

Jekyllの導入手順

  1. RubyInstaller for WindowsからRubyInstaller 2.0.0とDevelopment-kitをダウンロード・インストール。
  2. コマンドプロンプトでDevelopment-kitのインストール先をカレントディレクトリにして、「ruby dk.rb init」「ruby dk.rb install」を実行。
  3. コマンドプロンプトで「gem install jekyll」を実行。

[A]新しくサイトを作る場合

コマンドプロンプトからサイトファイルの作成場所をカレントディレクトリにして「jekyll new [サイトディレクトリ名]」を実行。「cd [サイトディレクトリ名]」「jekyll serve」を実行する。次のように表示されていれば正常完了。間にエラーメッセージが表示されていれば、ページ生成に失敗している。

Configuration file: C:/RubyDev/jekyll-bootstrap-master/_config.yml
            Source: C:/RubyDev/jekyll-bootstrap-master
       Destination: C:/RubyDev/jekyll-bootstrap-master/_site
      Generating... done.
    Server address: http://0.0.0.0:4000
  Server running... press ctrl-c to stop.

正常ならば、ブラウザからhttp://localhost:4000を開くとサイトプレビューが表示される。

[B]テンプレートや既存のサイトがある場合

そのルートディレクトリをカレントディレクトリにして、「jekyll serve」を実行する。あとは[A]と同様。

今回はPygmentsを使わないので、サイト生成前にサイトのルートディレクトリにある「_config.yml」に「pygments: false」を追加しておく必要がある。


まだ仕組みを把握し切れていないが、サイト生成を構成するファイルは少ないので、カスタマイズはそれほど難しくなさそう。

問題は技術そのものよりも活用方法で、WordPressみたいな動的ブログサイトとどう使い分けるかということ。
JekyllみたいなのとWordPressみたいなのの組み合わせ - Weblog - Hail2u.net

Jekyllは原稿をテキストファイルで作成して手元に置いておくので、後から参照・修正するときに都合がいい。また、静的コンテンツなのでホストに負担が掛からず、ロードが速い。周りを見ていると、ソースコードの構文ハイライトプラグインを目当てに使っている方が多い。

今のところこれを積極的に使うつもりはない。でもgooブログはソースコードや数式といったテキスト・画像以外のコンテンツを入れるには不便だから、そういった必要が出てきたときはJekyllを活用してもいいかもしれない。


2013年のWebブラウザとOSのシェア

2013-11-18 22:30:38 | ソフトウェア

○ ブラウザシェアの世界的な傾向

Wikipediaのen:Usage share of web browsersによれば、IEは2004年にシェア90%を超えていたのをピークに下がり続け、現在は半数を割っている。IEの代わりにシェアを得ていったのがFirefoxだったが、2010年に30%を超えたのをピークに緩やかに下がり続けている。Chromeは2008年の登場以来シェアを上げ続け、最新の統計ではIEを上回って40%を占めようとしている。

○ 当ブログのアクセス解析によるブラウザシェア (2013/11/12-11/18、計12,160IP)

ブラウザエンジン別シェアの割合は記事トップ画像の円グラフを参照。

順位 ブラウザ エンジン IP数 %
1 MSIE/7.0 Trident 2,263 18.3
2 Chrome/30 Blink 2,211 17.9
3 Firefox/25.0 Gecko 2,131 17.2
4 MSIE/8.0 Trident 1,299 10.5
5 Chrome/31 Blink 881 7.1
6 MSIE/11.0 Trident 797 6.4
7 MSIE/10.0 Trident 563 4.6
8 MSIE/9.0 Trident 303 2.5
9 Firefox/24.0 Gecko 223 1.8
10 Safari Webkit 216 1.7
11 Opera/12 Presto 206 1.7
12 Sleipnir Blink 155 1.3
13 Sleipnir Trident 117 0.9
14 MSIE/6.0 Trident 99 0.8

先のWikipediaの記事によれば、現在もIEのシェアが最も高いというのは日本、中国、韓国に共通する特徴のようだ。上の表には載せていないが、Firefoxの古いバージョンによるアクセスが結構ある点が気になった。しかも、最も古くて3.0や3.5から、かなりばらつきがある。対してChromeは古くても26からだった。

○ 当ブログのアクセス解析によるOSシェア (2013/11/12-11/18、計12,225IP)

Image: OSシェア 円グラフ

順位 OS IP数 %
1 Windows 7 6,728 54.5
2 Windows XP 1,894 15.3
3 Windows 8.1 1,174 9.5
4 Windows 8 890 7.2
5 Windows Vista 552 4.5
6 Ubuntu 380 3.1
7 Mac OS X 10.9 Mavericks 185 1.5
8 146 1.2
9 Mac OS X 10.8 Mountain Lion 96 0.8
10 Mac OS X 10.6 Snow Leopard 54 0.4
11 Mac OS X 10.7 Lion 50 0.4
12 Windows Server 2003 31 0.3
13 Windows 2000 19 0.2
14 Mac OS X 10.5 Leopard 8 0.1
15 Mac OS X 10.4 Tiger 7 0.1
16 Windows 98 6 0
17 Windows RT 3 0
18 Windows 95 1 0
19 Windows CE 1 0

当サイトはWindowsやUbuntuに関する記事が多いため、やや偏った結果であることを考える必要がある。

かくいう私は、メインはSleipnir(Blinkエンジン)とFirefoxの両方をサイトや状況に応じて使い分けていて、ニコ動・ニコ生の視聴だけIEを使っている。なぜニコ動だけIEなのかというと、Sleipnirは複数起動が禁止されていて2窓で見れないことと、Firefoxはエラーが発生すると全部まとめて落ちるから。IEは複数起動ができてそれぞれのタブが独立したプロセスで動くので都合がいい。

[EOF]


Windowsオペレーティングシステムのコンテキスト[Compatibility@app.manifest]

2013-11-13 19:57:22 | ソフトウェア

Windowsタスクマネージャーの「オペレーティングシステムのコンテキスト」およびアプリケーションマニフェストのcompatibilityセクションについて。

タスクマネージャーの「詳細」タブにあるプロセスの一覧に「オペレーティングシステムのコンテキスト」という項目があって、Windows 8.1だと「Windows Vista」「Windows 7」「Windows 8」「Windows 8.1」のいずれかになっているのだけど、これがどういう意味で何を元に判別しているのか、気になったので調べてみた。

App (executable) manifest - MSDN Windows Dev Center Desktop

どうもこれはWindows 7で追加された互換性のための機能で、Windows Vista以前で動作するように設計されたアプリケーションはWindows Vistaの仕様で動作し、Windows 7で動作するように設計されたアプリケーションはWindows 7の仕様で動作するというもの。具体的には、アプリケーションマニフェストのcompatibilityセクションで、OSバージョン毎に固有のsupportedOS Idを追加することで新しいOSの仕様で動くようになる。アプリケーションマニフェストにcompatibilityセクションを記述していない場合は、Windows Vistaの仕様で動作する。今のところそれぞれの仕様の違いはそれほど大きなものではないようだが、将来のWindowsではさらに仕様変更が増えるかもしれない。

私は今までVS2008でWindowsアプリケーションの開発を行っていたので、アプリケーションマニフェストはrequestedExecutionLevelを記述するものという認識しかなかった。VS2010以降ではアプリケーションマニフェストファイル作成時のテンプレートでcompatibiltyセクションが追加されるようだ。

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <!--このアプリケーションが動作するように設計されている、Windows のすべてのバージョンの一覧。
    Windows は最も互換性の高い環境を自動的に選択します。-->

    <!--アプリケーションが Windows Vista で動作するように設計されている場合は、次の supportedOS ノードのコメントを解除します-->
    <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>-->

    <!-- アプリケーションが Windows 7 で動作するように設計されている場合は、次の supportedOS ノードのコメントを解除します。-->
    <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->

    <!--アプリケーションが Windows 8 で動作するように設計されている場合は、次の supportedOS ノードのコメントを解除します-->
    <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>-->

    <!-- Windows 8.1 RTM -->
    <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></supportedOS>-->

  </application>
</compatibility>

[EOF]


音楽CDをFLAC形式で取り込む [Media Go]

2013-09-04 18:52:29 | ソフトウェア

Sony Media Goを使って音楽CDの楽曲をFLAC形式(フリーの可逆圧縮コーデック)に変換して取り込む。

ソニーが『x-アプリ』とは別に『Media Go』なる楽曲管理・転送ソフトを出していたことを、情弱な私はつい最近になって知った。このソフトではCD取り込み時にファイル形式としてAACとMP3の他にFLACを選択できる。しかも、楽曲情報の取得にはx-アプリと同じGracenoteのデータベースを使える。EACなどの個人・有志が開発したフリーソフトでは楽曲情報データベースにfreedbが使われることが多いが、freedbはCDの情報数が少なく、アルバム情報があたらない場合が多い。Gracenoteではゲームソフト特典のサントラCDやマルチセッションCDのオーディオ部分など、かなりマイナーなところから拾ったものでも高確率でアルバム情報がヒットする。x-アプリと同様にジャケット画像もインターネットから取得できるものは自動で取得される。音楽CDをFLAC形式に手間いらずで変換できるというのだから、使わない手はない。ウォークマンユーザーならなおさらだ。

○ 音楽CDをFLAC形式で取り込む

まず、Media Goを起動したら「ツール」→「ユーザー設定」→「CDインポート」を開く。もしくは、DVDドライブに音楽CDをセットしてMedia Goの画面で「オーディオCD」→「ユーザー設定」を開く。
Image: Media Go

「トラックのインポートに使用するフォーマット」を「FLAC」に設定してOKで設定画面を閉じる。
Image: CDインポート - Media Go ユーザー設定

あとは取り込む楽曲トラックにチェックが入っていることを確認して「CDのインポート」をクリックするだけ。

FLAC形式に対応するウォークマンへはFLAC形式のまま転送されるが、FLAC形式に対応していないウォークマンへはMP3形式(256kbps)に自動で変換・転送される。変換形式の設定は次のようにして変更できる。

○ 機器に転送する時の変換形式を設定する

一度、設定対象の機器を接続してから、「ツール」→「ユーザー設定」→「機器」を開く。「ファイルフォーマット」を選択。
「オーディオ」の「フォーマット」「品質」を好みの設定に変える。

[EOF]


VS2008SP1のセットアップでSQLSysClrTypes.msiを要求される

2013-05-30 17:21:35 | ソフトウェア

Visual Studio 2008 SP1でセットアップから機能の追加・削除を行うと、セットアップの途中でSQLSysClrTypes.msiを要求される事象について。

○症状

Service Pack 1適用済みのMicrosoft Visual Studio 2008でセットアップから機能の追加・削除を行うと、セットアップの途中で次のようなメッセージが表示されます。

「ファイル SQLSysClrTypes.msi を探しています。
Microsoft Visual Studio 2008 Professional Edition - JPN ディスク 1 を挿入してください。」

ここでVS2008のインストールディスクのパスを指定しても、パスが無効だというエラーメッセージが表示されて先に進めません。

○解決方法

1. VS2008 SP1のディスクをセットします。SP1のディスクを入手していない場合はMSダウンロードセンターからISOイメージ(VS2008SP1JPNX1512986.iso)をダウンロードして、これをDAEMON Toolsなどを使ってマウントします。Windows 8ならエクスプローラーの標準機能でISOイメージをマウントできます。

2. ディスク内のvs90sp1フォルダー内にあるSQLSysClrTypes.msiを適当な場所にコピーしておきます。

ファイル名 サイズ タイムスタンプ
SQLSysClrTypes.msi 1.42MB 2008/07/11

3. エクスプローラーでVS2008のインストール先フォルダー(標準ではC:\Program Files\Microsoft Visual Studio 9.0)を開きます。

4. その中にある「Microsoft Visual Studio 2008 Professional Edition - JPN」フォルダーを開きます。このフォルダー名はインストールした製品・言語によって異なります。

5. その中に「wcu」という名前でフォルダーを作成して、さらにその中に「smo」という名前でフォルダーを作成します。

6. 作成したフォルダー内(例えばC:\Program Files (x86)\Microsoft Visual Studio 9.0\Microsoft Visual Studio 2008 Professional Edition - JPN\wcu\smo)にSQLSysClrTypes.msiを配置します。

7. セットアップ画面には4番の作業で開いたフォルダー(例えばC:\Program Files (x86)\Microsoft Visual Studio 9.0\Microsoft Visual Studio 2008 Professional Edition - JPN)のパスを指定します。

これでセットアップが正常に行われるはずです。

参考: Feature Changes in Visual Studio 2008 SP1 may prompt for SQLSysClrTypes.msi - MSDN Blogs


CASLIIアセンブリ言語のEmEditor用構文ファイル(.ESY)

2013-02-22 23:03:50 | ソフトウェア

情報処理技術者試験 基本情報技術者(FE)の午後試験で出題されるプログラミング問題で使われるアセンブリ言語 CASLII のEmEditor用構文ファイル(.ESY)。
もうずいぶん前に作ったものです。結局私は本番ではC言語を選択してプログラミングは全問とも正解でした。それでも選択問題だからこそ守備範囲を広げておくに越したことはないと思います。

http://astra.digi2.jp/

「EmEditor Syntax Files - EmEditor用構文ファイル(*.ESY)」より7zipファイルをダウンロード、展開してください。EmEditor Professional v12で動作を確認していますが、構文ファイルそのものについてはやや古いバージョンでも読み込めるでしょう。

○構文ファイルの設定方法

  1. EmEditorを起動。
  2. 「ツール」→「設定の選択」→「設定の定義」→「新規作成」→「既存の設定を使用」→「OK」 を選択。設定名は適当に。
  3. プロパティ→「強調(1)」タブで「ここで設定する文字列を強調表示する」にチェックを入れます。
  4. インポートをクリックして構文ファイル(CASL2ASM.ESY)を開きます。
  5. 「基本」タブ→「行番号を表示」にチェックを入れます。
  6. 「ファイル」タブ→「既定の拡張子」を「cas」に設定します。
  7. 「関連付け」タブで拡張子一覧に「cas」を追加します。EmEditorと関連付けを設定すると便利かと思います。

○外部ツール(アセンブラ・実行システム)連携の設定

1. CASLIIシミュレータを入手する

情報処理推進機構 情報処理技術者試験センターのサイトから「CASLIIシミュレータ」をダウンロード・展開します。
ディレクトリ名に記号が入っているとコマンド実行の妨げになるようなので、ディレクトリ名を「javaCASL2」などに変更します。

2. Javaランタイムをインストールする

OracleのサイトからJavaランタイムをダウンロード・インストールします。64ビット版Windowsの場合は32ビット版・64ビット版のどちらでも構いません。

3. EmEditorの外部ツールを設定する

EmEditorを起動。「ツール」→「外部ツール」→「外部ツールの設定」→「新規作成」を選択。
Image: Add an external tool item in EmEditor
「タイトル」は「Assemble CASL2 source file」など適当に。「コマンド」は「[Javaランタイムのインストール先]\bin\java.exe」というように指定します。「引数」は「-jar casl2.jar $(Path) $(Filename).obj」に。「初期ディレクトリ」はCASLIIシミュレータのディレクトリパス。「アイコンパス」は指定しなくても良い。「ファイルを保存する」と「アウトプットバーを使用する」にチェックを入れる。

再度、外部ツールの設定で「新規作成」を選択。
Image: Add an external tool item in EmEditor
「タイトル」は 「Execute CASL2 object file」など適当に。「コマンド」は先と同じくJavaランタイムの実行ファイルを指定。「引数」は 「-jar run.jar $(Filename).obj」に。「初期ディレクトリ」は同じくCASLIIシミュレータのディレクトリパス。「アウトプットバーを使用する」にチェックを入れる。

設定はこれで完了です。

外部ツールから「Assemble CASL2 source file」を実行すると、現在のファイルをアセンブルします。オブジェクトファイル(*.obj)はCASLIIシミュレータのディレクトリパスに出力されます。外部ツールから 「Execute CASL2 object file」を実行すると、オブジェクトファイルをCOMETIIエミュレータで実行します。

[EOF]


アイコンリソースの最適化と実行ファイルサイズの削減 [VC#]

2013-02-08 23:49:04 | ソフトウェア

実行ファイル(*.exe)のリソース等に埋め込むアイコンデータやその使用方法を工夫して、実行ファイルのファイルサイズを抑える手法。ついでにWindows上でのアイコンの使用例も調べてみた。

通常、アイコンファイル(*.ico)はいくつかのイメージタイプ(色数・サイズ)ごとに作成された複数のBMP(またはPNG)形式ファイルで構成されている。これを何も考えずにそのままリソース(実行ファイル)に組み込むと、ファイルサイズが非常に大きくなってしまう。
アイコンの用途や動作対象のWindowsバージョンを考慮に入れて、必要なイメージタイプのアイコンのみをリソースとして組み込むべきだろう。

まずはアイコンの各種イメージタイプがWindows上でどのように使われるのか見てみる。

○Windowsバージョン別のイメージタイプ対応表

各種形式 Win98 WinXP WinVista
16x16ドット O O O
20x20ドット X X (O)
24x24ドット X O O
32x32ドット O O O
40x40ドット X X (O)
48x48ドット O O O
64x64ドット X X (O)
96x96ドット X X (O)
128x128ドット X X (O)
256x256ドット X X O
1ビット(モノクロ) O O O
4ビット(16色) O O O
8ビット(256色) O O O
24ビット(RGB) X O O
32ビット(RGBA) X O O
BMP形式 O O O
PNG形式 X X O
  • アイコンイメージの色深度(色数)は1ビット(モノクロ)、4ビット(16色)、8ビット(256色)、24ビット(1677万色)、32ビット(1677万色+アルファチャンネル(透過情報))。
  • Windows 98において、非対応イメージタイプを含むアイコンファイルはエクスプローラー上で正しく表示されない。実行ファイルのアイコンは対応するイメージタイプが含まれていれば問題なく表示される。
  • Windows XPにおいては、非対応イメージタイプを含んでいてもBMP形式であればアイコンファイルは正しく表示される。PNG形式のイメージタイプのみのアイコンファイルは正しく表示されない。
  • Windows Vista以降ではアルファチャンネル(32ビット)を含むBMP形式およびPNG形式に対応している。20x20ドット、40x40ドット、64x64ドット、96x96ドット、128x128ドットのアイコンは、画面のDPI設定を変更した場合に使われる(のだと思う)。

Windows Vista(以降)における標準的なアイコンフォーマット

/ 16x16ドット 24x24ドット 32x32ドット 48x48ドット 256x256ドット
4ビット 16x16/16C 24x24/16C 32x32/16C 48x48/16C .
8ビット 16x16/256C 24x24/256C 32x32/256C 48x48/256C .
32ビット 16x16/RGBA 24x24/RGBA 32x32/RGBA 48x48/RGBA 256x256/RGBA

最低限、16x16、32x32、48x48、256x256ドットで各8ビットと32ビットのイメージタイプを収録したアイコンを用意すれば、ほとんどの場面で対応できる。

○Windowsにおける各イメージタイプの使用例

Windows 8 エクスプローラーにおける特大アイコン表示 (256x256)
Image: View very large icons in Windows 8

Windows 8 エクスプローラーにおける大アイコン表示 (256x256を自動縮小)
Image: View large icons in Windows 8

Windows 8 エクスプローラーにおける中アイコン表示 (48x48)
Image: View medium icons in Windows 8

Windows 8 エクスプローラーにおける小アイコン表示 (16x16)
Image: View small icons in Windows 8

Windows 8 タイトルバーにおけるアイコン表示 (16x16)
Image: View an icon at titlebar in Windows 8

Windows 8 タスクバーにおけるアイコン表示 (32x32)
Image: View an icon at taskbar in Windows 8

Windows XP エクスプローラーにおける「並べて表示」アイコン表示 (48x48)
Image: View an icon in Windows XP Explorer

Windows XP エクスプローラーにおける「アイコン」アイコン表示 (32x32)
Image: View an icon in Windows XP Explorer

Windows XP スタートメニュー右側におけるアイコン表示 (24x24)
Image: View an icon at Startmenu in Windows XP

Windows 98におけるサイズ別のアイコンファイル表示 (exeファイルは全てのサイズを含む。)
Image: View icon files various color depth in Windows 98

○アイコンを制作する

マイクロソフト公式でアイコン制作のヒントが公開されている。この辺りを参考にPNGで各イメージタイプの画像を作成して、それをアイコンファイル(*.ico)に変換する。
アイコン - MSDNライブラリ ガイドライン

アイコンファイルへの変換にはフリーソフトの@icon変換が便利。
@icon変換 - Vector

マイクロソフト公式のツールにこだわるならVisual Studioに搭載されているアイコンエディターを使うことになるが、こちらは32ビット(アルファチャンネル)のイメージタイプを作成・編集することができない。(削除は可能。現在最新のVisual Studio 2012も同様。) 上のマイクロソフト公式文書でもサードパーティーのソフトを推奨している。

ここからが今回の本題。

○アイコンファイルの256x256ドットイメージタイプの形式をPNGに変換する

アイコンファイルに256x256ドットのイメージタイプが含まれている場合、これがBMPだとサイズが非常に大きくなってしまうので、PNGに変換しておく。256x256ドットはPNGに対応したWindows Vista以降でしか使われないので、XP以前との互換性は維持できる。

@icon変換を起動してアイコンファイルを開き、メニューバーから「オプション」→「Vistaアイコンの保存」→「Vista形式」を選択する。
「リスト」→「すべて選択」としてから「ファイル」→「マルチアイコンとして保存...」、でアイコンファイルを保存する。

○アイコンファイルから不要なイメージタイプを削除する

リソースとして組み込むアプリケーションで使わないアイコンイメージタイプを削除しておく。例えばフォーム(タイトルバーとタスクバー)でしか使わないアイコンなら、16x16ドットと32x32ドットのアイコンを残して他は削除しておく。

[@icon変換を使う場合]
該当するアイコンを選択して、ツールバーの「選択アイテムの削除」ボタンをクリック。または右クリックコンテキストメニューから「削除」。
Image: Remove icon image type using @Icon sushi

[Visual Studioのアイコンエディターを使う場合]
アイコンファイルを開いて、左のアイコンリストから該当するアイコンを選択。右クリックして「イメージタイプの削除」を選択する。なお、Visual Studio 2005以前では256x256ドットのイメージタイプを含むアイコンファイルは編集できない。
Image: Remove icon image type using Visual Studio 2008 Icon Editor

○アイコンファイルをリソースファイルに埋め込む

ここからはVisual Studio(.NET Framework)のVisual C#を対象に話を進めていく。

C#プログラム上からリソースを利用する方法はいくつかある。
フォームのアイコン(System.Windows.Forms.Form.Icon)を設定する場合、Windowsフォームデザイナーのプロパティでアイコンを設定すると、各フォームに自動で作成されるリソースファイル(*.resx)にアイコンデータが追加される。これだとリソースの使い回しができない(ResourceManagerクラスを使えばできるが、余分にコードが増える)。さらに、普段は見えないがフォーム付属のリソースファイルに大量のコードが追加されて、ソースファイルが肥大化する原因になる。
Image: View a resource file (*.resx) using EmEditor v11

そこで、別にリソースファイルを作成してそこにアイコンファイルを追加して、プログラムソースにアイコンを読み込む処理を加える。

ソリューションエクスプローラーでソリューション名を右クリックして、「追加」→「新しい項目」。「アセンブリリソースファイル「を追加する。
Image: Add an assembly resource file to the project

ドラッグアンドドロップでアイコンを追加して、リソースとしてわかりやすい名前(ICON_***など)に変更する。
Image: Add a resource to the resouce file.

フォームのコンストラクタに次のようにコードを書き加える。この手法はVisual Studio 2005以降で有効。

public Form1()
{
    InitializeComponent();
    this.Icon = Res.ICON_MixedMediaFile;
}

これがWindowsフォームデザイナーで設定できればいいのだが、今のところ対応するつもりはないようだ。

EXEファイルのアイコンはプロジェクトのPropertiesページで指定する。
Image: Property page in VS2008

ここでの設定はビルド時にcsc.exeへ/win32iconスイッチで渡される。ここで設定したアイコンリソースは使い回しができない、と思う。使い回したいならリソースエディタでWin32リソースファイル(*.rc)を作らなければいけないのかな。
ということで、同一の絵であってもEXEファイル用のアイコン(16x16/BMP, 32x32/BMP, 48x48/BMP, 256x256/PNG)とフォーム用のアイコン(16x16/BMP, 32x32/BMP)でファイルを分けておく。

○参考文献

[EOF]


Windows上でLAME(MP3エンコ)をビルド [VC++2012]

2013-01-24 20:19:45 | ソフトウェア

Windowsデスクトップ環境においてVisual C++を使ってLAME 3.99.5(MP3エンコーダー)をビルドする。
今回使った開発環境(コンパイラ)は Visual Studio 2012(Visual C++)。

同じネタで書いた昔の記事はこちらを参照。
Windows上でLAMEをビルド  (VC++2008exp + NASM)

○手順

The LAME Project(Source Forge)のサイトからLAMEのソースコード(lame-3.99.5.tar.gz)を入手。
ファイル形式は「.tar.gz」という、Linuxでは標準で使われている圧縮ファイル形式である。
このファイルをアーカイブソフトなどを使って展開する。(以下lameフォルダとする)

「vc_solution」フォルダーにある「vc9_lame.sln」を開く。プロジェクト・ソリューションのアップグレード(変換)は画面に従って適当に進める。
画像: プロジェクトとソリューションの変更をレビュー
いくつか警告が出るが、無視してよし。
完了したら、メイン画面のツールバーからソリューション構成を「Release SSE2」に変更。
画像: vc9_lame - Visual Studio 2012
次にメニューバーから「ビルド」→「ソリューションのビルド」を選択。
うまくいけば、プロジェクト「app mp3x」以外のビルドが成功するはず。
「mp3x」はMP3ファイルのフレーム解析ツール(GUI)で、ビルドするにはGTKライブラリが必要。これはLAMEエンコーダーとはあまり関係ないので、ビルドする必要はない。
lameフォルダーのoutputフォルダー内にlame.exeやその他ライブラリ群が出力されていればビルド成功。

○Windows XPで実行可能な形式にする

Visual Studio 2012の標準設定で作成したプログラムはWindows XPでは動かない。XP上で実行すると「有効な Win32 アプリケーションではありません」というエラーメッセージで強制終了してしまう。
Visual C++においてWindows XPをターゲットOSに含めるには、構成プロパティで「全般」→「プラットフォーム ツールセット」を「Visual Studio 2012 - Windows XP (v110_xp)」に設定する。(あらかじめVisual Studio 2012 Update 1を適用しておく必要がある。)
画像: app lame プロパティページ

この設定変更の実体は、リンカのオプションにある「/SUBSYSTEM:WINDOWS」が「/SUBSYSTEM:WINDOWS",5.01"」になるだけのこと。
ちなみにVisual C++ 2012に付属するリンカの標準設定ではPEヘッダーのMajorSubsystemVersionは6になる。つまり、内部バージョン6.0であるWindows Vista以降でないと実行できなくなる。Windows XP 32ビット版は内部バージョンが5.1であるため、エラーが表示されるわけである。
.net Frameworkアプリケーションの場合は通常通り、フレームワークを3.5以前に設定すればWindows XPで動作可能である。

別途ランタイムライブラリ(Visual Studio 2012 Update 1 Visual C++ 再頒布可能パッケージ)を添付・インストールするのを忘れずに。

○AVX命令による最適化を有効にする

「libmp3lame-static」の構成プロパティから「C/C++」→「コード生成」→「拡張命令セットを有効にする」を 「Advanced Vector Extensions(/arch:AVX)」に設定してビルドすると、わずかながらエンコードが速くなる。

ただし、AVX未対応CPUでAVX命令を使うプログラムを実行するとエラーになる。
画像: エラーによる強制終了 - lame.exe
画像: エラー署名
画像: エラー報告の内容

ちなみに、このエラー報告に「Exception Information - Code: 0xc000001d」とあるが、これはNTSTATUS値というもので「STATUS_ILLEGAL_INSTRUCTION」(不正な命令が実行された)を意味する。
このことはWindows SDKに含まれているヘッダーファイルからわかる。

ntstatus.h(2085-2093):

// MessageId: STATUS_ILLEGAL_INSTRUCTION
//
// MessageText:
//
// {EXCEPTION}
// Illegal Instruction
// An attempt was made to execute an illegal instruction.
//
#define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS)0xC000001DL) // winnt

こちらは日本語説明付のNTSTATUSコード一覧。
NTSTATUSエラーコード一覧

○参考文献


セッションの戻る・進むの記憶ページ数を増やす [Firefox]

2012-08-01 19:57:39 | ソフトウェア

Firefoxで同一セッションのページ閲覧履歴(「戻る」「進む」ボタンで移動できるページの数)を増やす方法。Firefox 14.0時点での情報。

同一セッションのページ閲覧履歴の保存数は標準設定では50ページまで保存される。50ページを超えると一番古いページの履歴から削除されるため、50ページ以上は戻ることができない。この設定を変えるには、Firefoxの詳細設定(about:configやuser.jsなど)で次の項目を追加または編集する。

設定名 データ型 既定値
browser.sessionhistory.max_entries 整数 50

他に似ているが意味が異なる設定がいくつかある。
browser.sessionhistory.max_total_viewersはセッション毎に最近閲覧したページでキャッシュ(メモリ)に保存するページの数を指定する。"-1"を指定した場合は搭載メモリ容量に応じて0~8の範囲で自動設定する。"0"にした場合はキャッシュを無効にする。

設定名 データ型 既定値
browser.sessionhistory.max_total_viewers 整数 -1

閲覧履歴に保存するページ数はplaces.history.expiration.max_pagesで指定する。この項目は標準では存在しないので、about:configからは項目を新規追加する必要がある。なお、標準では保存する履歴ページ数はハードウェアの性能に合わせて決定され、places.history.expiration.transient_current_max_pagesで知ることができる。古いバージョン(3.6以前)では保存する履歴の数を日数で指定していたが、現行のバージョン(4.0以降)では自動的にページ数で決めている。

設定名 データ型 既定値
places.history.expiration.transient_current_max_pages 整数 (不定)
places.history.expiration.max_pages 整数 (なし)

Luiリモートスクリーンを使ったリモートデスクトップ接続

2012-03-24 01:15:35 | ソフトウェア

せっかくなのでLaVieに入ってた付属ソフト「Luiリモートスクリーン」(旧称:PCリモーターソフト)を使ってみる。

Windows標準の機能としてリモートアシスタンスなどがあるが、これらとの違いは以下のとおり。

  • アプリケーションが親機(サーバー)用と子機(クライアント)用で分かれている。
  • 子機用アプリはNECの一部の機種にしかインストールできない。
  • 親機は必ずしもNEC製のパソコンである必要は無いが、OSはWindows 7 Home PremiumまたはProfessionalである必要がある。
  • 一度初期設定をしておけば、親機が起動・ネットワークに接続してある状態であればいつでも子機からリモート接続できる。
  • 親機側のAero(視覚効果など)を無効にすることなくリモート利用できる。
  • 画質と操作性のバランスを調節できる。
  • サウンド出力が可能。
  • マウス操作が親機の遅延にとらわれず(子機のマウスの動きに追従して親機のマウスカーソルが動く)、子機でのマウスの操作性が落ちないため、リモートデスクトップと子機の他の作業を並行して進めやすい。
  • 親機ではリモート接続の待機のためのプログラムが常駐することになる。パフォーマンスの低下は感じられないが、メモリ常駐量が多いのが気になる。

1. Luiリモートスクリーン(子機版)をインストール

ソフトインストーラーを使ってLuiリモートスクリーン(子機版)をインストールする。

2. Luiリモートスクリーン(子機版)を起動する。

親機にソフトをインストールしろというメッセージが出るので親機にLuiリモートスクリーン(親機版)をインストールする。

3. 親機でLuiリモートスクリーン(親機版)を起動する。

4. リモート接続で使うユーザーのアカウント情報を入力する。

5. 子機には既にソフトをインストールしたのでそのまま次の画面に進む。

6. 暗証番号が表示されるのでメモる。

7. 子機で暗証番号を入力する。

8. 親機・子機それぞれで完了ボタンをクリックして閉じる。

9. 子機でリモートスクリーンを起動する。親機はWindowsさえ起動していれば特に何もする必要は無い。

10. リモート操作ができるようになる。

画質はある程度は設定で調節できるが、基本的には情報量に応じて画質が変わる。
上の画面ではUnigine Heaven DX11 Benchmarkを実行しているが、この時点では情報量が多いため動画部分がモザイクがかっている。情報量が少なくなると文字まではっきり見えるようになる。
画面の更新頻度(更新速度)は通常操作や動画を軽く見る程度ではそれほど苦にならないが、さすがにアクションゲームやFPSゲームは遅延も影響してくるのできつい。


フロッピーディスクイメージファイルを作成する

2011-08-08 23:14:59 | ソフトウェア

EMT4WINを使ってフロッピーディスクからイメージファイル(.img)を作成。

○EMT4WINについて

EMT4WINはWindows上で動作するフロッピーディスクイメージ作成・復元ツールです。
ベタイメージだけでなく実行可能な自己展開形式のディスクイメージファイルを作成することもできます。
PC/AT互換機で一般的に使われたフォーマットならだいたい対応しています。
2DDフロッピーのイメージを作成したかったのですが、フリーで使えるイメージ化ツールは2HD(1.44MB)フォーマットのみ対応のものばかりで、このソフトにたどり着くまでにいろいろ苦労しました・・・

頒布元: http://dvalot.free.fr/index.html

左上のメニューの「Disk image/Images de disque[5]」をクリックしたページの中ほどにダウンロードリンクがあります。
Windows GUI版は自己展開(インストーラー)形式とZIP形式を選べます。
他にWindows コンソール版、OS/2版、MS-DOS版、Linux版があります。

○EMT4WINでイメージ化できるディスクの種類

フォーマットの種類 回転数 容量(U) 容量(F) セクタサイズ セクタ数 トラック数
5.25インチ片面倍密度(1D) 300rpm 250KB 160KiB 512B 8 40
5.25インチ片面倍密度(1D) 300rpm 250KB 180KiB 512B 9 40
5.25インチ両面倍密度(2D) 300rpm 500KB 320KiB 512B 8 40
5.25インチ両面倍密度(2D) 300rpm 500KB 360KiB 512B 9 40
5.25インチ両面高密度(2HC) 360rpm 1.6MB 1200KiB 512B 15 80
3.5インチ両面倍密度倍トラック(2DD) 300rpm 1.0MB 720KiB 512B 9 80
3.5インチ両面高密度(2HD) 300rpm 2.0MB 1440KiB 512B 18 80
3.5インチ両面超高密度(2ED) 300rpm 4.0MB 2880KiB 512B 36 80

上記はいずれもFAT12(MS-DOS)フォーマット。各種フォーマットの詳細仕様はこちらを参照。
その他、IBMのUnix系オペレーティングシステム(Xenix, AIX)で用いられるフォーマットに対応しているようです。

○A. ベタ形式(.img)のフロッピーディスクイメージファイルを作成。

ヘッダー(メタデータ)を含まない無圧縮のディスクイメージを作成する方法です。
ほとんどの仮想マシンで使えます。仮想マシンでの利用に適しています。
また、イメージ化した後もDiskExplorerVirtual Floppy Driveなどのソフトを使って中身を直接編集できます。

A-1. EMT4WINを起動しするとウィザード画面が表示されるので次に進む。
「Select the operation」で「Build an image file from a diskette」を選択して次に進む。

A-2. 「Select the operation」では自己展開形式にするかどうかを選択できる。
ここでは「Build a non-self restorable image」を選択して次に進む。

A-3. 「Select image type」で「Simple disk image[DISKIMAGE]」を選択して次に進む。
「完了」をクリックしてウィザードを閉じる。

A-4. フロッピーディスクドライブにイメージ化するフロッピーディスクをセットする。

A-5. フロッピーディスクドライブのドライブ文字が選択してあることを確認して「OK」をクリック。

A-6. 保存場所とファイル名を決める。
拡張子は自動で付されるのでファイル名に入れる必要はない。
「保存」ボタンをクリックするとイメージ化が始まる。

A-7. 「The operation completed with no error.」というメッセージが表示されたらイメージ化作業は完了。

○B. 自己展開形式(.exe)のフロッピーディスクイメージファイルを作成。

実行するとフロッピーディスクに書き出す機能を持つディスクイメージを作成する方法です。
専門的な知識がなくても簡単にファイルからフロッピーディスクに書き出すことができます。
ディスクイメージを人に利用してもらう場合に適しています。
まあフロッピーディスク自体が過去のものとなった今ではそんな機会はないと思いますが。

B-1. A-2の画面で「Build a self restorable image」を選択して次に進む。
「Select ARDI(Auto self Restorable Disk Image) unpacker type」は対応させたいOSやGUIをサポートするかどうかに応じて項目を選ぶ。
通常は「Windows 9x - NT and DOS」(DOS,Windows 9x,Me,NT,2000,XP,Vista,7対応)を選択。
OS/2やWindows 3.xに対応させる必要がある場合は「Char. mode DOS-Win-OS/2-NT」を選択。

B-2. 自己展開時に表示するメッセージやパスワード保護の有無を指定する。
不要ならそのまま「Ok」をクリックして次に進む。
あとはA-4 - A-7と同様。

○C. 自己展開形式をDOS上で実行した時の画面。

日本語環境で実行するとメッセージの罫線が文字化けするが、動作は問題ない。

○D. 自己展開形式をWindows上で実行した時の画面

○E. メイン画面について

上のメニューバーの「Start wizard」をクリックするとウィザード画面を表示。
1のボタンをクリックすると自己展開形式(.exe)のフロッピーディスクイメージファイルを作成する。
2のボタンをクリックするとベタ形式(.img)のフロッピーディスクイメージファイルを作成する。


手のひらツールの拡大スクロールを無効にする [Adobe Reader]

2011-07-11 19:03:30 | ソフトウェア

Adobe ReaderでPDF閲覧時、手のひらツールでマウスカーソルを記事の上に持っていくとカーソルアイコンがこのように変わることがある。

この状態でドラッグすると、記事を一度拡大してからスクロールする。
これはある程度縮小した状態で普通にスクロールしたいというときに非常にうっとうしいので、この動作を無効にしてみることにする。


1. メニューバーから「編集」→「環境設定」を開く。

2. 左側のリストから「一般」を選択して、右側の画面の「アーティクルの上でカーソルを変える」のチェックを外す。


3. OKをクリックして閉じる。


バッチファイルのEmEditor用構文ファイル(.ESY)

2011-04-19 19:47:03 | ソフトウェア

Windows コマンドプロンプトで利用するバッチファイルのEmEditor用構文ファイル(.ESY)を作ってみました。

EmEditorには既に標準でバッチファイルの定義が用意してありますが、あちらはコマンドの対応が不十分なのでこれを作りました。
Windows Vistaで使用できる標準的なコマンドに対応しています。
ファイルは2つあり、batvin.esyのほうは外部コマンドを除いてあるため内部コマンドだけが強調表示されるようになっています。

Version 10で動作確認しています。
http://astra.digi2.jp/


Windows用市販デフラグツール

2011-03-23 17:21:04 | ソフトウェア

日本で販売されているWindows用デフラグツールをいくつか紹介。
私見が入ってるので間違ってる部分があるかも。

・Diskeeper (開発: Executive Software International (-2005)、Diskeeper Corp. (2006-2011)、Condusiv Technologies Corp. (2011-)  販売: 相栄電器)

現在人気No.1のデフラグ専門ソフト。
最大の売りは「Set It and Forget It」 - 一度設定しておけば、無負荷時に自動でデフラグを実行する機能。利用者が最初にすることはライセンス認証くらいで、あとは何もいじらずに閉じて放っておけば無負荷時に自動でデフラグが行われる。現在では「InvisiTasking」としてバックグラウンドでのデフラグ実行機能を強化している。
個人向けのラインナップは「Home」「Professional」「Pro Premire」と3本も存在するが、ほとんどの人はProfessional、Pro Premire特有の機能を有効活用する機会がない。なので普通はHomeを選べばいいのだが、Windows Vista BusinessやWindows 7 Professionalなどの一部エディションでは利用できないので要注意。

もともとはデフラグツールが付属しないWindows NT用のデフラグソフトとして登場。初期のバージョンから相栄電器によって日本語化と販売が行われていたが、当時の家庭用PCで主流だったWindows 95、98には対応していなかったせいか認知度は今一つだった。
2000年に発売したDiskeeper 5.0でようやくWindows 95、98に対応。その後もバージョンアップを繰り返し、ここ2~3年で一気にシェアを伸ばしている。
Diskeeper 6.0 日本語版

・PerfectDisk (開発: Raxco Software 販売: ネットジャパン)

最大の売りは「SMART Placement」 - 更新頻度が高いファイルを空き領域側に再配置することで後のパフォーマンス悪化を抑える機能。
Diskeeperはバックグラウンドで負荷がかからない程度に継続的にデフラグを行うのに対し、Perfect Diskは定期的に1回で徹底したデフラグを行うことを得意とする。
海外にはDiskeeperとの比較記事が多数あるが、デフラグの精度ではこちらのほうが高評価を得ているようだ。
インターフェースは人によって好みが分かれるところだが、私はこちらのほうがお気に入り。
かつてデフラグの自動化ならDiskeeper、徹底したデフラグを行うならPerfect Diskと言われていたが、現在ではそれほど大きな差はないだろう。
個人向けのラインナップはProのみで、Diskeeperのようなエディションの制限はない。

日本ではネットジャパンが2002年にPerfect Disk 5.0日本語版を発売。Diskeeper日本語版の登場から5年ほど経っていたが、雑誌記事や広告などによりまもなくDiskeeperと同等かそれ以上の知名度を得る。
バージョン9 (2008)で無負荷時のデフラグ自動実行機能「StealthPatrol」を備えたが、その間にコンシューマ市場のシェアではDiskeeperにすっかり差をつけられてしまったように感じられる。

・Speed Disk (Norton Utilities)

Speed Diskは製品名ではなく、Symantec社の「Norton Utilities」というユーティリティソフトに付属するツールの一つである。
よって上記のデフラグ専門ソフトと比べると機能は少ない。

1982年、Peter Norton ComputingがNorton Utilitiesの最初のバージョンを発売。一度削除したファイルを復活させる「UnErase」などの14のツールを含むこのソフトは世界中で大ヒットした。日本では2万円前後で輸入販売されたほか、ソフトウェアジャパンによってNEC PC-9800シリーズやDOS/Vにも移植された。
1990年にSymantecが権利を買い取り、20年近く経った現在も開発が続けられている。

初めてSpeed Diskを搭載したのはNorton Utilities 4.0 Advanced Edition。その後少しずつ機能を拡張し続けるも、2000年頃には開発はほぼ停滞状態に。
そして現在(バージョン14.0時点)、新しいWindowsをサポートできないとの理由でデフラグツールはWindows付属のものを利用するように変更、Speed Diskは事実上終息した。



○更新履歴
11/03/23 記事を分割
10/04/26 作成