C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[65370] Re:Re:SetForgroundWindow 함수가 정의 안되어있는데 어떤걸 include 해야하는건가요???
궁금이 [] 1423 읽음    2011-10-25 12:51
void __fastcall TFormMain::XiBtnSoundClick(TObject *Sender)
{
    HWND  TheWindow, TopWindow;
    DWORD Threadld;
    TheWindow = FindWindow("notepad", NULL);
    if (TheWindow) {
        SetForegroundWindow(TheWindow);
    }
    else  ShellExecute(Handle, "open", "notepad.exe", "", NULL, SW_SHOW);
}
이렇게 했더니 실행되어있는 메모장은 찾아서 위로 올려주는데
실행된 메모장이 없을때 실행 하라는 else 쪽으로는 가지를 않아서
실행된 메모장 없을때 실행을 안하네요...

그리고 FindWindow("notepad", NULL);  에서 "   "  <-- 이 안에는 클래스이름을 어떻게 알죠???


장성호 님이 쓰신 글 :
: 죄송
: 철자가 틀렸군요
:
: SetForegroundWindow 입니다.
: window프로그램하면 기본적인 api이기 때문에 없을리가 없을듯 한데..
:
: winuser.h에 선언되어있습니다.
:
: 그럼..
:
: 궁금이 님이 쓰신 글 :
: : 장성호 님이 쓰신 글 :
: : : 어떤윈도우를 top에 오게 하려면
: : : 제일 위로 올린다고 한다면?
: : : 어플리케이션(window 프로그램)이겠네요
: : :
: : : 대게 어떤 window(Form)을 화면의 맨 앞으로 나오게 하기위해서는
: : :
: : : SetForgroundWindow라는 함수를 이용합니다.
: : :
: : : 중복실행확인
: : : ShellExecute로 process를 실행시키구..
: : : 다시 또 실행하지 않으려면..
: : : 기 실행한 process 가 살아있는지 확인하면 되겠죠
: : :
: : : 방법1.
: : : 이경우는 주로..
: : : Toolhelp32 의
: : : Process32First , Process32Next 등의 함수로 찾을수 있습니다.
: : : Process32First 로 검색해보면 관련예제 엄청 많을것입니다.
: : :
: : : 방법2.
: : :   MainForm의  window-class이름이나 caption을 정확히 알고있으면
: : :   FindWindow로 좀더 쉽게 찾을수도 있습니다.
: : :
: : :
: : :
: : : 주의1
: : : psapi로 찾은 process-Handle과
: : : 해당process의 MainForm의 Window-Handle은 다른것이라는것 기억하시구요
: : :
: : :
: : : 주의2.
: : : 단 SetForgroundWindow 라는 함수를 호출하는 process가
: : : 키입력을 받을수 있는 상태(현재프로그램이 active되어있는 상태)에서만 제대로 동작합니다.
: : :
: : : 걍 Mouse-Click등으로 동작한다면 별 문제없습니다.
: : :
: : : 이상입니다.
: : :
: : : 그럼..
: : :
: : : 궁금이 님이 쓰신 글 :
: : : : 내 프로그램에서 버튼을 누르면 제가 원하는 다른 프로그램을
: : : :
: : : : ShellExecute 로 실행은 시켯는데...
: : : :
: : : : 버튼을 누를때 마다 그 프로그램이 실행되면 안되거든요...
: : : :
: : : : 실행시킨 다른 프로그램을 종료시키고 다시 실행 시키거나
: : : :
: : : : 아니면 실행되어있으면 화면 맨 위로 올리는 방법이 없을까요???

+ -

관련 글 리스트
65363 다른 프로그램을 종료 시키거나 화면 제일 위로 올리는 방법?? 궁금이 1223 2011/10/25
65378     Mutex 이용 중복실행 방지 Julien 1622 2011/10/25
65365     Re:다른 프로그램을 종료 시키거나 화면 제일 위로 올리는 방법?? 장성호 2497 2011/10/25
65368         SetForgroundWindow 함수가 정의 안되어있는데 어떤걸 include 해야하는건가요??? 궁금이 1134 2011/10/25
65369             Re:SetForgroundWindow 함수가 정의 안되어있는데 어떤걸 include 해야하는건가요??? 장성호 1249 2011/10/25
65370                 Re:Re:SetForgroundWindow 함수가 정의 안되어있는데 어떤걸 include 해야하는건가요??? 궁금이 1423 2011/10/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.