반응형

* 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_HangulKeyState
{
    public partial class Form1 : Form
    {
        //API 선언
        [DllImport("imm32.dll")]
        private static   extern IntPtr ImmGetContext(IntPtr hwnd);
        [DllImport("imm32.dll")]
        private static extern bool ImmGetConversionStatus(IntPtr himc, ref int lpdw, ref int lpdw2);


        public Form1()
        {
            InitializeComponent();
            timer1.Start();
        }

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

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                IntPtr hIMC;
                int dwConversion = 0;
                int dwSentence = 0;
                bool bCheck;

                hIMC = ImmGetContext(textBox1 .Handle);
                //TextBox 한영키 상태값 얻기...
                bCheck = ImmGetConversionStatus(hIMC, ref dwConversion, ref dwSentence);

                if (dwConversion == 0)
                {
                    label1.Text = "한영키 상태 : 영문";
                }
                else
                {
                    label1.Text = "한영키 상태 : 한글";
                }

            }
            catch
            {}
        }
    }
}

*예제 결과

 

 

 

 

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

 

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

* VBNET API 를 이용한 한/영 키 상태 값 얻어 오기 예제... 전체 소스 코드 Form1.vb Imports System.Runtime.InteropServices Public Class Form1 'API 선언... Private Declare Function ImmGetContext Lib "i..

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET 윈도우 폼(Window Form) 화면 그대로 프린트(Print) 하기 예제...

 

Main

 

- 화면 구성 : Panel , Listview, Label, Line, GroupBox, printForm

 

위 그림처럼 화면 구성에 printform 을 사용 하기 위해서는 Visual Basic PowerPack dll 이 필요합니다.

 

 

전체 소스 코드

Form1.vb

 

Public Class Form1

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

        ListView1.Items.Clear()

        For iCount As Integer = 1 To 20
            Dim lvi As ListViewItem = New ListViewItem()
            lvi.Text = iCount.ToString()
            lvi.SubItems.Add("TEST " + iCount.ToString())

            ListView1.Items.Add(lvi)
        Next

        MyBase.OnLoad(e)
    End Sub


    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

        'Enter Key Input...
        If e.KeyCode = Keys.Enter Then
            'Form Print 
            PrintForm1.PrinterSettings.DefaultPageSettings.Landscape = True
            PrintForm1.PrinterSettings.DefaultPageSettings.Margins = New System.Drawing.Printing.Margins(50, 50, 50, 50)
            PrintForm1.Print()

        End If

    End Sub
End Class

 

*예제 결과

 

위 그림 처럼 가상 프린트에 폼(Form) 화면이 그대로 인쇄된 모습을 볼 수 있습니다.

 

 

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

 

[C#] 윈도우 폼(Window Form) - 폼(Form) 화면 그대로 프린트(Print)

* C# 윈도우 폼(Window Form) 화면 그대로 프린트(Print) 하기 예제... - 화면 구성 : Panel , Listview, Label, Line, GroupBox, printForm 위 그림처럼 화면 구성에 printform 을 사용 하기 위해서는 Visual Ba..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# 윈도우 폼(Window Form) 화면 그대로 프린트(Print) 하기 예제...

 

Main

- 화면 구성 : Panel , Listview, Label, Line, GroupBox, printForm

 

위 그림처럼 화면 구성에 printform 을 사용 하기 위해서는 Visual Basic PowerPack dll 이 필요합니다.

 

 

 

전체 소스 코드

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;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            ListView1.Items.Clear();

            for (int iCount = 1; iCount  <= 20; iCount++)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = iCount.ToString();
                lvi.SubItems.Add("TEST " + iCount.ToString());
                ListView1.Items.Add(lvi);
            }
        }
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            //Enter Key Input...
            if (e.KeyCode == Keys.Enter)
            {
                //Form Print 
                printForm1.PrinterSettings.DefaultPageSettings.Landscape = true;
                printForm1.PrinterSettings.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(50, 50, 50, 50);
                printForm1.Print();
            }
        }

    }
}

 

*예제 결과

 

위 그림 처럼 가상 프린트에 폼(Form) 화면이 그대로 인쇄된 모습을 볼 수 있습니다.

 

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

 

[VBNET] 윈도우 폼(Window Form) - 폼(Form) 화면 그대로 프린트(Print)

* VBNET 윈도우 폼(Window Form) 화면 그대로 프린트(Print) 하기 예제... - 화면 구성 : Panel , Listview, Label, Line, GroupBox, printForm 위 그림처럼 화면 구성에 printform 을 사용 하기 위해서는 Visual..

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET WMI 를 이용한 네트워크 IP 및 Subnet, Gateway 설정 하기 예제...

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

 

Main

전체 소스 코드

Form1.vb

 

Imports System.Management

Public Class Form1

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click

        Dim objMC As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim objMOC As ManagementObjectCollection = objMC.GetInstances()

        For Each MO As ManagementObject In objMOC

            If Not CType(MO("IPEnabled"), Boolean) Then
                Continue For
            End If

            Try
                Dim objNewIP As ManagementBaseObject = Nothing
                Dim objSetIP As ManagementBaseObject = Nothing
                Dim objNewGate As ManagementBaseObject = Nothing
                objNewIP = MO.GetMethodParameters("EnableStatic")
                objNewGate = MO.GetMethodParameters("SetGateways")

                'Set Gateway
                objNewGate("DefaultIPGateway") = New String() {txtGateway.Text}
                objNewGate("GatewayCostMetric") = New Integer() {1}
                'Set IP
                objNewIP("IPAddress") = New String() {txtIP.Text}
                'Set Subnet
                objNewIP("SubnetMask") = New String() {txtSubnet.Text}

                objSetIP = MO.InvokeMethod("EnableStatic", objNewIP, Nothing)
                objSetIP = MO.InvokeMethod("SetGateways", objNewGate, Nothing)

                objSetIP = MO.InvokeMethod("EnableStatic", objNewIP, Nothing)
                objSetIP = MO.InvokeMethod("SetGateways", objNewGate, Nothing)

                MessageBox.Show("Updated IPAddress, SubnetMask and Default Gateway!")
            Catch ex As Exception
                MessageBox.Show("Unable to Set IP : " + ex.Message)
            End Try

        Next


    End Sub

End Class

*예제 결과

 

윈도우 시작 -> 실행 -> cmd -> ipconfig 로 네트워크 IP 확인 가능

 

변경하기 전 IP 

 



변경 후 네트워크 IP

 

 

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

 

[VBNET] [WMI] 네트워크 IP 및 Subnet, Gateway 얻어오기

*VBNET WMI 를 이용한 네트워크 IP 및 Subnet, Gateway 얻어 오기 예제... 전체 소스 코드 Form1.vb Imports System.Management Public Class Form1 Private Sub button1_Click(ByVal sender As System.Object, B..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# WMI 를 이용한 네트워크 IP 및 Subnet, Gateway Set 예제...

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

 

Main

전체 소스 코드

From1.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_SetIPAndSubnetGateway
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();

            foreach (ManagementObject mo in objMOC)
            {
                if (!(bool)mo["IPEnabled"])
                {
                    continue;
                }
                try
                {
                    ManagementBaseObject objNewIP = null;
                    ManagementBaseObject objSetIP = null;
                    ManagementBaseObject objNewGate = null;
                    objNewIP = mo.GetMethodParameters("EnableStatic");
                    objNewGate = mo.GetMethodParameters("SetGateways");

                    //Set Gateway
                    objNewGate["DefaultIPGateway"] = new string[] { txtGateway.Text  };
                    objNewGate["GatewayCostMetric"] = new int[] { 1 };
                    //Set IP
                    objNewIP["IPAddress"] = new string[] { txtIP.Text  };
                    //Set Subnet
                    objNewIP["SubnetMask"] = new string[] { txtSubnet.Text  };
                    objSetIP = mo.InvokeMethod("EnableStatic", objNewIP, null);
                    objSetIP = mo.InvokeMethod("SetGateways", objNewGate, null);

                    MessageBox.Show("Updated IPAddress, SubnetMask and Default Gateway!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Unable to Set IP : " + ex.Message);
                }

            }

        }
    }
}

*예제 결과

 

윈도우 시작 -> 실행 -> cmd -> ipconfig 로 네트워크 IP 확인 가능

 

변경하기 전 IP 
변경 후 네트워크  IP 및 Subnet, Gateway 

 

 

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

 

[C#] [WMI] 네트워크 IP 및 Subnet , Gateway 얻어오기

* C# WMI 를 이용한 네트워크 IP 및 Subnet, Gateway 얻어 오기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sys..

kdsoft-zeros.tistory.com

 

반응형
반응형

*VBNET WMI 를 이용한 네트워크 IP 및 Subnet, Gateway 얻어 오기 예제...

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

 

Main

전체 소스 코드

Form1.vb

 

Imports System.Management

Public Class Form1

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click

        Dim MC As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim MOC As ManagementObjectCollection = MC.GetInstances()

        For Each MO As ManagementObject In MOC

            'nothing 아니면...
            If Not MO("IPAddress") Is Nothing Then

                If TypeOf MO("IPAddress") Is Array Then
                    'IP 및 Subnet, Gateway String 배열로 변환...
                    Dim address() As String = CType(MO("IPAddress"), String())
                    Dim subnets() As String = CType(MO("IPSubnet"), String())
                    Dim gateways() As String = CType(MO("DefaultIPGateway"), String())

                    '모두 nothing 이 아니면...
                    If (Not address Is Nothing) And (Not subnets Is Nothing) And (Not gateways Is Nothing) Then

                        '화면에 표시...
                        lblIP.Text = address(0)
                        lblSubnet.Text = subnets(0)
                        lblGateway.Text = gateways(0)

                    End If


                End If
                
            End If

        Next


    End Sub

End Class

*예제 결과

 

결과화면

 

윈도우 시작 -> 실행 -> cmd -> ipconfig 를 입력 하시면 위 그림과 같이 네트워크 IP 를 확인 하실 수 있습니다.

 

 

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

 

[C#] [WMI] 네트워크 IP 및 Subnet , Gateway 얻어오기

* C# WMI 를 이용한 네트워크 IP 및 Subnet, Gateway 얻어 오기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sys..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# WMI 를 이용한 네트워크 IP 및 Subnet, Gateway 얻어 오기 예제...

- 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_GetIPAndDefaultIPGateway
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection MOC = MC.GetInstances();

            foreach (ManagementObject MO in MOC)
            {
                if (MO["IPAddress"] != null)
                {
                    if (MO["IPAddress"] is Array)
                    {
                        //IP 및 Subnet, Gatway String 배열로 변환...
                        string[] addresses = (string[])MO["IPAddress"];
                        string[] subnets = (string[])MO["IPSubnet"];
                        string[] gateways = (string[])MO["DefaultIPGateway"];

                        //모두 null 이 아니면...
                        if (addresses != null && subnets != null && gateways != null)
                        {
                            lblIP.Text = addresses[0];
                            lblSubnet.Text = subnets[0];
                            lblGateway.Text = gateways[0];
                        }
                    }
                    else
                    {
                        
                    }
                }


            }


        }
    }
}

 

*예제 결과

 

결과화면

윈도우 시작 -> 실행 -> cmd -> ipconfig 를 입력 하시면 위 그림과 같이 네트워크 IP 를 확인 하실 수 있습니다.

 

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

 

[VBNET] [WMI] 네트워크 IP 및 Subnet, Gateway 얻어오기

*VBNET WMI 를 이용한 네트워크 IP 및 Subnet, Gateway 얻어 오기 예제... 전체 소스 코드 Form1.vb Imports System.Management Public Class Form1 Private Sub button1_Click(ByVal sender As System.Object, B..

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET WMI 를 이용한 하드 디스크 온도 체크 예제 (HDD Temperature)

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

 

Main

 

전체 소스 코드

Form1.vb

Imports System.Management
Imports Microsoft.Win32
Imports System.Collections

Public Class Form1

    Dim tmr As System.Windows.Forms.Timer = New System.Windows.Forms.Timer()


    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        '타이머가 도는 시간 설정
        tmr.Interval = 1000 '1초
        '타이머 이벤트 등록
        AddHandler tmr.Tick, AddressOf Timer_Tick
        MyBase.OnLoad(e)
    End Sub

    Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
        tmr.Stop()
        '메모리 해제
        tmr = Nothing
        '메모리 정리
        GC.Collect()
        MyBase.OnClosed(e)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '타이머 시작
        tmr.Start()
    End Sub

    Sub Timer_Tick()
        HDDTemperatrue()
    End Sub

    Public Sub HDDTemperatrue()
        Dim diskTemperature As String = "MSStorageDriver_ATAPISmartData"

        Try
            Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher("root\WMI", "Select * From " + diskTemperature)

            Dim mo As System.Management.ManagementObject
            For Each mo In mos.Get()
                Dim data() As Byte = CType(mo.GetPropertyValue("VendorSpecific"), Byte())
                diskTemperature = data(3).ToString()
                Label1.Text = diskTemperature.ToString()
            Next
        Catch
            diskTemperature = ""
        End Try
    End Sub


End Class

*예제 결과

 

결과화면

 

 

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

 

[C#] [WMI] HDD Temperature (하드디스크 온도 체크)

* C# WMI 를 이용한 하드 디스크 온도 체크 예제 (HDD Temperature) 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System...

kdsoft-zeros.tistory.com

 

반응형

+ Recent posts