DoboWiki
Top
> .NETプログラミング研究/58 をテンプレートにして作成
.NETプログラミング研究/58 をテンプレートにして作成
開始行:
#title(.NETプログラミング研究 第58号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第58号 [#h67b13a6]
**.NET Tips [#g7cc3001]
**ユーザーインターフェイスエディタの使い方 [#k1af3900]
VS.NETのデプロイメントプロジェクトでは、「ユーザーインタ...
-[[配置でのユーザー インターフェイスの管理>http://www.mic...
ユーザーインターフェイスエディタを表示するには、ソリュー...
ダイアログを追加するには、ダイアログを追加するセクション...
ダイアログを追加した後は、ダイアログを適当な位置に移動し...
追加できるダイアログの種類などについては、ヘルプの「イン...
-[[インストール用ユーザー インターフェイス ダイアログ ボ...
-[[配置のダイアログ ボックス>http://www.microsoft.com/jap...
この内幾つかを簡単に説明します。
|インストールフォルダ|インストール先のフォルダをユーザー...
|インストールアドレス|インストールするWebの場所(仮想ディ...
|スプラッシュ|画像を表示します。画像の大きさは横480ピクセ...
|注意事項|ユーザーに注意事項を提示します。表示するメッセ...
|使用許諾契約書|ユーザーに使用許諾契約書を提示し、許可を...
|ユーザー情報|名前、所属、シリアル番号の情報の入力をユー...
|ユーザーの登録|ユーザーが登録情報を送信できるようにする...
|オプションボタン|ユーザーに排他的な選択を要求するオプシ...
|チェックボックス|ユーザーに選択を要求するチェックボック...
|テキストボックス|ユーザーにテキスト入力を要求するテキス...
ユーザーインターフェイスエディタの基本的な使い方はヘルプ...
***BannerBitmapプロパティ [#k6af352e]
BannerBitmapプロパティはダイアログの上部に表示する画像を...
また、BannerBitmapプロパティで使用する画像はデプロイメン...
-[[BannerBitmap プロパティ>http://www.microsoft.com/japan...
***ダイアログの見た目をMSIファイルを実行することなく確か...
ダイアログの見た目がどのようになっているか、MSIファイルを...
***ユーザーにシリアル番号の入力を促し、それが正しいか検証...
「ユーザー情報」ダイアログを使うことにより、シリアル番号...
まず「ユーザー情報」ダイアログをユーザーインターフェイス...
次に「ユーザー情報」ダイアログのプロパティを変更します。...
どのようなシリアル番号が入力されれば正しいと判断するかを...
-[[SerialNumberTemplate プロパティ>http://www.microsoft.c...
-[[MaskedEdit Control>http://msdn.microsoft.com/library/e...
しかし私が実際に確かめたところでは、これらのドキュメント...
|#|検査アルゴリズムに含まれない数字の入力を必要とします。...
|%|検査アルゴリズムに含まれる数字の入力を必要とします。す...
|?|検査アルゴリズムに含まれない英数字の入力を必要とします...
|^|検査アルゴリズムに含まれる英大文字の入力を必要とします...
|&|検査アルゴリズムに含まれる英字の入力を必要とします。す...
|`|検査アルゴリズムに含まれない英数字の入力を必要とします...
SerialNumberTemplateプロパティはデフォルトで「<###-%%%%%%...
#や%を使ったときはユーザーが数字しか入力できなくなります...
-[[PIDKEY Property>http://msdn.microsoft.com/library/en-u...
-[[PIDTemplate Property>http://msdn.microsoft.com/library...
-[[ValidateProductID Action>http://msdn.microsoft.com/lib...
このようないい加減な方法でなく、しっかりした検証を行いた...
-[[How To Validate a Serial Number During an Installation...
しかしインストーラだけでシリアル番号を確認するよりも、ア...
***ユーザーの登録を行う [#z4bb54c0]
「ユーザーの登録」ダイアログを使ってユーザー登録できるよ...
まずはユーザー登録をするためのアプリケーションを作成しま...
ここではHTTPのPOSTにより指定されたURL(ここでは「http://l...
#code(csharp){{
using System;
using System.Windows.Forms;
namespace RegisterUser
{
public class RegisterUser
{
static void Main(string[] args)
{
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding("shift_j...
string postData = "";
for (int i = 0; i < args.Length; i = i + 2)
{
postData += args[i] + "=" +
System.Web.HttpUtility.UrlEncode(args...
}
byte[] postDataBytes =
System.Text.Encoding.ASCII.GetBytes(postD...
System.Net.HttpWebRequest req = (System.Net.H...
System.Net.WebRequest.Create("http://loca...
req.Method = "POST";
req.ContentType = "application/x-www-form-url...
req.ContentLength = postDataBytes.Length;
System.IO.Stream reqStream = req.GetRequestSt...
reqStream.Write(postDataBytes, 0, postDataByt...
reqStream.Close();
System.Net.HttpWebResponse res =
(System.Net.HttpWebResponse) req.GetRespo...
if (res.StatusCode == System.Net.HttpStatusCo...
{
MessageBox.Show("登録しました。");
}
else
{
MessageBox.Show("登録に失敗しました。");
}
res.Close();
}
}
}
}}
参考.
-[[DOBON.NET .NET Tips - POSTによりファイルをダウンロード...
次にユーザーインターフェイスエディタで「開始」セクション...
「ユーザー情報」ダイアログのプロパティは、適当で結構です...
これで「ユーザー登録」ダイアログの「今すぐ登録」ボタンが...
***「完全インストール」か「最小インストール」を選択できる...
ここでは、「オプションボタン」ダイアログを使った簡単な例...
アプリケーションをインストールする際、ユーザーが完全イン...
まずユーザーインターフェイスエディタで「開始」セクション...
次にダイアログのプロパティを設定します。ここでは次のよう...
|BannerText|インストールの種類|
|BodyText|インストールの種類を選択してください。|
|Button1Label|完全インストール(すべてのファイルをインス...
|Button1Value|1|
|Button2Label|最小インストール(最低限のファイルのみをイ...
|Button2Value|2|
|ButtonProperty|BUTTON2|
|DefaultValue|1|
次に最小インストールではインストールされず、完全インスト...
補足.Windows Installerでは通常上記のような目的のためにはF...
***デスクトップにショートカットを作成するかユーザーが選択...
次に「チェックボックス」ダイアログを使った例を紹介します...
まずユーザーインターフェイスエディタで「開始」セクション...
次に「チェックボックス」ダイアログのプロパティを設定しま...
|BannerText|オプション|
|BodyText|オプションを選択してください。|
|Checkbox1Label|デスクトップにショートカットを作成する|
|Checkbox1Property|CHECKBOXA1|
|Checkbox1Value|Checked|
|Checkbox1Visible|True|
|Checkbox2Visible,Checkbox3Visible,Checkbox4Visible|False|
これでユーザーが「デスクトップにショートカットを作成する...
後はCHECKBOXA1プロパティが1の時にデスクトップにシュートカ...
これを解決する方法として、2つ紹介します。
まず、デプロイメントプロジェクトにファイルを2つ追加する方...
もう一つの方法は、カスタムアクションでショートカットを作...
まずカスタムアクションとして実行する次のようなVBScriptを...
#code(vbscript){{
dim arg, args, desktop, WshShell, WshShortcut
arg = Session.Property("CustomActionData")
args = Split(arg, ":::")
if args(1)="1" then
set WshShell = CreateObject("WScript.Shell")
desktop = WshShell.SpecialFolders("Desktop")
set WshShortcut = WshShell.CreateShortcut(desktop & "...
WshShortcut.TargetPath = args(0)
WshShortcut.Save
end if
}}
これを「カスタム動作」の「インストール」に追加し、CustomA...
この方法ではカスタムアクションでショートカットを作成して...
***インストール終了後にアプリケーションを起動するか選択で...
「チェックボックス」ダイアログを使った例をもう一つ紹介し...
まずはVS.NETのみを使って作成してみますが、はじめに言って...
まずはユーザーが選択できるように、ユーザーインターフェイ...
「チェックボックス」ダイアログのプロパティは次のようにし...
|BannerText|アプリケーションの起動|
|BodyText|インストールしたアプリケーションを起動するか選...
|Checkbox1Label|インストールしたアプリケーションをインス...
|Checkbox1Property|CHECKBOXA1|
|Checkbox1Value|Checked|
|Checkbox1Visible|True|
|Checkbox2Visible,Checkbox3Visible,Checkbox4Visible|False|
次にカスタムアクションを作成します。ここでは次のようなVBS...
#code(vbscript){{
dim arg, args, WshShell
arg = Session.Property("CustomActionData")
args = Split(arg, ":::")
if args(1)="1" then
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """" & args(0) & """"
end if
}}
このカスタムアクションを「カスタム動作」の「インストール...
これでビルドすれば、終了です。ただし、カスタムアクション...
次に、改良した方法を紹介します。アプリケーションの起動を...
まずユーザーインターフェイスエディタで「チェックボックス...
次にアプリケーションを起動するためのカスタムアクションを...
#code(vbscript){{
dim WshShell
if Session.Property("CHECKBOXA1") then
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """" & Session.Property("TARGETDIR") & "...
end if
}}
この「LauncherApp.vbs」をデプロイメントプロジェクトに追加...
さてここでプロジェクトをビルドし、作成されたMSIファイルを...
まずはCustomActionテーブルにカスタムアクションを追加しま...
次にCustomActionテーブルを表示し、次のような新しい列を追...
#prescroll(wrap=true){{
Action
LauncherApp
Type
22
Source
_1CD4536303AE460B8EA1AAEEC78DE0F3
Target
}}
なおインストールされたVBScript以外のカスタムアクションを...
-[[Summary List of All Custom Action Types>http://msdn.mi...
最後に「完了」ダイアログの「閉じる」ボタンのイベントを設...
|Dialog_|FinishedForm|
|Control_|CloseButton|
|Evant|DoAction|
|Argument|LauncherApp|
|Condition|1|
|Ordering|0|
ただし、Dialog_が「FinishedForm」、Control_が「CloseButto...
これで保存すれば完了です。
補足.Conditionを「CHECKBOXA1=1」とし、カスタムアクション...
補足.ここではカスタムアクションとしてアプリケーションを起...
-[[Custom Action Return Processing Options>http://msdn.mi...
***テキストボックスに入力された文字を*で隠す [#m6d99a7f]
「テキストボックス」ダイアログを使ってユーザーにパスワー...
ここでは、ユーザーインターフェイスエディタで追加された「...
まずはOrcaでMSIファイルを開き、Controlテーブルを表示し、...
次にこのコントロールのAttributesにmsidbControlAttributesP...
これで保存すれば終了です。
-[[Password Control Attribute>http://msdn.microsoft.com/l...
**コメント [#b5cc9fad]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2005-09-04 (日) 18:00:00,DOB...
終了行:
#title(.NETプログラミング研究 第58号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第58号 [#h67b13a6]
**.NET Tips [#g7cc3001]
**ユーザーインターフェイスエディタの使い方 [#k1af3900]
VS.NETのデプロイメントプロジェクトでは、「ユーザーインタ...
-[[配置でのユーザー インターフェイスの管理>http://www.mic...
ユーザーインターフェイスエディタを表示するには、ソリュー...
ダイアログを追加するには、ダイアログを追加するセクション...
ダイアログを追加した後は、ダイアログを適当な位置に移動し...
追加できるダイアログの種類などについては、ヘルプの「イン...
-[[インストール用ユーザー インターフェイス ダイアログ ボ...
-[[配置のダイアログ ボックス>http://www.microsoft.com/jap...
この内幾つかを簡単に説明します。
|インストールフォルダ|インストール先のフォルダをユーザー...
|インストールアドレス|インストールするWebの場所(仮想ディ...
|スプラッシュ|画像を表示します。画像の大きさは横480ピクセ...
|注意事項|ユーザーに注意事項を提示します。表示するメッセ...
|使用許諾契約書|ユーザーに使用許諾契約書を提示し、許可を...
|ユーザー情報|名前、所属、シリアル番号の情報の入力をユー...
|ユーザーの登録|ユーザーが登録情報を送信できるようにする...
|オプションボタン|ユーザーに排他的な選択を要求するオプシ...
|チェックボックス|ユーザーに選択を要求するチェックボック...
|テキストボックス|ユーザーにテキスト入力を要求するテキス...
ユーザーインターフェイスエディタの基本的な使い方はヘルプ...
***BannerBitmapプロパティ [#k6af352e]
BannerBitmapプロパティはダイアログの上部に表示する画像を...
また、BannerBitmapプロパティで使用する画像はデプロイメン...
-[[BannerBitmap プロパティ>http://www.microsoft.com/japan...
***ダイアログの見た目をMSIファイルを実行することなく確か...
ダイアログの見た目がどのようになっているか、MSIファイルを...
***ユーザーにシリアル番号の入力を促し、それが正しいか検証...
「ユーザー情報」ダイアログを使うことにより、シリアル番号...
まず「ユーザー情報」ダイアログをユーザーインターフェイス...
次に「ユーザー情報」ダイアログのプロパティを変更します。...
どのようなシリアル番号が入力されれば正しいと判断するかを...
-[[SerialNumberTemplate プロパティ>http://www.microsoft.c...
-[[MaskedEdit Control>http://msdn.microsoft.com/library/e...
しかし私が実際に確かめたところでは、これらのドキュメント...
|#|検査アルゴリズムに含まれない数字の入力を必要とします。...
|%|検査アルゴリズムに含まれる数字の入力を必要とします。す...
|?|検査アルゴリズムに含まれない英数字の入力を必要とします...
|^|検査アルゴリズムに含まれる英大文字の入力を必要とします...
|&|検査アルゴリズムに含まれる英字の入力を必要とします。す...
|`|検査アルゴリズムに含まれない英数字の入力を必要とします...
SerialNumberTemplateプロパティはデフォルトで「<###-%%%%%%...
#や%を使ったときはユーザーが数字しか入力できなくなります...
-[[PIDKEY Property>http://msdn.microsoft.com/library/en-u...
-[[PIDTemplate Property>http://msdn.microsoft.com/library...
-[[ValidateProductID Action>http://msdn.microsoft.com/lib...
このようないい加減な方法でなく、しっかりした検証を行いた...
-[[How To Validate a Serial Number During an Installation...
しかしインストーラだけでシリアル番号を確認するよりも、ア...
***ユーザーの登録を行う [#z4bb54c0]
「ユーザーの登録」ダイアログを使ってユーザー登録できるよ...
まずはユーザー登録をするためのアプリケーションを作成しま...
ここではHTTPのPOSTにより指定されたURL(ここでは「http://l...
#code(csharp){{
using System;
using System.Windows.Forms;
namespace RegisterUser
{
public class RegisterUser
{
static void Main(string[] args)
{
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding("shift_j...
string postData = "";
for (int i = 0; i < args.Length; i = i + 2)
{
postData += args[i] + "=" +
System.Web.HttpUtility.UrlEncode(args...
}
byte[] postDataBytes =
System.Text.Encoding.ASCII.GetBytes(postD...
System.Net.HttpWebRequest req = (System.Net.H...
System.Net.WebRequest.Create("http://loca...
req.Method = "POST";
req.ContentType = "application/x-www-form-url...
req.ContentLength = postDataBytes.Length;
System.IO.Stream reqStream = req.GetRequestSt...
reqStream.Write(postDataBytes, 0, postDataByt...
reqStream.Close();
System.Net.HttpWebResponse res =
(System.Net.HttpWebResponse) req.GetRespo...
if (res.StatusCode == System.Net.HttpStatusCo...
{
MessageBox.Show("登録しました。");
}
else
{
MessageBox.Show("登録に失敗しました。");
}
res.Close();
}
}
}
}}
参考.
-[[DOBON.NET .NET Tips - POSTによりファイルをダウンロード...
次にユーザーインターフェイスエディタで「開始」セクション...
「ユーザー情報」ダイアログのプロパティは、適当で結構です...
これで「ユーザー登録」ダイアログの「今すぐ登録」ボタンが...
***「完全インストール」か「最小インストール」を選択できる...
ここでは、「オプションボタン」ダイアログを使った簡単な例...
アプリケーションをインストールする際、ユーザーが完全イン...
まずユーザーインターフェイスエディタで「開始」セクション...
次にダイアログのプロパティを設定します。ここでは次のよう...
|BannerText|インストールの種類|
|BodyText|インストールの種類を選択してください。|
|Button1Label|完全インストール(すべてのファイルをインス...
|Button1Value|1|
|Button2Label|最小インストール(最低限のファイルのみをイ...
|Button2Value|2|
|ButtonProperty|BUTTON2|
|DefaultValue|1|
次に最小インストールではインストールされず、完全インスト...
補足.Windows Installerでは通常上記のような目的のためにはF...
***デスクトップにショートカットを作成するかユーザーが選択...
次に「チェックボックス」ダイアログを使った例を紹介します...
まずユーザーインターフェイスエディタで「開始」セクション...
次に「チェックボックス」ダイアログのプロパティを設定しま...
|BannerText|オプション|
|BodyText|オプションを選択してください。|
|Checkbox1Label|デスクトップにショートカットを作成する|
|Checkbox1Property|CHECKBOXA1|
|Checkbox1Value|Checked|
|Checkbox1Visible|True|
|Checkbox2Visible,Checkbox3Visible,Checkbox4Visible|False|
これでユーザーが「デスクトップにショートカットを作成する...
後はCHECKBOXA1プロパティが1の時にデスクトップにシュートカ...
これを解決する方法として、2つ紹介します。
まず、デプロイメントプロジェクトにファイルを2つ追加する方...
もう一つの方法は、カスタムアクションでショートカットを作...
まずカスタムアクションとして実行する次のようなVBScriptを...
#code(vbscript){{
dim arg, args, desktop, WshShell, WshShortcut
arg = Session.Property("CustomActionData")
args = Split(arg, ":::")
if args(1)="1" then
set WshShell = CreateObject("WScript.Shell")
desktop = WshShell.SpecialFolders("Desktop")
set WshShortcut = WshShell.CreateShortcut(desktop & "...
WshShortcut.TargetPath = args(0)
WshShortcut.Save
end if
}}
これを「カスタム動作」の「インストール」に追加し、CustomA...
この方法ではカスタムアクションでショートカットを作成して...
***インストール終了後にアプリケーションを起動するか選択で...
「チェックボックス」ダイアログを使った例をもう一つ紹介し...
まずはVS.NETのみを使って作成してみますが、はじめに言って...
まずはユーザーが選択できるように、ユーザーインターフェイ...
「チェックボックス」ダイアログのプロパティは次のようにし...
|BannerText|アプリケーションの起動|
|BodyText|インストールしたアプリケーションを起動するか選...
|Checkbox1Label|インストールしたアプリケーションをインス...
|Checkbox1Property|CHECKBOXA1|
|Checkbox1Value|Checked|
|Checkbox1Visible|True|
|Checkbox2Visible,Checkbox3Visible,Checkbox4Visible|False|
次にカスタムアクションを作成します。ここでは次のようなVBS...
#code(vbscript){{
dim arg, args, WshShell
arg = Session.Property("CustomActionData")
args = Split(arg, ":::")
if args(1)="1" then
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """" & args(0) & """"
end if
}}
このカスタムアクションを「カスタム動作」の「インストール...
これでビルドすれば、終了です。ただし、カスタムアクション...
次に、改良した方法を紹介します。アプリケーションの起動を...
まずユーザーインターフェイスエディタで「チェックボックス...
次にアプリケーションを起動するためのカスタムアクションを...
#code(vbscript){{
dim WshShell
if Session.Property("CHECKBOXA1") then
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """" & Session.Property("TARGETDIR") & "...
end if
}}
この「LauncherApp.vbs」をデプロイメントプロジェクトに追加...
さてここでプロジェクトをビルドし、作成されたMSIファイルを...
まずはCustomActionテーブルにカスタムアクションを追加しま...
次にCustomActionテーブルを表示し、次のような新しい列を追...
#prescroll(wrap=true){{
Action
LauncherApp
Type
22
Source
_1CD4536303AE460B8EA1AAEEC78DE0F3
Target
}}
なおインストールされたVBScript以外のカスタムアクションを...
-[[Summary List of All Custom Action Types>http://msdn.mi...
最後に「完了」ダイアログの「閉じる」ボタンのイベントを設...
|Dialog_|FinishedForm|
|Control_|CloseButton|
|Evant|DoAction|
|Argument|LauncherApp|
|Condition|1|
|Ordering|0|
ただし、Dialog_が「FinishedForm」、Control_が「CloseButto...
これで保存すれば完了です。
補足.Conditionを「CHECKBOXA1=1」とし、カスタムアクション...
補足.ここではカスタムアクションとしてアプリケーションを起...
-[[Custom Action Return Processing Options>http://msdn.mi...
***テキストボックスに入力された文字を*で隠す [#m6d99a7f]
「テキストボックス」ダイアログを使ってユーザーにパスワー...
ここでは、ユーザーインターフェイスエディタで追加された「...
まずはOrcaでMSIファイルを開き、Controlテーブルを表示し、...
次にこのコントロールのAttributesにmsidbControlAttributesP...
これで保存すれば終了です。
-[[Password Control Attribute>http://msdn.microsoft.com/l...
**コメント [#b5cc9fad]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2005-09-04 (日) 18:00:00,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]