선언:
C#
[DllImport("user32")]
public static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow);
VB.NET
<DllImport("user32")> _
Public Shared Function ShowWindow(hWnd As IntPtr, nCmdShow As Int32) As [Boolean]
End Function
사용 예제:
C#
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading;
namespace ApiReference {
class ApiExample {
public enum CmdShow {
Hide,
Normal,
Minimized,
Maximized,
NoActivate,
Show,
Minimize,
MinimizeNoActive,
NA,
Restore,
Default,
ForceMinimize
}
[DllImport("user32")]
public static extern IntPtr FindWindow(String lpClassName, String lpWindowName);
[DllImport("user32")]
public static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow);
public static void Main(string[] args) {
IntPtr hNotepad = FindWindow("Notepad", null);
if ( hNotepad != IntPtr.Zero ) {
// 모든 값을 다 한번씩 돌려봅시다.
for ( Int32 i = 0; i <= 11; i++ ) {
Console.WriteLine("표시 상태: {0}", ((CmdShow) i).ToString());
ShowWindow(hNotepad, i);
Thread.Sleep(2000);
}
} else
Console.WriteLine("메모장이 없습니다.");
Console.ReadKey(true);
}
}
}
VB.NET
Imports System
Imports System.Diagnostics
Imports System.Runtime.InteropServices
Imports System.Threading
Namespace ApiReference
Class ApiExample
Public Enum CmdShow
Hide
Normal
Minimized
Maximized
NoActivate
Show
Minimize
MinimizeNoActive
NA
Restore
[Default]
ForceMinimize
End Enum
<DllImport("user32")> _
Public Shared Function FindWindow(lpClassName As [String], lpWindowName As [String]) As IntPtr
End Function
<DllImport("user32")> _
Public Shared Function ShowWindow(hWnd As IntPtr, nCmdShow As Int32) As [Boolean]
End Function
Public Shared Sub Main(args As String())
Dim hNotepad As IntPtr = FindWindow("Notepad", Nothing)
If hNotepad <> IntPtr.Zero Then
' 모든 값을 다 한번씩 돌려봅시다.
For i As Int32 = 0 To 11
Console.WriteLine("표시 상태: {0}", CType(i, CmdShow).ToString())
ShowWindow(hNotepad, i)
Thread.Sleep(2000)
Next
Else
Console.WriteLine("메모장이 없습니다.")
End If
Console.ReadKey(True)
End Sub
End Class
End Namespace
예제 실행 결과:
매개 변수 설명:
hWnd - 표시 상태를 설정할 윈도우의 핸들을 입력합니다.
nCmdShow - 표시 상태를 입력합니다.
API 설명:
윈도우의 표시 상태를 설정합니다.
참고:
ShowWindow (MSDN)
요구 사항:
클라이언트: Windows 2000 Professional+
서버: Windows 2000 Server+
비고:
IsWindowVisible API를 이용하여 윈도우가 숨겨져 있는지 아닌지의 여부를 알아낼 수 있습니다.
Hide 로 숨겨버린 윈도우는 EnumWindows 또는 FindWindow 로 다시 찾을 수 있습니다.
(하지만 WindowFromPoint 같은 API로는 찾아낼 수 없습니다. 보이지 않기 때문입니다)
'API Reference' 카테고리의 다른 글
56. CreateFile (2) | 2015.09.14 |
---|---|
55. AccessMask (0) | 2015.09.13 |
53. FindWindow (1) | 2015.01.04 |
52. CommandLineToArgvW (0) | 2014.12.17 |
51. GetProcessMemoryInfo (0) | 2014.12.12 |