7.現在のシステム環境に関する情報(108項目)を取得(27_Sys_07) (旧、SampleNo.357) |
1.現在のシステム環境に関する情報(108項目)を取得 2.上記情報を取得するためのプロシージャ 3.システム環境に関するプロパティの解説 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.現在のシステム環境に関する情報(108項目)を取得 |
個別に取得する場合は、下記のように、SystemInformation クラスのプロパティを参照すれば取得できます。 しかしながら、なにが、どのような形で、どのように取得できるのかが解っていないと一々調べて試して見ないと解らないので一覧を取得してファイルに保存するようにしておりますので、取得結果をエクセルに表示して印刷しておくと何かの時に便利かと思います。 '個別に取得する場合は、下記のように、SystemInformation クラスのプロパティを参照すれば取得できます。 Debug.WriteLine(SystemInformation.WorkingArea.ToString) Debug.WriteLine(SystemInformation.PowerStatus.BatteryChargeStatus) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '個別に取得する場合は、下記のように、SystemInformation クラスのプロパティを参照すれば取得できます。 Debug.WriteLine(SystemInformation.WorkingArea.ToString) Debug.WriteLine(SystemInformation.PowerStatus.BatteryChargeStatus) Dim SaveFilePath As String = "SysInfo.csv" '保存先のCSVファイルのフルパス 'ファイルが使用中だとエラーが発生するので If System.IO.File.Exists(SaveFilePath) Then Try 'ファイル名の変更 System.IO.File.Move(SaveFilePath, SaveFilePath) Catch ex As Exception MessageBox.Show(ex.Message) Exit Sub End Try End If Using swCSV As New System.IO.StreamWriter(SaveFilePath, False, System.Text.Encoding.GetEncoding("SHIFT_JIS")) Dim sf As String = Chr(34) Dim se As String = Chr(34) & "," 'ヘッダーテキストを保存 swCSV.WriteLine(sf & "プロパティ名" & se & sf & " 取 得 値 " & se & sf & " プ ロ パ テ ィ の 解 説 " & sf) Dim t As Type = GetType(System.Windows.Forms.SystemInformation) Dim pi As System.Reflection.PropertyInfo() = t.GetProperties() Dim i As Integer For i = 0 To pi.Length - 1 Dim propval As Object = pi(i).GetValue(Nothing, Nothing) If pi(i).Name = "PowerStatus" Then Dim t1 As Type = GetType(System.Windows.Forms.PowerStatus) Dim pi1 As System.Reflection.PropertyInfo() = t1.GetProperties() Dim j As Integer For j = 0 To pi1.Length - 1 Dim propval1 As Object = pi1(j).GetValue(SystemInformation.PowerStatus, Nothing) Dim wk As String = "" Select Case pi1(j).Name Case "BatteryChargeStatus" wk = "現在のバッテリー充電状態を取得" Case "BatteryFullLifetime" wk = "完全充電された一次バッテリー電源の報告された残量 不明な場合は -1" Case "BatteryLifePercent" wk = "完全充電時のバッテリー残量に対する概算の割合(0.0 〜 1.0) 不明な場合、255" Case "BatteryLifeRemaining" wk = "概算のバッテリー残量(秒単位) 不明な場合には、-1" Case "PowerLineStatus" wk = "現在のシステム電源の状態を取得" End Select swCSV.WriteLine(sf & "PowerStatus." & pi1(j).Name & se & sf & propval1.ToString() & se & sf & wk & sf) Next j ElseIf pi(i).Name = "MenuFont" Then swCSV.WriteLine(sf & pi(i).Name & se & sf & propval.ToString() & se & sf & GetExplanation(pi(i).Name) & sf) Else swCSV.WriteLine(sf & pi(i).Name & se & sf & propval.ToString() & se & sf & GetExplanation(pi(i).Name) & sf) End If Next i End Using ' MessageBox.Show("取得してファイルに保存しました") '保存した CSV ファイルを DataGridView に表示。 ---- 以下省略 ---- Using cn As New System.Data.OleDb.OleDbConnection Using cm As New System.Data.OleDb.OleDbCommand Using da As New System.Data.OleDb.OleDbDataAdapter Dim ds As New DataSet Dim fileName As String = "SysInfo.csv" Dim folderPath As String = Application.StartupPath Dim tableName As String = "Table1" Try cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & folderPath & ";Extended Properties=""Text;HDR=YES;FMT=Delimited;""" 'コネクションの設定 cm.Connection = cn 'データソースで実行するSQL文の設定 cm.CommandText = "SELECT * from " & fileName 'データソース内のレコードを選択するためのSQLコマンドの設定 da.SelectCommand = cm 'データを取得する da.Fill(ds, tableName) 'データグリッドに表示するデータソースを設定 DataGridView1.DataSource = ds 'グリッドを表示するための、DataSource 内のリストを設定 DataGridView1.DataMember = tableName Catch ex As Exception MessageBox.Show(ex.Message) End Try '---------------------------------------------------------------------------------------- 'データソースへの接続を閉る End Using End Using End Using With DataGridView1 .Columns(0).DefaultCellStyle.WrapMode = DataGridViewTriState.True .Columns(1).DefaultCellStyle.WrapMode = DataGridViewTriState.True .Columns(2).DefaultCellStyle.WrapMode = DataGridViewTriState.True .Columns(0).Width = 300 .Columns(1).Width = 200 .Columns(2).Width = 500 .Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending) .AutoResizeRows() End With End Sub |
2.上記情報を取得するためのプロシージャ |
Private Function GetExplanation(ByVal wrk As String) As String Dim wk As String = "" Select Case wrk Case "DragFullWindows" wk = "ユーザーがウィンドウ全体のドラッグを有効にしているかどうかを示す値" Case "HighContrast" wk = "ユーザーがハイコントラストモードのユーザー補助機能を有効にしているかどうかを示す値" Case "MouseWheelScrollLines" wk = "マウスホイールを回転したときにスクロールする行数" Case "PrimaryMonitorSize" wk = "プライマリディスプレイの現在のビデオモードのサイズ" Case "VerticalScrollBarWidth" wk = "垂直スクロールバーの既定の幅" Case "HorizontalScrollBarHeight" wk = "水平スクロールバーの既定の高さ" Case "CaptionHeight" wk = "ウィンドウの標準のタイトルバー領域の高さ" Case "BorderSize" wk = "フラットスタイルのウィンドウ又はシステムコントロールの境界線の太さ" Case "FixedFrameBorderSize" wk = "キャプションがありサイズを変更できないウィンドウの枠の境界線の太さ" Case "VerticalScrollBarThumbHeight" wk = "垂直スクロールバーのスクロールボックスの高さ" Case "HorizontalScrollBarThumbWidth" wk = "水平スクロールバーのスクロールボックスの幅" Case "IconSize" wk = "Windows のプログラムアイコンの既定のサイズ" Case "CursorSize" wk = "カーソルに使用できる最大サイズ" Case "MenuFont" wk = "メニューに表示するテキストのフォント" Case "MenuHeight" wk = "メニューの 1 行の高さ" Case "PowerStatus" wk = "システムの現在の電源ステータス" Case "WorkingArea" wk = "画面の作業領域のサイズ" Case "KanjiWindowHeight" wk = "画面の一番下に表示される漢字ウィンドウの高さ" Case "MousePresent" wk = "ポインティングデバイスが取り付けられているかどうかを示す" Case "VerticalScrollBarArrowHeight" wk = "垂直スクロールバーの矢印ビットマップの高さ" Case "HorizontalScrollBarArrowWidth" wk = "水平スクロールバーの矢印ビットマップの幅" Case "DebugOS" wk = "USER.EXEがインストールされているかどうかを示す" Case "MouseButtonsSwapped" wk = "左右のマウスボタンの機能が入れ替わっているかどうかを示す値" Case "MinimumWindowSize" wk = "ウィンドウの最小の幅と高さ" Case "CaptionButtonSize" wk = "ウィンドウのタイトルバーのボタンの標準サイズ" Case "FrameBorderSize" wk = "ドラッグによるサイズ変更中のウィンドウの周囲に描かれるサイズ変更境界の太さ" Case "MinWindowTrackSize" wk = "ドラッグによるサイズ変更時のウィンドウの既定の最小サイズ" Case "DoubleClickSize" wk = "ダブルクリックであると認識されるためにクリックする 2 つの位置が含まれている必要がある範囲のサイズ" Case "DoubleClickTime" wk = "ダブルクリックであると認識されるための1 回目のクリックと 2 回目のクリックの間の最大経過時間" Case "IconSpacingSize" wk = "大きいアイコン表示でアイコンを整列するために使用される四角形グリッドのサイズ" Case "RightAlignedMenus" wk = "ドロップダウンメニューが対応するメニューバー項目に対して右寄せになっているかどうかを示す値" Case "PenWindows" wk = "Microsoft Windows for Pen Computing がインストールされているかどうかを示す値" Case "DbcsEnabled" wk = "オペレーティングシステムが 2 バイト文字セットの文字を処理できるかどうかを示す値" Case "MouseButtons" wk = "マウスのボタンの数を取得" Case "Secure" wk = "OS にセキュリティマネージャーが設定されているかどうかを示す値" Case "Border3DSize" wk = "3D スタイルのウィンドウ又はシステムコントロールの境界線の太さ" Case "MinimizedWindowSpacingSize" wk = "最小化されたウィンドウを整列する際に各ウィンドウに割り当てられる領域のサイズ" Case "SmallIconSize" wk = "小さいアイコンのサイズ" Case "ToolWindowCaptionHeight" wk = "ツールウィンドウの高さ" Case "ToolWindowCaptionButtonSize" wk = "小さいキャプションボタンのサイズ" Case "MenuButtonSize" wk = "メニューバーボタンの既定のサイズ" Case "ArrangeStartingPosition" wk = "最小化されたウィンドウをシステムが整列するときの開始位置" Case "ArrangeDirection" wk = "OS が最小化ウィンドウを整列する方向を示す値" Case "MinimizedWindowSize" wk = "標準の最小化されたウィンドウのサイズ" Case "MaxWindowTrackSize" wk = "キャプションとサイズ変更境界があるウィンドウの既定の最大サイズ" Case "PrimaryMonitorMaximizedWindowSize" wk = "プライマリディスプレイ上の最大化されたウィンドウの既定のサイズ" Case "Network" wk = "ネットワークが接続されているかどうかを示す値" Case "TerminalServerSession" wk = "呼び出し元のプロセスがターミナルサービスのクライアントセッションに関連付けられているかどうかを示す値" Case "BootMode" wk = "システムが起動された方法を示す値" Case "DragSize" wk = "ドラッグ操作が開始されない範囲を示す、クリックしたポイントを中心とする四角形の幅と高さ" Case "ShowSounds" wk = "ユーザーが情報を視覚的形式で要求しているかどうかを示す値" Case "MenuCheckSize" wk = "メニューのチェックマーク領域の既定のサイズ" Case "MidEastEnabled" wk = "OS がヘブライ語やアラビア語に対応しているかどうかを示す値" Case "NativeMouseWheelSupport" wk = "OS が本来マウスホイールをサポートしているかどうかを示す値" Case "MouseWheelPresent" wk = "マウスホイールが付いているマウスが取り付けられているかどうかを示す値" Case "VirtualScreen" wk = "仮想画面の範囲を取得" Case "MonitorCount" wk = "デスクトップ上のディスプレイモニターの数を取得" Case "MonitorsSameDisplayFormat" wk = "すべてのモニターで同じピクセル色形式が使用されているかどうかを示す値" Case "ComputerName" wk = "ローカルコンピューターの NetBIOS コンピューター名を取得" Case "UserDomainName" wk = "ユーザーが属するドメインの名前を取得" Case "UserInteractive" wk = "現在のプロセスがユーザー対話モードで実行されているかどうかを示す値" Case "UserName" wk = "現在のスレッドに関連付けられているユーザー名を取得" Case "IsDropShadowEnabled" wk = "ドロップシャドウ効果が有効かどうかを示す値" Case "IsFlatMenuEnabled" wk = "ネイティブなユーザーメニューでフラットなメニュー表示形式を使用するかどうかを示す値" Case "IsFontSmoothingEnabled" wk = "フォントスムージングが有効かどうかを示す値" Case "FontSmoothingContrast" wk = "ClearType フォントスムージングに使用するコントラスト値を取得" Case "FontSmoothingType" wk = "フォントスムージングの現在のタイプを取得" Case "IconHorizontalSpacing" wk = "大きいアイコン表示でアイコンを整列するセルの幅" Case "IconVerticalSpacing" wk = "大きいアイコン表示でアイコンを整列するセルの高さ" Case "IsIconTitleWrappingEnabled" wk = "アイコンタイトルの折り返しが有効かどうかを示す値" Case "MenuAccessKeysUnderlined" wk = "メニューアクセスキーに常に下線を付けるかどうかを示す値" Case "KeyboardDelay" wk = "キーボードの繰り返し遅延設定を取得" Case "IsKeyboardPreferred" wk = "通常は非表示のキーボードインターフェイスをアプリケーションに表示するかどうかを示す値" Case "KeyboardSpeed" wk = "キーボードの繰り返し速度設定を取得" Case "MouseHoverSize" wk = "マウス静止メッセージが生成されるためにマウス静止時間が経過するまでマウスポインターをとどめておく必要がある四角形の領域のサイズ" Case "MouseHoverTime" wk = "マウス静止メッセージが生成されるために静止領域内にマウスポインターをとどめておく必要がある時間" Case "MouseSpeed" wk = "現在のマウス速度を取得" Case "IsSnapToDefaultEnabled" wk = "既定のボタンに移動機能が有効かどうかを示す値" Case "PopupMenuAlignment" wk = "ポップアップメニューを、対応するメニューバー項目の左右どちら側に配置するかを取得" Case "IsMenuFadeEnabled" wk = "メニューのフェードアニメーションが有効かどうかを示す値" Case "MenuShowDelay" wk = "マウスのカーソルがサブメニュー項目の上に置かれてから、重ねてショートカットメニューが表示されるまでの時間" Case "IsComboBoxAnimationEnabled" wk = "コンボボックスのスライドオープン効果が有効かどうかを示す値" Case "IsTitleBarGradientEnabled" wk = "ウィンドウのタイトルバーのグラデーション効果が有効かどうかを示す値" Case "IsHotTrackingEnabled" wk = "メニューバーのメニュー名など、ユーザーインターフェイス要素のホットトラッキングが有効かどうかを示す値" Case "IsListBoxSmoothScrollingEnabled" wk = "リストボックスのスムーズスクロール効果が有効かどうかを示す値" Case "IsMenuAnimationEnabled" wk = "メニューのフェードアニメーション機能またはスライドアニメーション機能が有効かどうかを示す値" Case "IsSelectionFadeEnabled" wk = "選択項目のフェード効果が有効かどうかを示す値" Case "IsToolTipAnimationEnabled" wk = "ToolTip アニメーションが有効かどうかを示す値" Case "UIEffectsEnabled" wk = "ユーザーインターフェイス (UI) 効果が有効にされているか、無効にされているかを示す値" Case "IsActiveWindowTrackingEnabled" wk = "アクティブウィンドウトラッキングが有効かどうかを示す値" Case "ActiveWindowTrackingDelay" wk = "アクティブウィンドウトラッキングの遅延時間を取得" Case "IsMinimizeRestoreAnimationEnabled" wk = "ウィンドウの最小化および元に戻すアニメーションが有効かどうかを示す値" Case "BorderMultiplierFactor" wk = "ウィンドウのサイズ変更境界の太さを決定するときに使用する、境界線の乗数を取得" Case "CaretBlinkTime" wk = "キャレットの点滅間隔を取得" Case "CaretWidth" wk = "エディットコントロール内のキャレットの幅" Case "MouseWheelScrollDelta" wk = "マウスホイールの 1 目盛りの回転で増分される差分値" Case "VerticalFocusThickness" wk = "システム フォーカスを示す四角形の上端と下端の太さ" Case "HorizontalFocusThickness" wk = "システム フォーカスを示す四角形の左端と右端の太さ" Case "VerticalResizeBorderThickness" wk = "サイズ変更中のウィンドウの周囲に描かれるサイズ変更境界の上端と下端の太さ" Case "HorizontalResizeBorderThickness" wk = "サイズ変更中のウィンドウの周囲に描かれるサイズ変更境界の左端と右端の太さ" Case "ScreenOrientation" wk = "画面の向きを取得" Case "SizingBorderWidth" wk = "サイズ変更中のウィンドウの周囲に描かれるサイズ変更境界の幅" Case "SmallCaptionButtonSize" wk = "小さいキャプションボタンの幅" Case "MenuBarButtonSize" wk = "メニューバーボタンの既定のサイズ" Case Else wk = "【 不 明 】" End Select GetExplanation = wk End Function |
3.システム環境に関するプロパティの解説 |
|
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |