投稿

4月, 2006の投稿を表示しています

.regでレジストリ削除

.regファイルを使ってレジストリからキー、値を追加、削除する方法

それが何の役に立つのかという疑問もあるだろうけど、レジストリを参照するアプリケーションの開発中には度々レジストリを変更して動作確認をしたくなる事があります。

例えば、起動に特定のレジストリの有無を確認して初期状態を変更するとか、デフォルトパラメータをレジストリから読み込むといったアプリケーションでは想定しているキーが無かったり、無効な値が設定されていた時の動きを確認する必要が生じます。

まあ、1,2回試すだけならレジストリエディタを使って書き換えればいいわけですが何度も繰り返すのは面倒です。そういったときに.regを使ったレジストリの書き換えを行うと作業が簡単になります。

キー、値を追加する
拡張子.regで以下のよう内容のファイルを作成して、実行(エクスプローラーでダブルクリックするだけ)

例) AddReg.reg
------
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\CompanyName\Application]
"PrintOption"="Yes"
"ExportOption"="Yes"

------

キー、値をまとめて削除する
削除したいキーの前に"-"を追加して、上記同様に.regファイルを作成して実行します。
指定したキー以下、すべてのキーと値が削除されます。

例) RemoveKey.reg
------
Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\CompanyName\Application]
------

値を指定して削除する
.regに削除したい値として"-"を指定します。
以下の例では"ExportOption"をレジストリから削除します。(キーは影響を受けません)

例) RemoveValue.reg
------
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\CompanyName\Appl…

C#でコンソールアプリケーションを起動し、出力を取得する

Windowsアプリケーションから既存のコンソールアプリケーションを起動し、結果を受け取りたい場合があります。(コンソールアプリケーションをGUI対応に書き換えればいい話ですが、ソースコードが使用できないケースやメンテナンス上の問題で書き換えたくないなど諸般の事情でそのまま使いたいことがしばしばあります)
こんなときVisual Studio 2005の「スニペットの挿入」を使うと非常に簡単に実装することが出来ます。

まずはじめにMicrosoft社のサイトからコンソールアプリケーションの起動に必要なスニペット(Application Code Snippets)を入手してインストールする。
これには複数のスニペットが含まれていますが、今回の作業では「Capture Output from a Console Application」さえインストールしてあればOK.
スニペットのインストール方法について詳しくはこちら  を参照。

Visual Studio 2005で「スニペットの挿入」で「Capture Output from a Console Application」を挿入すると以下のようなコードが展開されます。
ここでConsoleApplication.exeの部分を目的のコンソールアプリケーションに書き換える。



System.Diagnostics.Process consoleApp = new System.Diagnostics.Process();
consoleApp.StartInfo.UseShellExecute = false;
consoleApp.StartInfo.RedirectStandardOutput = true;
consoleApp.StartInfo.FileName = "ConsoleApplication.exe";
consoleApp.Start();
consoleApp.WaitForExit();

string output = consoleApp.StandardOutput.ReadToEnd();
ところが、これだけだと実はコマンドプロンプトのウィンドウが一瞬表示されてしまい少々見苦しい事にななります。
そこで対策として以下のように一行追加します。   System.Diagnostics…

コードスニペットを追加する

イメージ
Visual Studio 2005の新機能、コードスニペットですが、どういうわけかVB.NETには標準で用意されているスニペットがC#には含まれておらず、必要最小限の構成になっています。
少々使いにくいのでマイクロソフト社のサイトからC#版を入手してインストールします。


スニペットのダウンロード

スニペットは内容別に分かれています。使用したいスニペットを選択してダウンロードします。
ここでは「Connectivity Code Snippets」を例に作業を進めていきます。



使用許諾の確認

項目をクリックすると使用許諾の画面が表示されます。画面下部の「I accept」をクリックします。





ダウンロード方法の選択

ダウンロード方法を問い合わせるダイアログ(下図)が表示されます。「開く」をクリックします。

ダウンロードが終わるとインストーラーが起動します。End User License Agreementの確認ダイアログが表示されるので「Accept」をクリックします。

インストールするスニペットの選択

デフォルトですべてのスニペットが選択されています。すべてインストールする場合はそのまま、必要なスニペットだけインストールする場合はインストールしたい項目だけ選択して「次へ」をクリック。

インストール先の選択

スニペットを選択(すべて選ぶ場合はCtrl+Aですべて選択状態に)してインストール先、ここではVisual C#をチェックして「次へ」をクリック。

インストールの確認

スニペットの一覧が表示されます。問題なければ「完了」をクリック。

インストールが無事に終了したら「閉じる」をクリックして終了。