비주얼 베이직으로 활성화 되어있는 창 종료
질문: 비주얼 베이직으로 떠 있는 창 종료
2004-08-05 22:22
비주얼 베이직으로 어떤 프로그램을 짜고 있습니다
거의 다 짜가는데요 현재 떠 있는 익스프롤러 창을 전부 종료 시키는 데에서 막혀버렸습니다 ㅠ.ㅠ
어떻게 하면 창을 종료 시킬수 있는지 올려 주셨으면 합니다
답변: re: 비주얼 베이직으로 떠 있는 창 종료
2004-08-06 17:10
아래 제가 작성한 코드입니다.
설명은 주석으로 달아 놓았습니다.
즐프하세요.
Option Explicit
Private Const SW_HIDE = 0
Private Const GW_HWNDNEXT = 2
Private Declare Function GetTopWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetClassname Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Sub Command1_Click()
Dim hExpWin As Long
'최상위 윈도우 핸들을 얻는다.
hExpWin = GetTopWindow(0)
Do
'다음 윈도우를 얻는다.
hExpWin = GetNextWindow(hExpWin, GW_HWNDNEXT)
'클래스명이 익스플로러 이면 제거한다.
'(윈도우 기본 클래스로 제거할 수는 없고 감추면 됩니다.)
'참고 인터넷 익스플로러 클래스명은 "IEFrame" 입니다.
If Classname(hExpWin) = "ExploreWClass" Then
Call ShowWindow(hExpWin, SW_HIDE)
End If
Loop While hExpWin
End Sub
Private Function Classname(ByVal hExpWin As Long) As String
Dim lRet As Long
Dim sClass As String
Const lMaxLen As Long = 256
'윈도우 핸들에서 클래스명을 얻는다.
sClass = String(lMaxLen, 0)
lRet = GetClassname(hExpWin, sClass, lMaxLen)
If lRet Then Classname = Left(sClass, lRet)
End Function
'scrap > Visual Basic' 카테고리의 다른 글
visualbasic 외부파일 연결 (0) | 2011.02.04 |
---|---|
visual basic 으로 cpu 점유율 100% 만들기 (0) | 2011.02.04 |
비주얼베이직을 이용한 컴퓨터종료, 시스템관리자 켜는것좀 도와주세요 (0) | 2011.02.04 |
비주얼베이직 프로세스 종료 (1) | 2011.02.04 |
비주얼 베이직 1000~2000까지 1.5초 간격으로 출력 (0) | 2011.02.04 |