2024년 6월 8일 토요일

VB.NET에서 Windows API를 사용하여 폼의 제목 표시줄 동적으로 제어하기

 Imports System.Runtime.InteropServices


Public Class Form1


    ' 윈도우 스타일을 얻거나 설정하기 위한 상수 정의

    Private Const GWL_STYLE As Integer = -16

    Private Const WS_CAPTION As Integer = &HC00000

    Private Const SM_CYCAPTION As Integer = 4


    ' GetWindowLong 함수 선언: 윈도우 스타일을 가져옴

    <DllImport("user32.dll", SetLastError:=True)>

    Private Shared Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer

    End Function


    ' SetWindowLong 함수 선언: 윈도우 스타일을 설정함

    <DllImport("user32.dll", SetLastError:=True)>

    Private Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer

    End Function


    ' GetSystemMetrics 함수 선언: 시스템 메트릭스를 가져옴

    <DllImport("user32.dll")>

    Private Shared Function GetSystemMetrics(ByVal nIndex As Integer) As Integer

    End Function


    ' 타이틀바 높이를 저장할 변수

    Private cycap As Integer


    ' 폼이 로드될 때 실행되는 코드

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

        ' 버튼의 텍스트를 "Nocaption"으로 설정

        btnToggleCaption.Text = "Nocaption"

        ' 타이틀바의 높이를 가져와서 cycap 변수에 저장

        cycap = GetSystemMetrics(SM_CYCAPTION)

    End Sub


    ' 폼이 닫힐 때 실행되는 코드

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)

        ' 현재 윈도우 스타일을 가져옴

        Dim style As Integer = GetWindowLong(Me.Handle, GWL_STYLE)


        ' 버튼의 텍스트가 "Caption"이 아닌 경우, 타이틀바를 다시 보여줌

        If btnToggleCaption.Text <> "Caption" Then

            SetWindowLong(Me.Handle, GWL_STYLE, style Or WS_CAPTION)

        End If

    End Sub


    ' 버튼 클릭 시 실행되는 코드

    Private Sub btnToggleCaption_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToggleCaption.Click

        ' 현재 윈도우 스타일을 가져옴

        Dim style As Integer = GetWindowLong(Me.Handle, GWL_STYLE)


        ' 버튼의 텍스트가 "Nocaption"인 경우, 타이틀바를 없앰

        If btnToggleCaption.Text = "Nocaption" Then

            btnToggleCaption.Text = "Caption"

            SetWindowLong(Me.Handle, GWL_STYLE, style And Not WS_CAPTION)

            Me.Height -= cycap

        Else

            ' 버튼의 텍스트가 "Caption"인 경우, 타이틀바를 다시 보여줌

            btnToggleCaption.Text = "Nocaption"

            SetWindowLong(Me.Handle, GWL_STYLE, style Or WS_CAPTION)

            Me.Height += cycap

        End If

    End Sub


End Class


2024년 6월 7일 금요일

복구 파티션 삭제 및 재할당 방법

 

복구 파티션 삭제 및 재할당 방법

  1. 디스크 관리 도구 사용 (Windows):

    • 디스크 관리 도구 실행: Win + X 키를 누르고 "디스크 관리(Disk Management)"를 선택합니다.
    • 복구 파티션 찾기: 디스크 목록에서 복구 파티션을 찾습니다. 일반적으로 "복구 파티션" 또는 "Recovery Partition"으로 표시됩니다.
    • 복구 파티션 삭제: 복구 파티션을 마우스 오른쪽 버튼으로 클릭하고 "삭제"를 선택합니다. 복구 파티션이 삭제되면 해당 공간이 할당되지 않은 공간으로 표시됩니다.
    • 새 파티션 만들기: 할당되지 않은 공간을 마우스 오른쪽 버튼으로 클릭하고 "새 단순 볼륨(New Simple Volume)"을 선택하여 새로운 파티션을 만들고 포맷합니다.
  2. 명령어 사용 (Diskpart):

    • 명령 프롬프트 실행: Win + R 키를 누르고 "cmd"를 입력하여 명령 프롬프트를 엽니다.
    • Diskpart 실행: diskpart를 입력하고 Enter를 누릅니다.
    • 디스크 목록 보기: list disk 명령을 입력하고 Enter를 눌러 디스크 목록을 확인합니다.
    • 디스크 선택: select disk X (여기서 X는 보조 하드 드라이브의 번호) 명령을 입력합니다.
    • 파티션 목록 보기: list partition 명령을 입력하여 파티션 목록을 확인합니다.
    • 복구 파티션 선택: select partition Y (여기서 Y는 복구 파티션의 번호) 명령을 입력합니다.
    • 파티션 삭제: delete partition override 명령을 입력하여 복구 파티션을 삭제합니다.
  • 파티션 삭제가 안 되면 Diskpart 명령을 사용하세요.
-


Sidewinder


World


FishMusic


LaughingBaby