반응형

*C# WMI 를 이용한 실시간 메모리 사용량 체크 (Memory Check) 예제...

- WMI 를 사용하기 위해 참조 -> System.Management dll 을 추가 -> 소스 코드 using System.Management

 

Main

 

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Management; 

namespace CSharp_WMIMemory
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Start
            timer1.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Stop
            timer1.Stop();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            int itotalMem = 0;		// 총 메모리 KB 단위
            int itotalMemMB = 0;	    // 총 메모리 MB 단위
            int ifreeMem = 0;		// 사용 가능 메모리 KB 단위
            int ifreeMemMB = 0;	    // 사용 가능 메모리 MB 단위

            ManagementClass cls = new ManagementClass("Win32_OperatingSystem");
            ManagementObjectCollection moc = cls.GetInstances();

            foreach (ManagementObject mo in moc)
            {
                itotalMem = int.Parse(mo["TotalVisibleMemorySize"].ToString());
                ifreeMem = int.Parse(mo["FreePhysicalMemory"].ToString());
            }

            itotalMemMB = itotalMem / 1024;	// 총 메모리 MB 단위 변경	
            ifreeMemMB = ifreeMem / 1024;	// 사용 가능 메모리 MB 단위 변경

            //Progressbar Max Setting...
            pbTotal.Maximum = itotalMemMB;
            pbFree.Maximum = itotalMemMB;
            pbUse.Maximum = itotalMemMB;

            //Label Display
            lblTotal.Text = itotalMemMB.ToString();
            lblFree.Text = ifreeMemMB.ToString();
            lblUse.Text = (itotalMemMB - ifreeMemMB).ToString();

            //Progressbar Display
            pbTotal.Value = itotalMemMB;
            pbFree.Value = ifreeMemMB;
            pbUse.Value = (itotalMemMB - ifreeMemMB);

        }

    }
}

 

 

*예제 결과

 

아래의 그림과 같이 NoxPlayer 를 켜고 난 뒤 게임을 실행 하면서 메모리 사용량이 변화 하는 것을 WMI 를 이용한

프로그램과 작업관리자 화면 을 동시에 비교 해 봤을 때 변화 하는 것을 볼 수 있습니다. 물론 단위가 작업관리자는 GB 로 나오고 WMI 를 이용해 만든 프로그램은 MB 이지만 1024를 한번 더 나누게 되면 단위는 GB 가 됩니다.

 

또한 소스 코드는 int 형 변수로 구현 했지만  Double 형 변수를 써서 구현 하게 되시면 작업 관리자 화면 처럼 소수점 2번째 자리 까지 표현 하면서 나타낼 수 있습니다.

 

 

 

 

https://kdsoft-zeros.tistory.com/169

 

[VBNET] [WMI] 실시간 메모리 사용량 체크 (Memory Check) - Progressbar

*VBNET WMI 를 이용한 실시간 메모리 사용량 체크 (Memory Check) 예제... - WMI 를 사용하기 위해 참조 -> System.Management dll 을 추가 -> 소스 코드 Imports System.Management 전체 소스 코드 Form1.vb Imp..

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET 제어판 프린터 목록 불러 오기 예제...

 

 Main

 

전체 소스 코드

Form1.vb

 

Imports System.Collections
Imports System.Drawing.Printing

Public Class Form1

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
        '프린터 목록 콜렉션 배열에 담기...
        Dim alList As System.Collections.ArrayList = New System.Collections.ArrayList(PrinterSettings.InstalledPrinters)

        '정렬
        alList.Sort()
        '리스트뷰 아이템 초기화
        listView1.Items.Clear()

        Dim iCount As Integer
        For iCount = 0 To alList.Count - 1 Step iCount + 1
            '프린터 목록 리스트 보여주기...
            Dim lvi As ListViewItem = New ListViewItem()
            lvi.Text = (iCount + 1).ToString()
            lvi.SubItems.Add(alList(iCount).ToString())

            '리스트뷰 아이템에 추가...
            listView1.Items.Add(lvi)
        Next
    End Sub

End Class

 

 

*예제 결과

 

결과 화면

 

https://kdsoft-zeros.tistory.com/166

 

[C#] 제어판 프린터(Printer) 목록 불러오기

* C# 제어판 프린터 (Printer) 목록 불러오기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; usin..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# 제어판 프린터 (Printer) 목록 불러오기 예제...

 

Main

 

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Drawing.Printing;

namespace CSharp_PrinterList
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //프린터 목록 콜렉션 배열에 담기...
            System.Collections.ArrayList alList = new System.Collections.ArrayList(
                PrinterSettings.InstalledPrinters);

            //정렬
            alList.Sort();
            //리스트뷰 아이템 초기화
            listView1.Items.Clear();

            for (int iCount = 0; iCount < alList.Count; iCount++)
            {
                //프린터 목록 리스트 보여주기...
                ListViewItem lvi = new ListViewItem();
                lvi.Text = (iCount + 1).ToString();
                lvi.SubItems.Add(alList[iCount].ToString());

                //리스트뷰 아이템에 추가...
                listView1.Items.Add(lvi);
            }

        }
    }
}

 

*예제 결과

 

결과 화면

 

https://kdsoft-zeros.tistory.com/167

 

[VBNET] 제어판 프린터(Printer) 목록 불러오기

* VBNET 제어판 프린터 목록 불러 오기 예제... 전체 소스 코드 Form1.vb Imports System.Collections Imports System.Drawing.Printing Public Class Form1 Private Sub button1_Click(ByVal sender As System.O..

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET API 를 이용한 마우스 커서 좌표 이동 및 이동한 위치 자동 클릭 이벤트 예제...

 

Main

전체 소스 코드

Form1.vb

 

Imports System.Runtime.InteropServices

Public Class Form1

    'API선언...
    <DllImport("user32")> _
    Shared Function SetCursorPos(ByVal x As Int32, ByVal y As Int32) As Int32
    End Function
    Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, _
                                                              ByVal dx As Integer, _
                                                              ByVal dy As Integer, _
                                                              ByVal cButtons As Integer, _
                                                              ByVal dwExtaInfo As Integer)

    <DllImport("user32")> _
    Public Shared Function GetCursorPos(ByRef pt As Point) As Int32
    End Function

    Const MOUSE_LBUTTONDOWN As Integer = &H2
    Const MOUSE_LBUTTONUP As Integer = &H4

    Dim pi As Point = New Point()

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)

        timer1.Start()

    End Sub

    Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
        MyBase.OnClosed(e)

        timer1.Stop()

    End Sub


    Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
        'Start
        If (IsInt(txtX.Text) = 0) And (IsInt(txtY.Text) = 0) Then
            MessageBox.Show("TextBox Value Not Number !!! Check Please...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtX.Focus()
            Return
        End If

        'Cursor Location
        SetCursorPos(Convert.ToInt32(txtX.Text), Convert.ToInt32(txtY.Text))

        'Mouse Left Button Click
        mouse_event(MOUSE_LBUTTONDOWN, 0, 0, 0, 0) 'Mouse LEFT Down Event
        mouse_event(MOUSE_LBUTTONUP, 0, 0, 0, 0)   'Mouse LEFT UP Event

    End Sub

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
        'Result
        MessageBox.Show("API Mouse Button Click Success...", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
    End Sub

    Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick

        If GetCursorPos(pi) Then

            lblX.Text = pi.X.ToString()
            lblY.Text = pi.Y.ToString()

        End If

    End Sub

    Private Function IsInt(ByVal ob As Object) As Integer

        If ob Is Nothing Then
            Return 0
        End If

        Dim iCheck As Integer = 0
        Dim bCheck As Boolean = Integer.TryParse(ob.ToString(), iCheck)

        If Not bCheck Then
            Return 0
        End If

        Return iCheck


    End Function

End Class

 

 

*예제 결과

 

결과 화면

 

https://kdsoft-zeros.tistory.com/163

 

[VBNET] [API] 마우스 커서 좌표 얻어오기

* VBNET API 를 이용한 마우스 커서 좌표 얻어 오기 예제... 전체 소스 코드 Form1.vb Imports System.Runtime.InteropServices Public Class Form1 'API 선언... <dllimport("user32")> _ Public Shared Functio..</dllimport("user32")>

kdsoft-zeros.tistory.com

 

https://kdsoft-zeros.tistory.com/77

 

[VBNET] string 을 int 및 double 형으로 변환 하기, string null 체크

* string 문자열을 정수 및 실수 형으로 변환 하기 예제... 전체 소스코드 Form1.vb Public Class Form1 Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butto..

kdsoft-zeros.tistory.com

 

https://kdsoft-zeros.tistory.com/164

 

[C#] [API] Mouse Cursor Move And AutoClick Event

* C# API 를 이용한 마우스 커서 이동 및 마우스 버튼 클릭 이벤트 예제... 전체 소스 코드 Form1.cs - API 선언 함수 : mouse_event , GetCursorPos, SetCursorPos using System; using System.Collections.Gene..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# API 를 이용한 마우스 커서 이동 및 마우스 버튼 클릭 이벤트 예제...

 

Main

전체 소스 코드

Form1.cs

 

- API 선언 함수

 : mouse_event , GetCursorPos, SetCursorPos

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace CSharp_MouseClick
{
    public partial class Form1 : Form
    {

        //API 선언
        [DllImport("user32.dll")]
        static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);
        [DllImport("user32.dll")] 
        static extern bool GetCursorPos(ref Point lpPoint);
        [DllImport("user32.dll")] 
        static extern int SetCursorPos(int x, int y);


        //변수 선언...
        private const uint MOUSE_LBUTTONDOWN = 0x0002;   // 왼쪽 마우스 버튼 눌림
        private const uint MOUSE_LBUTTONUP = 0x0004;   // 왼쪽 마우스 버튼 떼어짐

        Point pi = new Point();

        public Form1()
        {
            InitializeComponent();
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            timer1.Start();

        }

        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);

            timer1.Stop();

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Start
            if (IsInt(txtX.Text) == 0 && IsInt(txtY.Text) == 0)
            {
                MessageBox.Show("TextBox Value Not Number !!! Check Please...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtX.Focus();
                return;
            }

            //Cursor Location
            SetCursorPos(Convert.ToInt32(txtX.Text), Convert.ToInt32(txtY.Text));

            //Mouse Left Button Click
            mouse_event(MOUSE_LBUTTONDOWN, 0, 0, 0, 0); //Mouse LEFT Down Event
            mouse_event(MOUSE_LBUTTONUP, 0, 0, 0, 0);   //Mouse LEFT UP Event
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Result
            MessageBox.Show("API Mouse Button Click Success...", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //Mouse Cursor Location
            if (GetCursorPos(ref pi))
            {
                lblX.Text = pi.X.ToString();
                lblY.Text = pi.Y.ToString();
            }
        }


        private int IsInt(object ob)
        { 
            if (ob == null) return 0; 
            
            int iCheck = 0; 
            bool bCheck = int.TryParse(ob.ToString(), out iCheck); 
            
            if (!bCheck) 
            { 
                return 0; 
            } 

            return iCheck;
        }

        

    }
}

 

 

*예제 결과

 

결과 화면

 

https://kdsoft-zeros.tistory.com/162

 

[C#] [API] 마우스 커서 좌표 얻어 오기

* C# API 를 이용한 마우스 커서 좌표 얻어오기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; us..

kdsoft-zeros.tistory.com

 

https://kdsoft-zeros.tistory.com/76

 

[C#] string 을 int 및 double 형으로 변환 하기, null 체크

* string 문자열을 정수 및 실수 형으로 변환 하기 예제... 전체 소스코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;..

kdsoft-zeros.tistory.com

 

https://kdsoft-zeros.tistory.com/165

 

[VBNET] [API] Mouse Cursor Move And AutoClick Event

* VBNET API 를 이용한 마우스 커서 좌표 이동 및 이동한 위치 자동 클릭 이벤트 예제... 전체 소스 코드 Form1.vb Imports System.Runtime.InteropServices Public Class Form1 'API선언... <dllimport("user32"..< p=""> </dllimport("user32"..<>

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET API 를 이용한 마우스 커서 좌표 얻어 오기 예제...

 

Main

 

전체 소스 코드

Form1.vb

 

Imports System.Runtime.InteropServices

Public Class Form1

    'API 선언...
    <DllImport("user32")> _
Public Shared Function GetCursorPos(ByRef pt As Point) As Int32
    End Function

    Dim pi As Point = New Point()

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)

        timer1.Start()

    End Sub

    Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
        MyBase.OnClosed(e)

        timer1.Stop()

    End Sub


    Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick

        '마우스 커서 좌표 읽어 오기...
        GetCursorPos(pi)

        '현재 마우스 커서 좌표 표시...
        lblX.Text = pi.X.ToString()
        lblY.Text = pi.Y.ToString()


    End Sub


End Class

*예제 결과

 

결과 화면

 

https://kdsoft-zeros.tistory.com/162

 

[C#] [API] 마우스 커서 좌표 얻어 오기

* C# API 를 이용한 마우스 커서 좌표 얻어오기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; us..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# API 를 이용한 마우스 커서 좌표 얻어오기 예제...

 

Main

 

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace CSharp_MouseLocation
{
    public partial class Form1 : Form
    {
       
        [DllImport("user32.dll")]
        // GetCursorPos() makes everything possible
        static extern bool GetCursorPos(ref Point lpPoint);

        Point pi = new Point();

        public Form1()
        {
            InitializeComponent();
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            timer1.Start();

        }

        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);

            timer1.Stop();
        }


        private void timer1_Tick(object sender, EventArgs e)
        {
            
            if (GetCursorPos(ref pi))
            {
                lblX.Text = pi.X.ToString();
                lblY.Text = pi.Y.ToString();
            }
        }
    }
}

*예제 결과

 

결과 화면

 

https://kdsoft-zeros.tistory.com/163

 

[VBNET] [API] 마우스 커서 좌표 얻어오기

* VBNET API 를 이용한 마우스 커서 좌표 얻어 오기 예제... 전체 소스 코드 Form1.vb Imports System.Runtime.InteropServices Public Class Form1 'API 선언... <dllimport("user32")> _ Public Shared Functio..</dllimport("user32")>

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET API 를 이용한 한/영 키 상태 값 얻어 오기 예제...

 

Main

 

전체 소스 코드

Form1.vb

 

Imports System.Runtime.InteropServices

Public Class Form1

    'API 선언...
    Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hwnd As Integer) As Integer
    Private Declare Function ImmGetConversionStatus Lib "imm32.dll" (ByVal himc As Integer, ByRef lpdw As Integer, ByRef lpdw2 As Integer) As Integer

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)

        Timer1.Start()

    End Sub

    Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
        MyBase.OnClosed(e)

        Timer1.Stop()

    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Try
            Dim hIMC As Integer
            Dim dwConversion As Integer, dwSentence As Integer
            Dim rc As Integer

            hIMC = ImmGetContext(textBox1.Handle.ToInt32)
            'TextBox 한영키 상태값 얻기...
            rc = ImmGetConversionStatus(hIMC, dwConversion, dwSentence)

            If dwConversion = 0 Then
                label1.Text = "한영키 상태 : 영문"
            Else
                label1.Text = "한영키 상태 : 한글"
            End If
        Catch ex As Exception
            Debug.WriteLine(ex.Message.ToString())
        End Try

    End Sub

End Class

*예제 결과

 

 

 

https://kdsoft-zeros.tistory.com/160

 

[C#] [API] 한/영 키 상태 값 구하기

* C# API 를 이용해 한/영 키 상태 값 구하기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; usin..

kdsoft-zeros.tistory.com

 

반응형

+ Recent posts