【】Top
【】VB.NET
【】VB6.0
【】メールマガジンの購読
【】メールマガジンの解除
【】会社概要
【】お問い合わせ
姉妹サイト「バーチャルコネクション!」はこちらです。
姉妹サイト「七福神のメールでビンゴ!」はこちらです。
●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。
|
|
|
|
|
メモリの使用状況などを確認する
|
|
.NET でも、メモリの使用状況などを確認することが可能です。
この機能を使えば、メモリ不足の警告などを管理する アプリケーションを作成することができます。
フォームに次の様なコードを記述します
-----------VB.NETコーディングここから-------------------
1.フォームに、 ラベルコントロール、 ピクチャボックスコントロール、 ピクチャボックスコントロール、 タイマーコントロールを配置します。 下記は、デフォルトのオブジェクトの名前と配置を示しています。
┏━━━━━━━━━━━━━━┓ ┃Label1 ┃ ┗━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━┓ ┃PictureBox1 ┃ ┗━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━┓ ┃TextBox1 ┃ ┗━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━┓ ┃Label2 ┃ ┗━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━┓ ┃PictureBox2 ┃ ┗━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━┓ ┃TextBox2 ┃ ┗━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━┓ ┃Label3 ┃ ┗━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━┓ ┃PictureBox3 ┃ ┗━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━┓ ┃TextBox3 ┃ ┗━━━━━━━━━━━━━━┛
┏━━━━┓ ┃Timer1 ┃ ┗━━━━┛
2.配置したタイマーコントロール Timer1 を 選択して、プロパティウィンドウの「Interval」プロパティを 1000 にします。
3.フォームで右クリックして、「コードの表示」を 選び、コード編集画面にします。
4.フォームの宣言部に、次のコードを記述します。
Imports System.Runtime.InteropServices
5.さらに、 Public Class Form1 内に、 次のコードを記述します。
'メモリの構造 Private Structure descMEMORYSTATUS
Dim intLength As Integer Dim intMemoryLoad As Integer Dim intTotalPhys As Integer Dim intAvailPhys As Integer Dim intTotalPageFile As Integer Dim intAvailPageFile As Integer Dim intTotalVirtual As Integer Dim intAvailVirtual As Integer
End Structure
'API宣言 Private Declare Sub GlobalMemoryStatus Lib "kernel32.dll" _ (ByRef lpbuffer As descMEMORYSTATUS)
'パーセントでピクチャボックスを塗ります Sub Set_Picbar(ByVal pic As PictureBox, _ ByVal sngPercent As Single)
Dim g As Graphics
Dim objRectangle As New Rectangle(0, 0, _ pic.Width * sngPercent, pic.Height) With pic .Image = New Bitmap(.Width, .Height) g = Graphics.FromImage(.Image)
End With
g.DrawRectangle(Pens.Yellow, objRectangle) g.FillRectangle(Brushes.Blue, objRectangle)
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Timer1.Tick Dim MemoryStatus As descMEMORYSTATUS
Dim sngPercen As Single
'アンマネージ型のサイズをバイト単位で返します MemoryStatus.intLength = Marshal.SizeOf(MemoryStatus)
GlobalMemoryStatus(MemoryStatus)
With MemoryStatus
TextBox1.Text = .intAvailPhys & "バイト /" & _ .intTotalPhys & "バイト" TextBox2.Text = .intAvailPageFile & "バイト /" & _ .intTotalPageFile & "バイト" TextBox3.Text = .intAvailVirtual & "バイト /" & _ .intTotalVirtual & "バイト"
sngPercen = .intAvailPhys / .intTotalPhys Label1.Text = "物理メモリ " & Int(sngPercen * 100) & " %" Set_Picbar(PictureBox1, sngPercen)
sngPercen = .intAvailPageFile / .intTotalPageFile Label2.Text = "ページファイルメモリ " & _ Int(sngPercen * 100) & " %" Set_Picbar(PictureBox2, sngPercen)
sngPercen = .intAvailVirtual / .intTotalVirtual Label3.Text = "仮想メモリ " & Int(sngPercen * 100) & " %" Set_Picbar(PictureBox3, sngPercen) End With
End Sub
6.ビルドして実行します。
7.メモリの使用状況がリアルタイムに表示されます。
-----------VB.NETコーディングここまで-------------------
大規模なメモリを消費する前に、チェックしたりすると、 ユーザーにとって親切な仕上がりとなりますねっ。
|
http://anetm.com/dev/d.cgi?SC=DTDTL&o=Olu
Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。
|
|
|
|
|
|
|