【】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 記事・情報の無断転載を禁止します。

「これがほしかった!厳選サンプルツール集」の注意点
●当サイトはリンクフリーです。
2005/10/06(木)00:05 更新