C++Builder  |  Delphi  |  Kylix  |  Turbo-C  |  .NET  |  JBuilder  |  Together  |  FireBird
C++Builder Programming Forum º¼·£µåÆ÷·³ BorlandForum
 °æ°í! °Ô½Ã¹° ÀÛ¼ºÀÚÀÇ »çÀü Çã¶ô¾ø´Â ¸ÞÀÏÁÖ¼Ò ÃßÃâÇàÀ§ Àý´ë ±ÝÁö
C++ºô´õ Æ÷·³
Q & A
FAQ
ÆÁ&Æ®¸¯
°­ÁÂ/¹®¼­
ÀÚ·á½Ç
ÄÄÆ÷³ÍÆ®/¶óÀ̺귯¸®
¸Þ½ÅÀú ÇÁ·ÎÁ§Æ®
º¼·£µåÆ÷·³ Ȩ
Çìµå¶óÀÎ ´º½º
IT ´º½º
°øÁö»çÇ×
ÀÚÀ¯°Ô½ÃÆÇ
ÇØÇÇ ºê·¹ÀÌÅ©
°øµ¿ ÇÁ·ÎÁ§Æ®
±¸ÀÎ/±¸Á÷
ȸ¿ø ÀåÅÍ
°ÇÀÇ»çÇ×
¿î¿µÁø °Ô½ÃÆÇ
ȸ¿ø ¸Þ´º
ºÏ¸¶Å©
º¼·£µåÆ÷·³ ±¤°í ¸ðÁý

C++ºô´õ Q&A
C++Builder Programming Q&A
[53233] Re:Re:Re:EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù
À强ȣ [nasilso] 824 ÀÐÀ½    2008-04-23 15:57
¿ª½Ã ÇØ´äÀº ¾Æ´Õ´Ï´Ù¸¸...
WindowFromProcessID µÚ¿¡
GetForegroundWindow ÇÔ¼ö·Î ãÀº HWND¿Í IEFrameÀÌ °°À»¶§±îÁö ±â´Ù¸®°í
±×ÈÄ¿¡ SleepÀ» 2ÃÊ Áִϱî Ç×»ó ã¾ÆÁö´õ±º¿ä
Á¦ pc¿¡¼­´Â

Áï IEFrameÀÌ ActiveµÈÈÄ¿¡ ÇÑ 2ÃÊ Á¤µµ¸é "Internet Explorer_Server"±îÁö °ÅÀÇ ÃʱâÈ­ µÈ´Ù°í º¸°í....

¾Æ·¡ ÄÚµåó·³...

               WaitForInputIdle(m_pi.hProcess, INFINITE);
                if(m_pi.dwProcessId != 0) {
                    HWND hWndChild = NULL;
                    HWND hwnd = WindowFromProcessID(m_pi.dwProcessId);
                    while(hwnd)
                    {
                        HWND bAtvWnd=GetForegroundWindow();
                        if(hwnd==bAtvWnd)break;
                        Sleep(10);
                    };
                    Sleep(2000);

                    EnumChildWindows( hwnd, (WNDENUMPROC)EnumChildProc, (LPARAM)&hWndChild );

±×·³...


¿ÍÀϵå¿ÀŰµå ´ÔÀÌ ¾²½Å ±Û :
: Àúµµ SleepÀ» ³Ö¾î Å×½ºÆ® ÇØºÃ´Âµ¥ 1000À» ÁÖ´õ µÉ¶§ ÀÖ°í
: ¾ÈµÉ¶§ ÀÖ°í 3000À»Á൵ µÉ¶§ ÀÖ°í ¾ÈµÉ¶§ ÀÖ°í Çϳ׿ä..¹Ìí ¤Ñ,.¤Ñ;
:
: À强ȣ ´ÔÀÌ ¾²½Å ±Û :
: : Á¤È®ÇÑ ÇØ´äÀº ¾Æ´Õ´Ï´Ù¸¸
: :
: : Âü°í·Î..
: :
: : WaitForInputIdle(m_pi.hProcess, INFINITE); //¿©±â¿¡¼­¿ä
: : ÇÁ·Î¼¼¼­°¡ ¿ÏÀüÄ¡ ÃʱâÈ­ µÇ¾ú´Ù°í ÇØ¼­
: : "Internet Explorer_Server" ±îÁö »ý¼ºµÇ¾ú´Ù´Â°ÍÀº ¾Æ´Ñ°Í °°½À´Ï´Ù.
: :
: : Á¦ pc¿¡¼± WaitForInputIdleµÚ¿¡ Sleep(2000); Á¤µµ Áִϱî ã¾ÆÁö´øµ¥...
: :
: :        WaitForInputIdle(m_pi.hProcess, INFINITE);
: :        Sleep(2000);
: :
: : ...
: :
: : ±×·³..
: :
: : ¿ÍÀϵå¿ÀŰµå ´ÔÀÌ ¾²½Å ±Û :
: : : ¾È³çÇϼ¼¿ä. Ç×»ó ÁÁÀº ³»¿ëµé Àߺ¸°í ÀÖ´Â ´«ÆÃÁ·ÀÔ´Ï´Ù.
: : :
: : : ´Ù¸§ÀÌ ¾Æ´Ï¶ó ¿ä»ó(?) ÇÑ Çö»óÀÌ À־ ±ÛÀ» ¾¹´Ï´Ù.
: : :
: : : Á¦°¡ ÇÁ·Î±×·¥À» Çϳª ¸¸µé¾ú½À´Ï´Ù.
: : :
: : : ÀÛµ¿ ¼ø¼­´Â
: : :
: : : 1. ÇÁ·Î±×·¥ ½ÇÇà
: : : 2. IE¸¦ ½ÇÇà
: : : 3. ÇÁ·Î±×·¥¿¡¼­ ½ÇÇà ÇÑ  IEÀÎÁö ÆÇ´Ü.
: : : 4. ½ÇÇà ÇÑ IEÀÇ ³»ºÎ¿¡ ÀÖ´Â "Internet Explorer_Server" Ŭ·¡½º¸íÀ» °¡Áö°í ÀÖ´Â À©µµ¿ì ÇÚµéÀ» ã´Â´Ù.
: : :
: : : ÀÌ·± °Çµ¥¿ä.
: : :
: : : ¾Æ·¡ ¼Ò½º¿¡µµ ÀÖ½À´Ï´Ù
: : :
: : : (1)                    HWND hwnd = WindowFromProcessID(m_pi.dwProcessId);
: : : (2)                    EnumChildWindows( hwnd, (WNDENUMPROC)EnumChildProc, (LPARAM)&hWndChild );
: : :
: : : ±×·±µ¥ (1)°ú (2)¸¦ ¹Ù·Î ½ÇÇà ½Ã۸é ãÁö¸¦ ¸øÇϱ¸¿ä.
: : :
: : : (2)¿¡ ºê·¹ÀÌÅ© °É¾ú´Ù°¡ ½ÇÇà½Ã۸é ã´Â Çö»óÀÌ ¹ß»ýÇÕ´Ï´Ù.
: : :
: : : Áß°£¿¡ ¾î¶² ´ë±â È¿°ú°¡ ÀÖ´Â °É ³Ö¾î¾ß µÇ´Â°ÇÁö ¿ø·¡ ±×¸®ÇؾߵǴ°ÇÁö...
: : :
: : : ÀоîÁּż­ °¨»çÇÕ´Ï´Ù.
: : :
: : :
: : :
: : : ¼Ò½ºÀÔ´Ï´Ù.
: : : //---------------------------------------------------------------------------
: : :
: : : #include <vcl.h>
: : : #pragma hdrstop
: : :
: : : #include <mshtml.h>
: : : #include <atl\atlbase.h>
: : : #include <oleacc.h>
: : : #include   <Exdisp.h>
: : :
: : : typedef struct _PIDANDHWND{
: : :    DWORD pID;
: : :    HWND  hWindow;
: : : } PIDANDHWND;
: : :
: : : PROCESS_INFORMATION m_pi;
: : :
: : : #include "Unit1.h"
: : :
: : : //---------------------------------------------------------------------------
: : : #pragma package(smart_init)
: : : #pragma resource "*.dfm"
: : : TForm1 *Form1;
: : : //---------------------------------------------------------------------------
: : : //---------------------------------------------------------------------------
: : : BOOL CALLBACK EnumWindowsProc(HWND hWindow, PIDANDHWND *lParam)
: : : {
: : :     char sClass[513] = { 0, };
: : :     char sCaption[1025] = { 0, };
: : :
: : :     GetClassName( hWindow, sClass, 512 );
: : :
: : :     if( strcmp( sClass, "IEFrame" ) == 0 )
: : :     {
: : :         lParam->hWindow = hWindow;
: : :         return FALSE;
: : :     }
: : :     else
: : :         return TRUE;
: : :
: : : }
: : :
: : : BOOL CALLBACK EnumChildProc( HWND hWnd, LPARAM lParam )
: : : {
: : :     TCHAR    buf[100];
: : :
: : :     ::GetClassName( hWnd, (LPTSTR)&buf, 100 );
: : :     if ( _tcscmp( buf, _T("Internet Explorer_Server") ) == 0 )
: : :     {
: : :         *(HWND*)lParam = hWnd;
: : :         return FALSE;
: : :     }
: : :     else
: : :         return TRUE;
: : : }
: : :
: : : HWND WindowFromProcessID(DWORD pID)
: : : {
: : :     PIDANDHWND Param;
: : :
: : :     Param.pID     = pID;
: : :     Param.hWindow = 0;
: : :     EnumWindows((WNDENUMPROC)EnumWindowsProc, (LPARAM)&Param);
: : :     return Param.hWindow;
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::FormCreate(TObject *Sender)
: : : {
: : :     STARTUPINFO si;
: : :
: : :     GetStartupInfo(&si);
: : :
: : :     si.cb            = sizeof(STARTUPINFO);
: : :     si.dwFlags       = STARTF_USESHOWWINDOW;
: : :     si.wShowWindow   = SW_SHOW;
: : :
: : :     HKEY hkey;
: : :     LONG ReturnValue=RegOpenKeyEx(HKEY_LOCAL_MACHINE
: : :                ,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\IEXPLORE.EXE"
: : :               ,0, KEY_ALL_ACCESS,&hkey);
: : :
: : :     if(ReturnValue==ERROR_SUCCESS)
: : :     {
: : :         DWORD dwType;
: : :         DWORD dwSize = 200;
: : :         char szString[255];
: : :
: : :         LONG lReturn = RegQueryValueEx (hkey, "", NULL,&dwType, (BYTE *)szString, &dwSize);
: : :         if(lReturn == ERROR_SUCCESS )
: : :         {
: : :             RegCloseKey(hkey);
: : :             String str;
: : :
: : :             str.sprintf("%s", szString);
: : :             str += " http://www.yahoo.or.kr";
: : :
: : :             BOOL bRet = CreateProcess (NULL, str.c_str(), NULL, NULL, true, NORMAL_PRIORITY_CLASS
: : :                                                          , NULL, NULL, &si, &m_pi);
: : :             if(bRet == TRUE) {
: : :                 WaitForInputIdle(m_pi.hProcess, INFINITE);
: : :
: : :                 if(m_pi.dwProcessId != 0) {
: : :                     HWND hWndChild = NULL;
: : :                     HWND hwnd = WindowFromProcessID(m_pi.dwProcessId);
: : :                     EnumChildWindows( hwnd, (WNDENUMPROC)EnumChildProc, (LPARAM)&hWndChild );
: : :                     if(hWndChild != 0) {
: : :                         MessageBox(NULL, "IE find", "", MB_OK);
: : :                     }
: : :                 }
: : :             }
: : :         }
: : :     }
: : :     else {
: : :         MessageBox(NULL, "Error", "", MB_OK);
: : :     }
: : : }
: : : //---------------------------------------------------------------------------

+ -
ÀÌÀü±Û:  Re:Re:EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù
´ÙÀ½±Û:  Re:Re:Re:Re:EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù

°ü·Ã ±Û ¸®½ºÆ®
53226 EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù ¿ÍÀϵå¿À۵å 1104 2008-04-23
53229     Re:EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù À强ȣ 892 2008-04-23
53230         Re:Re:EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù ¿ÍÀϵå¿À۵å 854 2008-04-23
53233             Re:Re:Re:EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù À强ȣ 824 2008-04-23
53243                 Re:Re:Re:Re:EnumWindows½ÇÇà ÈÄ EnumChildWindows½ÇÇà ½Ã ¿À·ù ¿ÍÀϵå¿À۵å 916 2008-04-24
Google
Copyright © 2008, borlandforum.com. All right reserved.