「VB.NET」の編集履歴(バックアップ)一覧はこちら
「VB.NET」(2006/09/08 (金) 22:01:33) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*******************************************<br>
イベントログに出力する<br>
*******************************************<br>
Public Class Form1<br>
<br>
Private Sub Form1_Load(ByVal sender As System.Object,
ByValeAsSystem.EventArgs) Handles MyBase.Load<br>
'テスト用にイベントログエントリに付加するデータを適当に作る<br>
Dim mybyte() As Byte = New Byte() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}<br>
Dim eventid As Integer = 1<br>
Dim category As Short = 1000<br>
<br>
System.Diagnostics.EventLog.WriteEntry("Sample_OutputEventViewer","イベントログに書き込む文字列",EventLogEntryType.Information,_<br>
eventid,category,mybyte)<br>
<br>
<br>
''Imports System.Diagnostics<br>
''が宣言されているものとする。<br>
<br>
''EventLogオブジェクトの作成<br>
'Dim elog As New EventLog()<br>
''コンピュータ名を設定する<br>
'elog.MachineName = "."<br>
''ログの名前を設定する<br>
'elog.Log = "MyLog"<br>
''ソース名を設定する<br>
'elog.Source = "MySource"<br>
''イベントログに書き込む<br>
'elog.WriteEntry("イベントログに書き込む文字列")<br>
<br>
End Sub<br>
End Class<br>
<br>
<br>
<br>
*******************************************<br>
Windowsサービスを作成する<br>
*******************************************<br>
<br>
http://msdn2.microsoft.com/ja-jp/library/d56de412.aspx<br>
<br>
注意:Windows XP
SP2でサンプルを作成したところ、サービス起動ユーザをLocalService
ではダメだった。<br>
(System.Security.SecurityExceptionが発生)<br>
AccountプロパティはLocalSystemで対応。<br>
<br>
<br>
*******************************************<br>
VB.NET Tips<br>
*******************************************<br>
VB6でサポートされていた文字列固定長配列は<br>
VB.NETではサポートされていません。<br>
もし使いたい場合はVBFixedStringAttributeを使用します。<br>
試した限りでは構造体の中でしか使用できないようです。<br>
普通の変数としては宣言できません。<br>
<br>
*******************************************<br>
イベントログに出力する<br>
*******************************************<br>
Public Class Form1<br>
<br>
Private Sub Form1_Load(ByVal sender As
System.Object,ByValeAsSystem.EventArgs) Handles MyBase.Load<br>
'テスト用にイベントログエントリに付加するデータを適当に作る<br>
Dim mybyte() As Byte = New Byte() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}<br>
Dim eventid As Integer = 1<br>
Dim category As Short = 1000<br>
<br>
System.Diagnostics.EventLog.WriteEntry("Sample_OutputEventViewer","イベントログに書き込む文字列",EventLogEntryType.Information,_<br>
eventid,category,mybyte)<br>
<br>
<br>
''Imports System.Diagnostics<br>
''が宣言されているものとする。<br>
<br>
''EventLogオブジェクトの作成<br>
'Dim elog As New EventLog()<br>
''コンピュータ名を設定する<br>
'elog.MachineName = "."<br>
''ログの名前を設定する<br>
'elog.Log = "MyLog"<br>
''ソース名を設定する<br>
'elog.Source = "MySource"<br>
''イベントログに書き込む<br>
'elog.WriteEntry("イベントログに書き込む文字列")<br>
<br>
End Sub<br>
End Class<br>
<br>
<br>
<br>
*******************************************<br>
Windowsサービスを作成する<br>
*******************************************<br>
<br>
http://msdn2.microsoft.com/ja-jp/library/d56de412.aspx<br>
<br>
注意:Windows
XPSP2でサンプルを作成したところ、サービス起動ユーザをLocalServiceではダメだった。<br>
(System.Security.SecurityExceptionが発生)<br>
AccountプロパティはLocalSystemで対応。<br>
<br>
<br>
*******************************************<br>
VB.NET Tips<br>
*******************************************<br>
VB6でサポートされていた文字列固定長配列は<br>
VB.NETではサポートされていません。<br>
もし使いたい場合はVBFixedStringAttributeを使用します。<br>
試した限りでは構造体の中でしか使用できないようです。<br>
普通の変数としては宣言できません。<br>
<br>
<br>
<br>
*******************************************<br>
レジストリから値を取得する<br>
*******************************************<br>
<pre>
Imports Microsoft.Win32<br>
<br>
Module Module1<br>
<br>
' Class1 の概要の説明です。<br>
Sub Main()<br>
' 操作するレジストリ・キーの名前<br>
Dim rKeyName As String = "SOFTWARE\Microsoft\.NETFramework"<br>
' 取得処理を行う対象となるレジストリの値の名前<br>
Dim rGetValueName As String = "InstallRoot"<br>
<br>
' レジストリの取得<br>
Try<br>
' レジストリ・キーのパスを指定してレジストリを開く<br>
Dim rKey As RegistryKey = Registry.LocalMachine.OpenSubKey(rKeyName)<br>
<br>
' レジストリの値を取得<br>
Dim location As String = CStr(rKey.GetValue(rGetValueName))<br>
<br>
' 開いたレジストリを閉じる<br>
rKey.Close()<br>
<br>
' コンソールに取得したレジストリの値を表示<br>
Console.WriteLine(location)<br>
Catch ex As NullReferenceException<br>
' レジストリ・キーまたは値が存在しない<br>
Console.WriteLine("レジストリ[" + rKeyName + "]の[" + rGetValueName + "]がありません!")<br>
End Try<br>
End Sub<br>
<br>
End Module
</pre>
<br>