プログラム関連 >  メモ >  Vista関連 >  ThinkPadにVistaをインストール
最終更新日:2007/12/24

ThinkPadにVistaをインストール

基本的な注意事項

ThinkPad T60のOSをVistaに乗せ変えた時の記録です。 私的なメモなので、あまり信用しないでください。 ちなみに、ThinkPad固有の問題や、Vista固有の問題、Windows一般の問題などが入り混じっているとは思いますが、 めんどくさいので取りあえずその辺りは考慮せずに記載してます。 後、開発に使うので入れるソフトとかもそういう物がメインになってます。

■ Vistaインストールから大体の設定が終わるまで

※実際のインストール作業は2007年2月頃に行っています。

■ IE7 on Vista

■ 禁断の壷 on Vista

Vista でも普通に禁断の壷が動くと言う話もときたま聞くが、 自分の環境ではZIP版使おうがEXE版使おうがどうにも駄目だった(起動時に「Buffer overrun detected!」のエラーが出る)。 で、最終的には緊急回避的な方法を使い、かろうじて動く状態まで持っていけた(但し最新バージョンではない)。方法は以下の手順。

  1. 最新バージョンではなく、Windows95用に残されている(と言う) 「2ちゃんねるターボ 1.1.4.0用 スターターキット EXE版」 をダウンロードする。
  2. 実際のインストール先環境を汚さないためにも(インストール時のプロセスは知らないのでどれぐらい影響があるのかは知らないが)、 可能であれば実験用のマシン(バーチャルマシンとか)にインストールする。
  3. インストール先フォルダのルートにある「2chtubo.exe」は起動時にエラーが出て使えない。 今回必要なのは「tubo」フォルダにある「2chtubo.exe」。 これだったらVistaでも起動できる(少なくとも自分の環境ではできた)。
  4. とりあえず、上記EXEで起動できるかをテスト。 動くようであれば他のファイルは(たぶん)不要なので、好きなフォルダを作ってそこにEXEだけコピーして使っても良い。 もちろん、そのままの状態でも問題はない(と思われる)。
  5. この時点でVista上で動くことは動くが、正直実用的な状態ではない。理由は二つ。 2chビューア(以降、●)が使用できないのと(正確にはログインできない)、IEのプロキシ設定が自動で行えない。 ●を使用しない、IEのプロキシ設定も自動で行う必要がないのであれば、この状態でも普通に使える(と思われる)。 但し、自分は書き込みは行わないので、その辺りの挙動は不明。
  6. まず、●を使用できるようにする。この作業はバイナリを書き換えるので、その辺りにある程度詳しくないと正直厳しい。 ログインできない根本的な原因は、URLが「https://tiger2.he.net/~tora3n2c/futen.cgi」から「https://2chv.tora3.net/futen.cgi」に変わっているため。 この変更に対応するため、EXEをバイナリエディタで開き、 「tiger2.he.net」を「2chv.tora3.net」に、「~tora3n2c」を「futen.cgi」にそれぞれ変更する。 余ってしまった箇所や元の「futen.cgi」は0x00でクリアする。
  7. バイナリ変更後のEXEで●にログインできるか動作確認。
  8. 次に、IEのプロキシ設定の対応を行う。 IEのプロキシ設定でエラーが出るのは、レジストリの「DefaultConnectionSettings」の読み込みに失敗しているためと思われる(あくまで予想)。 このキーのバイナリ値はIE6と比較してかなりサイズがでかくなってるので、その辺りの関係で互換性がないためと思われる。 ●の時とは異なり、これに関しては壷での対応ははっきり言って無理だと思うので、壷での自動設定は諦め、別の手段を使う。
  9. 禁断の壷 2ちゃんねるターボ用 proxy 自動設定ファイル」を使用する。 これを使用すれば壷の使用範囲を2chに限定させることができるので、壷は常時起動で運用。 また、上記サイトにも説明があるが、proxy自動設定ファイルを使った場合に2ch以外のサイトが「イントラネットゾーン」として扱われるので、 インターネットオプションのセキュリティタブのローカルイントラネットの「サイト」ボタンをクリックし、 ローカルイントラネットダイアログで「イントラネットのネットワークを自動的に検出する」を無効にし、 「プロキシサーバーを使用しないサイトをすべて含める」を無効にし、残りの2つを有効にする。
  10. 2chを表示した時と2ch以外を表示した時、どちらの場合も「インターネットゾーン」が適用されているか動作確認。
  11. ここまでの作業を行えば、とりあえず実用的なレベルで壷が機能する(はず)。 また、壷を起動し続けていると「-ERR 指定時間が過ぎました。」みたいなエラーがでて過去ログが見れなくなる場合があるが、 その場合は●にログインし直す。

■ Visual Studio Version Selector (VSLauncher) on Vista

※ 2005以前のVSとVistaの組み合わせに関する問題の内容。VS2008では関係なし。

複数バージョンのVisual Studioをインストールしている場合(2003と2005とか)、 ソリューションやプロジェクトファイルを開いた時にVisual Studio Version Selector(VSLauncher.exe)を介して対象バージョンのVSが起動される (実際には1バージョンのみしかインストールされてなくても常にVSLauncherが介在しているっぽい)。 VSLauncherを介してVSが起動される場合、ある特定の条件だとVS関連のファイルを開いてもVSが起動しない。 その条件とはVisual StudioのEXE(devenv.exe)のプロパティの設定で、「管理者としてこのプログラムを実行する」にチェックが付けられている場合。 VistaでVSを実行する場合、管理者に昇格して実行することが推奨されている。 実行時に昇格の動作を行うための方法はいくつかあるが、その内の一つが実行ファイルのプロパティで設定しておく方法。 実行ファイルのショートカットを作成し、ショートカットのプロパティで設定しておくことも可能だが、 この方法はVS関連のファイルをファイルの関連付けを使用して開く場合には関係がない。

devenv.exeが管理者として実行するように設定されていたとしても、VS関連のファイルが直接devenv.exeに関連付けられている場合は問題ない(らしい。未検証)。 だが、VSLauncherを介してdevenvが起動するようになっていると、devenvが起動しない。 あくまで予想だが、VSLauncherがdevenvを起動する際、内部的にShellExecuteではなくCreateProcessを使っているものと考えられる (CreateProcessでは昇格の動作が発生しない。 詳しい内容はこっちを参照)。 よって、VSLauncher自体が管理者権限で実行されていればdevenv実行時に昇格の動作が不要となるので、devenvも管理者権限で問題なく起動できる。 そんなわけで、VSLauncherのプロパティの設定で「管理者としてこのプログラムを実行する」にチェックを付ければ問題は解決できるように思えるが、 これがうまくいかない。原因は不明だが、VSLauncherのプロパティの設定ではVSLauncher実行時に昇格の動作を発生させることができない。 VSLauncherからのdevenv起動時に昇格の動作が必要だとしても昇格の動作が発生しないのでdevenvが起動できず、 権限絡みの起動不可エラーもVSLauncherが何も処理していない(と考えられる)ので、結果的に(表面的には)特にエラーも発生せず、 何も起こらない(VSが起動しない)。

で、解決する方法としては以下の4つ(※2008に関しては後述)。

  1. VSを管理者として実行しない。
    (推奨される実行方法を真っ向から否定)
  2. ファイル関連付けを使用してVSを実行しない。 VSを単体で起動して、VSから目的のファイルを開く。 または、VSのショートカットに対象ファイルをドロップすることで直接devenvから開くようにする。
    (通常手段で考えられる対処方法としてはこの方法になると思うが、あまり実用的とはいえない)
  3. ファイル関連付けを変更(レジストリを修正)して、VS関連のファイルがVSLauncherではなくdevenvで開かれるようにする。 例えば、slnファイルの関連付けをdevenvに変更するには「HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\Open\Command」の値を変更する。
    (特定バージョンのVSしか対象にできない(まあそもそも、Vista上では2005しかサポートされてないんだけど)。 上記レジストリ項目の修正で対象となるのはソリューションファイルだけ)。
  4. その他の方法を考える。

その他の方法としては、何とかしてVSLauncherを管理者権限で実行するようにする。 これがまためんどくさい、と言うか簡単な方法が見つからなかった。 結局、自分が考え付いた方法は以下の泥臭い方法。

  1. ポイントはVSLauncher自体を管理者権限で実行することなので、それができるのであれば方法は何でも良い。 ここではわざわざ別プログラムを作成する方法をとる。
  2. プログラムはもうホントに何でも良い。ここではVBのコンソールアプリを作成して対応する。
  3. VBのコンソールプロジェクトを作成し、以下のコードでビルドする。
        Sub Main()
            System.Diagnostics.Process.Start(System.Windows.Forms.Application.StartupPath & "\VSLauncher2.exe", System.Environment.GetCommandLineArgs(1))
        End Sub
  4. VSLauncher.exeはたぶん「C:\Program Files\Common Files\microsoft shared\MSEnv\VSLauncher.exe」辺りにあるので、 ファイル名を「VSLauncher2.exe」に変更する(必要に応じてバックアップもとっておく)。
  5. 作成しておいた実行プログラムを上記フォルダにコピーし、ファイル名を「VSLauncher.exe」とする。つまり、オリジナルを置き換える。
  6. 置き換えた「VSLauncher.exe」のプロパティの設定で、「管理者としてこのプログラムを実行する」にチェックをつける。
  7. 作業完了。VSLauncher.exe自体を置き換えるのでかなり強引な感じはするが、レジストリの修正も不要だし、 ソリューションファイル、プロジェクトファイルなどVS関連のファイル全てに対して対応できる。

参考リンク

※ VS2008 のVSLauncherだと、 プロパティの設定で昇格させるようにすればソリューションファイルから開いた場合もVSLauncherの昇格動作が行われた(=管理者権限でVSが起動)。 VS2008のアイコンのプロパティ(のみ)で昇格動作を設定させた場合は、相変わらず駄目(起動しない)。 Beta2のリリースノートでは、わずかながら管理者で起動しなければいけない場面があるっぽかったが、 RTMのリリースノートではそれらの記載がなくなっているのでVS2008 RTMでは昇格する必要は特になさそう。 と言うか、「ユーザー権利と Visual Studio」にこの辺りの内容の記載がある。 昇格の必要がある操作を行った場合は、その旨メッセージボックスが表示されるらしい。 また、ローカル IIS Webサイトにアクセスする際は管理者として実行する必要があるらしい。 VS2008では使用する.NET Framework ランタイムの選択が可能なので、VS2008をインストールすればある意味VS2005は不要かもしれない(=VSLauncherの昇格の設定も不要)。

参考リンク

■ その他各ソフトの導入状況(記載が必要そうなもののみ)

▲画面上へ