BLOG main image
전체 (276)
[Computer] (42)
[Programming] (62)
[DBMS] (26)
[Operating System] (21)
[Study English] (8)
[For money] (28)
[Interest] (89)
«   2009/11   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
77886 Visitors up to today!
Today 78 hit, Yesterday 46 hit
'예제'에 해당되는 글 3건
[폭주기관차, 2008/01/10 00:40, [Programming]/Visual C++ API/MFC]
BHO 예제를 홈페이지에 쓴지 어언 1년이 다되갑니다~

BHO 간단한 예제 만들기 - 1
BHO 간단한 예제 만들기 - 2

제가 작성한 이 글을 보고 저에게 질문을 주신분이 계셔서
저 스스로도 예제글을 보면서 그대로 따라 해봤는데 몇가지 안되는 점이 발견되어
이 곳에서 추가로 설명드리도록 하겠습니다^^

우선 컴파일을 할때 함수 선언에러가 발생할 경우
StdAfx.h파일에 아래의 헤더 파일을 포함해주시면 되겠습니다.

#include <exdisp.h>
#include <exdispid.h>

사용자 삽입 이미지

에러나면 당황말고 이 두 헤더를 삽입하자


그리고 Build 설정에 따라 익스플로워에 적용이 안되는 경우가 있는데
Build방식Win32Debug 혹은 Win32 Release MinSize 중에 하나로 하셔야 합니다.
Unicode 방식은 사실 제가 테스트를 못해봤습니다^^;;;

사용자 삽입 이미지

Win32 Release MinDependency로 하면 적용이 안된다;;;



안정우님께서 보내주신 문의 메일덕분에 오류를 수정하게 되었네요 감사합니다^^
꼭 좋은 프로그램 만드시길 바랍니다^^

추가로 실행 제대로 되는 예제 파일도 링크 해두겠습니다.
이 파일 링크는 무단으로 링크걸지 말아주세요..
돈 내고 쓰는 계정인데 하루 트래픽 제한이 있답니다..^^;;;
그냥 파일을 받으신 다음에 따로 링크해주세요..^^;;;;

Tester.zip

BHO 예제 파일



Trackback Address :: http://kongmks.cafe24.com/trackback/273
lent | 2008/06/15 08:34 | PERMALINK | EDIT/DEL | REPLY
아... 정말 감사합니다. 다른 책에서 bho보고 따라했는데 안되서 몇일을 고뇌하던중 이걸 발견했네요. release minsize로 하면 되는군요 ㅡㅡ;;;
BlogIcon 폭주기관차 | 2008/06/18 15:29 | PERMALINK | EDIT/DEL
도움이 되셨다니 다행이네요^^

좋은 프로그램 많이 만들어주세요~ ㅋㅋ
pcqud | 2009/03/24 09:43 | PERMALINK | EDIT/DEL | REPLY
여기 예제를 다운받아서 실행해보았습니다...근데...컴퓨터를 꼈다 켜도 동작을 계속하는군요....작업관리자에서 이 프로세서도 안보이고 이넘 어떻게 그만 동작하게 하는지 알려 주세요...ㅜㅜ;;
그리고 여기 기본적인 윈도우의 핸들외에 IE에서 보여지고 있는 페이지의 컴포넌트(즉, 입력란, Text박스나 select박스)의 핸들은 못구하는건가요? 구해 낼수 있다면 약간의 코멘트 부탁드립니다...
계속 들어 와 보겠지만...시간이 괞찬으시면 메일로 날려 주셔도 감사 할것 같습니다.
메일주소는 pcqud@hotmail.com입니다. 수고하십시오...좋은 정보 감사합니다.
BlogIcon 폭주기관차 | 2009/04/02 18:12 | PERMALINK | EDIT/DEL
아 해제 하는 방법은 [시작]-[실행] 에서 이렇게 입력하시면 되구요
regsvr32 /u Test.dll
자세한건 'BHO 간단한 예제 만들기 - 2' 란 글 맨 밑에 나와있어요 ㅋ

음 그리고 보여지고 있는 페이지의 텍스트 박스와 셀렉트 박스의 핸들은 아마 못 가져오구요.
재가 스파이로 핸들 얻어볼려고 했는데 안되더라구요. 대신 m_spWebBrowser2->document 이용해서
HTML 파서 해서 텍스트 박스와 셀렉트 박스를 컨트롤 할 수 있는걸로 알고 있어요^^
저도 이거 BHO실행까지만 확인하고 그 이상 진도를 안나가서리
제가 알고 있는건 여기까지네요..^^;;

답변 메일로도 보내드렸어요^^
Name
Password
Homepage
Secret
[폭주기관차, 2007/03/08 13:00, [Programming]/Visual C++ API/MFC]
static int CALLBACK BrowseCallbakProc(HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM pData)
{
    switch(uMsg)
    {
    case BFFM_VALIDATEFAILED:
        CString strText;
        strText.Format("%s", reinterpret_cast<LPTSTR>(lParam));
        AfxMessageBox(strText);
        break;
    }
    return 0;
};

void CTest3Dlg::OnButton1()
{
    ITEMIDLIST *pildBrowse;
    char pszPathname[MAX_PATH];

    LPITEMIDLIST pidl = NULL;
    BROWSEINFO bInfo;
    ZeroMemory( &bInfo, sizeof(BROWSEINFO) );

    SHPathToPidl( CSIDL_DESKTOP, &pidl );        //이곳에 최상위 루트를 지정하시구요
                         // CSIDL_NETWORK,CSIDL_DESKTOP,CSIDL_RECENT
    bInfo.hwndOwner = GetSafeHwnd();
    bInfo.pidlRoot = pidl;
    bInfo.pszDisplayName = pszPathname;
    bInfo.lpszTitle = "디렉토리를 선택하세요";
    bInfo.lpfn = BrowseCallbakProc; //에디트 박스에서 텍스트를 받아오기 위한 Callback 입니다.
    bInfo.ulFlags = BIF_BROWSEINCLUDEFILES | BIF_EDITBOX | BIF_VALIDATE;
    pildBrowse = ::SHBrowseForFolder(&bInfo);

    if( pildBrowse != NULL )
    {
        SHGetPathFromIDList(pildBrowse, pszPathname);
        CString m_strFolder = (LPCTSTR)pszPathname;
        MessageBox( m_strFolder );
    }
}

HRESULT CTest3Dlg::SHPathToPidl( LPCTSTR szPath, LPITEMIDLIST* ppidl )
{
    LPSHELLFOLDER pShellFolder = NULL;
    OLECHAR wszPath[MAX_PATH] = {0};
    ULONG nCharsParsed = 0;

    HRESULT hr = SHGetDesktopFolder( &pShellFolder );

    if( FAILED(hr) )
        return FALSE;

    MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szPath, -1, wszPath, MAX_PATH );

    hr = pShellFolder->ParseDisplayName( NULL, NULL, wszPath, &nCharsParsed, ppidl, NULL );

    pShellFolder->Release();

    return hr;
}



- 표시 플래그

BIF_BROWSEFORCOMPUTER : 네트워크의 컴퓨터만 선택가능
BIF_BROWSEFORPRINTER : 프린터만 선택가능
BIF_BROWSEINCLUDEFILES : 파일도 표시
BIF_DONTGOBELOWDOMAIN : 네트워크의 컴퓨터를 표시하지 않는다
BIF_EDITBOX : 에디트 박스를 표시한다
BIF_RETURNFSANCESTORS : 네트워크의 컴퓨터만 선택가능
BIF_RETURNONLYFSDIRS : 폴더만 선택가능
BIF_STATUSTEXT : 스테이터스 텍스트를 표시한다
BIF_VALIDATE : 부정 입력시에, BFFM_VALIDATEFAILED 이벤트

출처 : 자바/Java/C/C++ 개발자모임 카페
Trackback Address :: http://kongmks.cafe24.com/trackback/169
Name
Password
Homepage
Secret
[폭주기관차, 2007/02/15 19:54, [DBMS]/Oracle]
ASCII란 함수를 이용하여 널값을 고의로 만들기
 
ASCII( '' )

괄호안의 ''은 작은 따옴표(') 두 개임.

 
<쿼리>
SELECT
    *
FROM
    (
        SELECT
            TO_CHAR(ASCII( '' )) Test
        FROM 
           Dual
    )   A
WHERE
    A.Test = NULL OR
    A.Test = '';

 
 
<결과>
 
0 rows selected.

 
- 검색이 되지 않는다.
 
 
<쿼리>
SELECT
    *
FROM
    (
        SELECT
            TO_CHAR( ASCII( '' ) ) Test
        FROM 
           Dual
    )   A
WHERE
    NVL( A.Test, 'Null' ) = 'Null';

 
 
 
<결과>
 
1 rows selected.

 
- 출력물은 없지만 검색은 됐다.
 
 
본 실험은 Oracle9i에서 테스트 되었습니다.
Trackback Address :: http://kongmks.cafe24.com/trackback/117
Name
Password
Homepage
Secret
*1