▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

폼 안에서 다른 프로그램을 실행시키는 소스

VB 조회 수 6877 추천 수 0 2005.02.02 18:58:40
뭉충닷컴 *.154.217.34
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Const GW_HWNDNEXT = 2
Dim mWnd As Long
Function InstanceToWnd(ByVal target_pid As Long) As Long
    Dim test_hwnd As Long, test_pid As Long, test_thread_id As Long
    'Find the first window
    test_hwnd = FindWindow(ByVal 0&, ByVal 0&)
    Do While test_hwnd <> 0
        'Check if the window isn't a child
        If GetParent(test_hwnd) = 0 Then
            'Get the window's thread
            test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid)
            If test_pid = target_pid Then
                InstanceToWnd = test_hwnd
                Exit Do
            End If
        End If
        'retrieve the next window
        test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT)
    Loop
End Function
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim Pid As Long
    'Lock the window update
    LockWindowUpdate GetDesktopWindow
    'Execute notepad.Exe
    Pid = Shell("notepad.exe", vbNormalFocus)
    If Pid = 0 Then MsgBox "Error starting the app"
    'retrieve the handle of the window
    mWnd = InstanceToWnd(Pid)
    'Set the notepad's parent
    SetParent mWnd, Me.hwnd
    'Put the focus on notepad
    Putfocus mWnd
    'Unlock windowupdate
    LockWindowUpdate False
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'Unload notepad
    DestroyWindow mWnd
    'End this program
    TerminateProcess GetCurrentProcess, 0
End Sub

출처 : http://vbpp.net
위 소스는 메모장을 여는 소스입니다.

댓글 '2'

왜안돼

2013.06.26 09:27:46
*.40.138.134

이거 되는사람........?

뭉충닷컴

2013.06.27 21:58:34
*.141.190.200

윈도우 2000, XP 시절 소스라서 현재 OS에서는 안될수도 있습니다.

그리고..혹시 vb.net 랑 헷갈리신건 아니신지요? 위 소스는 vb6.0기준 소스 입니다.

문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
26 VB 변수 명명법 (ms 계열 기준) 뭉충닷컴 2005-02-17 6745
25 VB 열려진 모든 폼 한꺼번에 종료 뭉충닷컴 2005-02-03 6416
24 VB 폼의 제목표시줄 없이 이동 시키는 방법 (폼 이동) 뭉충닷컴 2005-02-03 6375
» VB 폼 안에서 다른 프로그램을 실행시키는 소스 [2] 뭉충닷컴 2005-02-02 6877
22 VB PictureBox 에 폼 집어넣기 & 화면 분할바 이용하는 소스 file [2] 뭉충닷컴 2005-02-02 7635
21 VB MDI 폼에서 편리한 Child 폼 띄우기 모듈. 뭉충닷컴 2005-02-02 8340
20 VB xp 스타일 메뉴 만들기 file 뭉충닷컴 2005-02-02 6374
19 VB 폼 모양을 이리저리 바꿔주는 코드 file 뭉충닷컴 2005-02-02 6576
18 VB 서로 다른 엑셀 파일의 엑셀 시트 저장 file 뭉충닷컴 2005-01-17 9066
17 VB 로그파일 남기는 함수.. -_-; 뭉충닷컴 2004-10-08 6764
16 VB dll, ocx 파일 쉽게 등록, 해제하는 레지스트리 파일 file 뭉충닷컴 2004-07-06 9009
15 VB 비베로 만든 mschart 프로그램 소스 file 김발똥 2004-05-13 13384
14 VB 기구한놈이 준 비베로 만든 이미지 뷰어 프로그램 소스 뭉충닷컴 2004-05-07 6938
13 VB 모듈을 이용한 스크롤바 사용예제 뭉충닷컴 2004-05-07 6511
12 VB MSN 으로 메시지 보내가 예제 뭉충닷컴 2004-04-28 6048
11 VB 간단한 자동 로그인 프로그램 [1] 뭉충닷컴 2004-04-27 6770
10 VB 아래의 트리뷰 + 탭이동 관련 소스 file [1] 뭉충닷컴 2004-04-20 6286
9 VB 트리뷰(TreeView) 사용하기 (마우스 오른쪽 버튼으루 추가/삭제) file 뭉충닷컴 2004-04-19 10871
8 VB 스크롤바 이용하기 예제 뭉충닷컴 2004-04-19 6329
7 VB 프로그램 시작시 시작화면 보이기 뭉충닷컴 2004-04-19 6200