2010年1月12日火曜日

XP 削除できないFramework2.0を再インストール

※追記:一部「アンインストール」が「再インストール」になっていたので修正。
先週金曜日から判明していた問題なのですが、今日解決したので記念にメモ。

授業のVB.NETの課題を行うために、基本開発環境であるVS2005を使用しているのですが、
ある生徒のマシンでは、既存のプロジェクトを開くどころか、プロジェクトを新規作成しようとしても、
「致命的なエラーが発生しました」のようなエラーが発生し、非常に困った状態でした。
エラー状態のキャプを撮ってなかったのが残念。

VS2005本体をアンインストールし、再インストールしてもエラー発生。
困り果てていたので、VS2005と同時にインストールされたであろうソフトウェアも削除していきました。
その間で唯一エラーでアンインストールできなかったのが「Framework2.0」です。

仕方がないので、以下を参考にFramework2.0を再インストールすることに。

削除するのは、
  1. Windows Installer CleanUp」を使って、インストール情報のレジストリを削除
  2. Framework2.0関係のファイルを削除
  3. Framework2.0関係のレジストリを削除
という過程で。 方法自体は書かれている通りですが、一部ファイルが通常では削除できなかったので、 セーフモードに入ってから削除しました。 あとはレジストリを削除し再起動したあと、リンク先にあるFramework2.0をインストールして完了。 この状態でVS2005をインストールし実行すると、元通り使用出来る状態へ。 やはり、Framework2.0が原因だったようです。 なぜ壊れたかの判別が出来ればいいのですが・・・。

2009年11月9日月曜日

新規作成「Windows Live Call」を非表示にする

ついこのあいだ、「Windows Live Messenger」でログインしようとすると、
「最新版へアップデートしないと使えませんよ」と、
ほぼ強制的にアップデートさせられてしまいました。
まぁそりゃ、前からアップデート断ってましたけど、そりゃ無いですよ。

で。
デスクトップ右クリック→新規作成しようとすると、
「Windows Live Call」というのが追加されていました。

こういう新規作成を作られても、ほとんどのユーザは使用しないはずなのに、
どうして勝手に追加するんだろうなぁ。

とにかく不要なので、表示しないようにしておきます。
Vistaで右クリックメニュー操作Vol.1の時と同じように、
レジストリを直接書き換えます。

「Windows Live Call」の場合は以下のキーになります。
「HKEY_CLASSES_ROOT\.wlcshrtctv2\LiveCall\ShellNew」
何かあった時に戻せるように、レジストリをエクスポートしておき、
「ShellNew_old」などにリネームしておきます。


その後新規作成を表示し、
「Windows Live Call」が表示されていなければ完了です。

2009年10月16日金曜日

【更新】「IEditor Ver1.12」

さらに対象レジストリを削除するように、更新しました。
詳細は「IEditor Ver1.00」の情報を見てもらえればわかると思います。

これでひとまず、登録/修正/設定削除が行えるようになったので、
大方の機能としては完了かと。
IEditor Ver1.12 ダウンロード IEditor_v112.zip 直接起動はこちら。 IEditor.vbs

【更新】「IEditor Ver1.11」

※追記:最新版は「Ver1.12」ですので、以下からダウンロードして下さい。
【更新】「IEditor Ver1.12」
実は、Vista+IE8で開発したので、
ちゃんとした動作確認をしていませんでした。
学校のPC(XP+IE6)で見てみると、別の場所に書き込んでいました。
ちゃんと確かめればいいのに・・・。

それに対応したVer1.11へアップデートです。
IEditor Ver1.11 ダウンロード IEditor_v111.zip 直接起動はこちら。 IEditor.vbs

【更新】「IEditor Ver1.10」

※追記:最新版は「Ver1.12」ですので、以下からダウンロードして下さい。
【更新】「IEditor Ver1.12」
よく考えてみると、テキトーなバージョン管理です。
機能を一新したからといって、
バージョンを0.1も上げてしまっていいのでしょうか。

というわけで、先ほど投稿した内容を含めてのバージョンアップ版です。
IEditor Ver1.10 ダウンロード IEditor_v110.zip 直接起動はこちら。 IEditor.vbs
今回もまた、Readme.txtに詳しいことが書いてありますが、軽く。 Ver1.00時には、ただ登録するだけのツールでしたが、 IEオブジェクトによるファイル指定によって、 別エディタを登録・変更することが可能となりました。 IE8は相変わらず対象外ですが、 IE8で行われた場合の「C:\fakepath」回避も搭載しました。 以下のサイトを再び参考にさせて頂きました。 この場でなんですが、ありがとうございます。 IE8で、input type=fileの.valueがc:\fakepath\filenameを返す。(その2): Windows Script Programming IEオブジェクトを利用しての、IE8対応ファイルパス取得コードは、 また時間がある時にまとめます。

2009年10月14日水曜日

【自作】IEソースエディタ登録ツール 「IEditor」

※追記:最新版は「Ver1.12」ですので、以下からダウンロードして下さい。
【更新】「IEditor Ver1.12」
InternetExplorerの標準ソースエディタはメモ帳ですが、
そもそもメモ帳は使いにくい上に、
Shift-JIS以外の文字コードだと化けて使い物になりません。
OSを新しく入れた際などに、IEのソースエディタを変更することが、
もうすでに自分の中でのデフォルト作業と化しています。

ということで、その手間を省くために、
IEのソースエディタに別のエディタを登録するためのツールを作成しました。
その名も「IEditor」。
以下からダウンロード出来ます。

また、本体は.vbsなので、直接「開く」ことで実行することも出来ます。
直接の場合は以下から。


zipファイルに含まれている「Readme.txt」に細かい事が書かれているので、
以下には軽く説明を。

すでに書いた通り、このツールはIEのソースエディタを「登録」するものです。
現時点(Ver1.00)では、決めうちでTerapadを対象として登録します。
さらに、Terapadでもインストーラによってインストールされたものに限ります。

IE8ではソースエディタの設定が変更になったので、IE6,7が対象となります。
すでにソースエディタが登録されている場合には、処理が終了します(何も無し)。

VBScriptでのレジストリ操作の勉強がてらに作ったので、
所々にコメントをちりばめてあります。
中身を編集して使用する場合には参考にどうぞ。
以下が「IEditor.vbs」のソースです。
' **********************************************************
' 【IEditor / IEソースエディタ登録ツール】
'
' 詳しくはReadme.txtを参照。
' エディタパスは、11行目を変更して下さい。
' **********************************************************

' WshShellオブジェクト用意
Set WshShell = WScript.CreateObject("WScript.Shell")
' エディタパス用意
EditorPath = "C:\Program Files\TeraPad\TeraPad.exe"
' レジストリパス/データ型用意
RegCheckPath = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\View Source Editor\Editor Name\"
RegType = "REG_SZ"

' 対象レジストリ存在チェック
On Error Resume Next
WshShell.regread( RegCheckPath )
If Err.Number = 0 Then
  ' 存在するので終了
  Msgbox("すでに登録済なので、終了します。")
  Wscript.Quit
Else
  ' ソースエディタ登録確認
  cMsg = MsgBox( _
      "パス【" & EditorPath & "】として、" & VbCrLf & "IEのソースエディタを登録しますか?" _
      , vbYesNo _
      , "IEditor - IEソースエディタ設定" _
    )
  If vbNo = cMsg then
    ' 登録しないので終了
    Wscript.Quit
  Else
    ' 対象レジストリ書き込み
    WshShell.RegWrite RegCheckPath, EditorPath, RegType
    Msgbox("ソースエディタを登録しました。")
  End If
End If

2009年9月17日木曜日

Vista デスクトップにIEアイコン表示

だいぶ前に業務で触ったものの、書いてなかったのでメモ。

Vistaインストール完了時には、IEのアイコンが表示されていない(はず)です。
そりゃあ利用者側からしたら、IEは使用することが多いブラウザなので、
デスクトップにアイコンが表示されていなかった場合には、
自分でデスクトップにショートカットを作成するか、
はたまた諦めて「スタート」→「インターネット」を選択する必要があります。

そういった面倒な事が嫌なので、デスクトップにIEアイコンを表示します。

と言っても、前に探した時には無かった気がした、Microsoftのサポートに、
アイコンを表示するための「自動実行ツール」なるモノが存在します。
Windows Vista のデスクトップ上に Internet Explorer のアイコンを表示させる方法
というか、「Microsoft Fix it」って何ですか?
サポート技術情報にある[Fix it]アイコンとは - @IT
どうやら、小規模なバグやレジストリでのエラーを簡単に修正できるように、
ツールを配っているサービスのようです。
今度、どんなのがあるのか見てみることにします。

で。
どうせレジストリを修正した結果がIEアイコンの表示なので、
自分でレジストリを書き直せば表示されるはず。
それに関しては、以下のサイトで解説されています。
デスクトップに Internet Explorer のアイコンを表示させたい

つまりは、
「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel」
へ移動し、「{871C5380-42A0-1069-A2EA-08002B30309D}」
というDWORD値を作成すればOKです。

2009年8月31日月曜日

「プログラムの追加と削除」が参照するレジストリキー

※Vistaでも同じレジストリキーで管理されていました。
学校での制作物のために調べたのでメモ。
Vistaではまだ確認していないのでわかりませんが、
XPでは以下のレジストリキーを参照しているようです。
「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall」

この中には、それぞれのソフトウェア名及びクラスIDが登録されています。
Terapadなどはそのままのキー名で表示されているのでわかりやすいです。
クラス名の場合は、そのキー内「DisplayName」を参照すると、
そこに「プログラムの追加と削除」時に表示されるソフトウェア名が書かれているので判別できます。

「プログラムの追加と削除」でソフトウェアを削除した際に、
ソフトウェア自体は削除できたのにリストから除外されない場合は、
このキーを削除してあげれば良いようです。

2009年8月5日水曜日

Vista 「コンピュータ」のドライブを非表示

最近はUSBの利便性から対応機器も増えてきて、XPで言う「マイコンピュータ」に多くのドライブが表示されるようになりました。

ですがしかし、これを見てもらえればわかるのですが、「あっても使わないドライブ」も環境によっては表示されるのです。
僕の環境の場合は、マシンを買った時からカードリーダー(スロット)が標準で付いていましたが、正直使わないドライブもあります。

今回は、そういった「不要なドライブ」を表示しないようにします。
例によってレジストリ本の内容を参考にしています。

まずは対象のキーです。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer」内に、「NoDrives」という「バイナリ値」を新規作成します。
ここで非表示にしたいドライブに対応した値を入力します。

この図が各ドライブに対応した16進数です。
ここに書いてある通り、複数のドライブを非表示にしたい場合には、その値を加算する必要があります。


値を入力し保存した後、再ログオンすると、「コンピュータ」から指定したドライブが非表示になっているはずです。
これで完了です。
今までは1ウィンドウ内で収まっていなかったので、非常にスッキリしました。

なお、この場合はあくまでも「コンピュータ」に表示しないようにしただけですので、アドレスバーや「ファイルを指定して実行」からはドライブ内を参照することが可能です。

2009年8月4日火曜日

Vista 右クリックメニュー NVIDIAコンパネを削除

なんだかんだで、夏休みが来ました。
といっても、暴飲暴食 飲み会1日目を書いた日にすでに終業式。
授業日が延びたのは流行警戒宣言のおかげです。

とまぁ夏休みの話は放って置いて、Vistaのお話。
この間購入したレジストリ本から、自分の環境で触れておいたらいいなぁと思うものがあり、実際に変更をしたのでメモ。


デスクトップ上で右クリックした際の、「NVIDIA コントロール パネル」を非表示にする方法です。
なお、これはNVIDIA系のグラフィックボードを使用している環境にしか表示されません。
ATI系やIntel系オンボードの場合も似たような方法で出来るので後述。

毎回右クリックした際に表示されるのは、わずかながらも処理をしますし、そもそも多用しない上Windowsのコントロールパネルからいつも開いているので不要です。

まずは対象のレジストリから。
「HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers」がデスクトップ上で右クリックした際のメニュー内容が格納されている場所です。
その中に「NvCplDesktopContent」があるはずです、これが
NVIDIAのキーになるので削除します。

すると、デスクトップ右クリックでの「NVIDIA コントロール パネル」が表示されていないはずなので、これでひとまず終了です。

この作業を、ATI系ならば「ACE」、Intel系オンボードなら「igfxcui」で行うと同様に削除されます。

さて、NVIDIA系の場合はもうひと手間。
先ほど消したキーの(既定)に「{A70C977A-BF00-412C-90B7-034C51DA2439}」が設定されていましたが、これはインストールしたソフトウェアなどに一意的に付けられるクラスIDです。
このクラスIDでの呼び出しは、先ほど消したキー以外では使用されていないので、置いておいても良いのですが不要です。
HKEY_CLASSES_ROOT\CLSID」に「{A70C977A-BF00-412C-90B7-034C51DA2439}」というキーがあるので削除しておきましょう。

これで今回の作業は終了です。

2009年7月23日木曜日

Vista レジストリ本買いました

この間調べている時に見付けたので、いつか本屋で出会った時には覗いてみようと思っていました。
基本情報の問題集を買おうと本屋に行って探してみると、すぐに見付けたので即決購入。


もうすぐWindows7が発売されるというのに、今更Vistaのレジストリ本です。
それでも2,3年は売られ使われてきたOSです、こういう本を買って読んでおくのも良いかと思います。
それに、少し覗いて見て感じましたが、ここまで変更/触れてみた部分のレジストリ構成は、XPとあまり変わっていないようです。
応用できそうなところがあれば、少しずつまとめていきたいですね。

実際の中身ですが、ただ単にキーへのパスが書かれているモノではなく、キーを階層化して一目で分かるようにまとめられていますし、処理後の表示画面が処理1つずつに書かれているので、非常に分かりやすいです。
「ここをこう変更する」だけでなく、レジストリの基本的な考え方とおおよその階層の分類解説、最低限必要な情報も書かれているので、まさにうってつけの1冊です。

Vistaが基本環境でレジストリに触れたいと考えている人には、とても入りやすい本だと思います。

2009年7月19日日曜日

IE右クリックメニュー JavaScript メモ

たまたま偶然触ったので、忘れないようにメモ。
そもそもそういう使い方のブログですので。

IE右クリックメニューのレジストリ
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt

親と子
右クリックメニューから表示したウィンドウから、親のウィンドウを参照可能。
「external.menuArguments」が、実質親の「window」となる。
「external.menuArguments.alert("hoge")」は、親側アラート。

参考にしたサイト(重要順)
R-Click! Union 拡張メニュースクリプトの作り方
IEの右クリックメニューをカスタマイズする - phpspot
【IEの特殊仕様+JavaScript】リンクや画像を右クリックしてURLをコピーする機能をメニューに追加 - SQLの窓と銀プログラマ

最近レジストリを眺めてるとワクワクするのですが、なぜでしょうか。

2009年7月12日日曜日

Vistaで右クリックメニュー操作Vol.3

今回は「新規作成」内を綺麗にします。
色々とインストールすると、わざわざ「新規作成」から作らなくてもいいじゃない、というものまで作られてしまい、大量に並んでしまいます。
それを解消しようというわけです。
ついでに、Vista導入初期には存在していたであろう「テキストドキュメント」も表示します。

参考にさせていただいたサイトはこちら。
右クリックメニュー[新規作成]で「新規 Adobe Photoshop 画像」を表示させない方法 - gatchanのメモ帳
おぉ、同じメモ帳仲間が。


まずは消す作業。
おなじみになっている「HKEY_CLASSES_ROOT」に、各対応している拡張子名のキーがあります。
上の画像のそれぞれの拡張子は以下の通りになります。
  • .accdb
  • .bmp
  • .contact
  • .docx
  • .jnt
  • .mkp(今回は残す)
  • .pptx
  • .pub
  • .rar
  • .trc
  • .xlsx
拡張子のキーの内部に「ShellNew」キーがあり、またその中に「NullFile」ないし「FileName」が存在します。 新規作成時、ファイル内に何も無い「Null」の場合には前者、それ以外には後者であるはずです。 どちらにせよ、「ShellNew」が無ければメニューには表示されないので、削除するかリネームを行えばOKです。 今回は「ShellNew_d」という名前に変更しました。 これで大方は片付きましたが、「ブリーフケース」が残ってしまいます。 パッと見で考えるよりもGoogleに頼んだ方が早いので検索、以下のサイトがヒットしました。 PCtips - ブリーフケースを<新規作成>から削除する とどのつまり、「Briefcase」の中を同じようにリネームすればいいのです。 これで不要な「新規作成」は消えました。 あとは「テキストドキュメント」を表示するだけです。 創造と破壊は表裏一体で、つまりは削除の逆を行えば出来るはず、と思って「.txt」へ「ShellNew」と「NullFile」を作成したのですが表示されず。 名前も間違ってないし手順もおかしくないので、再びGoogleで検索。 同じ症状で困っている人がいました。 右クリック>新規作成からテキストドキュメントが消えてしまいました。 - 質問・相談ならMSN相談箱 エクスプローラの右クリックメニュー、新規作成から「テキストドキュメント」が消えてしまった - 質問・相談ならMSN相談箱 上リンクでは解決されていませんでしたが、下リンクは問題点がはっきりしました。 「.txt」の「(既定)」キーの値が「txtfile」で無く「txt_auto_file」となっていたのが原因なので、正しく書き直してあげると無事表示されました。 ・・・一体いつ書き換えられたのかわからないですが、結果オーライです。 このような状態になっていれば完成です。 かなりスマートになりました、「.bmp」なんて空ファイルで作っても意味が分からないですし。

2009年7月5日日曜日

Vistaで右クリックメニュー操作Vol.2

※追記:「挿して」→「指して」に修正しました。
昨日はファイル選択時に表示するリンクを挿入したので、今日はドライブ選択時表示のリンクを挿入します。


ドライブ選択時は、そのドライブ全体に何か動作を行う場合に有効です。
例えば、ドライブを対象にウイルスチェックを行ったり、デフラグを行ったりする場合です。
もちろん、ドライブを引数として渡さなければ、ソフトウェアを起動する事もファイルを開く事も可能です。
今回は簡易的に、レジストリエディタを開くリンクを挿入したいと思います。

昨日は「HKEY_CLASSES_ROOT\*\shell」を変更しましたが、今回は「HKEY_CLASSES_ROOT\Drive\shell」を変更します。
「Shell」を右クリック→「新規」→「キー」を選択。
ここで入力するキーの名前は、実際に表示されるリンク名になるので、わかりやすく「◆レジストリエディタを表示」とします。
さらに「◆レジストリエディタを表示」を選択し、右クリック→「新規」→「キー」。
前回と同じように「command」を作成します。
「command」内「(既定)」には、レジストリエディタの実行パスを入れればいいのですが、「"regedit.exe"」でも可能です。
これは環境変数「windir」が「C:\Windows」を指しているからこそ出来るものです。

さて、ここまで設定すれば完成です。

上のように表示されていて、選択しレジストリエディタが起動出来ればきちんと出来ています。
今度は何しようかなぁ。

2009年7月4日土曜日

Vistaで右クリックメニュー操作Vol.1

※追記:「規定」→「既定」に修正しました。
ふと、デスクトップでクリックをしてみると、消したはずのソフトウェアで開くメニューが出たままだったので、消してみる為に調べてみました。

サクッとおいしいVistaチップス 41枚め:Vistaの右クリックメニューを自分仕様に改造する - ITmedia +D PC USER

実際にはこのサイトを参考にして、「常に右クリックメニューに表示されるソフトウェアリンク」を作成します。
今回はテキストファイルを「TeraPad」で開くリンクを作成。

上の画像の選択部分は、「ファイル選択時」に常に出るメニューになります。
そこにリンクを追加するためには、レジストリを直接書き換える必要があります。

Windows標準のレジストリエディタを使ってもいいのですが、ここは専用ソフトウェアの「RegPro」を使用します。
作者のサイトはこちらです。
MadCap - トップ

ファイルをダウンロードし解凍、実行します。
レジストリを直接書き換えた事のない人には見覚えのない画面だとは思いますが、まずは左のツリーから「HKEY_CLASSES_ROOT\*\shell」へと移動します。
まだ全部は調べきっていないのではっきりとはしませんが、右クリックに入れられるメニューは「HKEY_CLASSES_ROOT」の中にそれぞれ格納されているようです。
その中でも「*」の中は常に右クリックメニューに表示されるものが格納されるようですね。

さて、「Shell」内には、もうすでに登録されているリンクが入っているはずなので、それらに関する「キー」があるはずです(ここではフォルダ表示)。
その状態で、「Shell」を右クリック→「新規」→「キー」を選択。
この時に作る名前は特に動作と関係なく、ただ単に見た目で判別できればいいので「TeraPad」とします。
すると、右側に「(既定)」という名前のキーが作成されるのでダブルクリック。
この時【データ】に入れるのは、右クリックメニューに表示したい名前にします。
見た目で分かりやすくしたいので、ここでは「TeraPadで開く」とします。

つぎに、ツリーに戻り「Terapad」→「新規」→「キー」を選択。
今度の名前はお決まりのようで、「command」とします。
その中の「(既定)」には、「"C:\Program Files\TeraPad\TeraPad.exe" "%1"」と入れて完成です。
「"%1"」は、TeraPadに渡すファイルのパスになります。

完成系はこのような感じになります。

右クリックメニューに「TeraPadで開く」リンクが表示され、実際にテキストファイルなどを開く事が出来ます。

色々弄りがいがありそうなので、引き続き調査してみたいと思います。