ºìÁªLinuxÃÅ»§
Linux°ïÖú

Ó¦ÓÃʵÀý£ºVC++ʵÏÖ¹ã¸æ´°¿Ú×Ô¶¯¹Ø±Õ

·¢²¼Ê±¼ä:2006-05-03 11:54:29À´Ô´:ºìÁª×÷Õß:°®µÄ±ßÔµ
Ò»¡¢ ÒýÑÔ

¡¡¡¡ÎÒÃÇÔÚÉÏÍøä¯ÀÀʱ£¬ÓÐʱ·ÃÎʵ½Ä³Ð©ÍøÕ¾µÄÍøҳʱ»á×Ô¶¯µ¯³öһЩ¹ã¸æ´°¿Ú£¬ÉõÖÁÓв»ÉÙ¸öÈËÖ÷ҳΪÁËÀûÓÃÍøÂç¹ã¸æÀ´×¬Ç®Ò»ÏÂͬʱµ¯³ö¼¸¸öÉõÖÁÊ®¼¸¸ö¹ã¸æ´°¿Ú¡£ÕâЩ´°¿ÚÒ»¸öÒ»¸öµÄ¹ØµôÊ®·ÖÂé·³£¬¶øÇÒÈç¹û²»¹ØµÄ»°ÓÖ»áÕ¼ÓôóÁ¿µÄϵͳ×ÊÔ´£¬ËùÒÔ²»ÉÙÈ˶ԴËÉî¶ñÍ´¾ø£¬×÷Ϊ³ÌÐòÔ±¿ÉÒÔÀûÓÃ×ÔÉí¼¼ÊõÓÅÊƸù¾Ý×Ô¼ºµÄʵ¼ÊÐèÒª±àÖÆһЩºÜÊʺÏ×Ô¼ºµÄС¹¤¾ß¡£Òò´Ë±¾ÎľͶÔÈçºÎͨ¹ýÈí¼þ±à³ÌÀ´ÊµÏÖ¶Ô¹ã¸æ´°¿ÚµÄ×Ô¶¯¹Ø±Õ½øÐнéÉÜ£¬ÒÔÆÚÄÜÆðµ½Å×שÒýÓñ֮Ч¡£

¡¡¡¡¶þ¡¢ ³ÌÐòÉè¼Æ˼·ÓëʵÏÖ

¡¡¡¡Ê×ÏÈÒª·ÖÎöһϹã¸æ´°¿ÚµÄÒ»°ãÌØÐÔ¡£¹ã¸æ´°¿ÚÒ»°ãÊÇͨ¹ýÖ÷Ò³ÃæÀïµÄJavascript½Å±¾»òVBScript ½Å±¾ÓïÑÔÀ´¶¯Ì¬µ¯³öµÄ£¬ÆäʵÖÊ»¹ÊÇÒ»¸öIE´°¿Ú¡£µ«¾ø´ó¶àÊý´°¿ÚÔÚ´´½¨³öÀ´ºóÊÇûÓв˵¥,¹¤¾ßÌõµÈÆäËü¶«Î÷µÄ£¬Òò´ËÎÒÃÇ¿ÉÒÔÏÈËÑÑ°IE´°¿Ú£¬È»ºóÅжÏÆä´°¿ÚÊÇ·ñÓв˵¥ºÍ¹¤¾ßÌõµÈ¶«Î÷£¬Èç¹ûûÓоÍÈÏΪÊǹã¸æ´°¿ÚÁË£¬ËäÈ»ÕâÑùµÄÅжϲ»ÊÇÊ®·ÖµÄÑϸñ£¬µ«´Óʵ¼ÊʹÓÃÇé¿öÀ´¿´ËäÈ»ÓÐʱ»áÎó¹ØһЩÕý³£´°¿Ú£¬µ«·¢ÉúµÄ¼¸ÂÊÊÇÏ൱СµÄ¡£ÍêÈ«¿ÉÒÔºöÂÔ¡£¶øÇÒÕâÖÖÇé¿ö¶à·¢ÉúÔÚÁÄÌìÊÒÖУ¬ËùÒÔÖ»ÐèÔÚÁÄÌì֮ǰ½«Æä¹Ø±Õ£¬Ö»ÔÚä¯ÀÀÍøÒ³µÄʱºòÔËÐгÌÐò¾ÍÒ»°ã²»»á·¢ÉúÎó²Ù×÷ÁË¡£

¡¡¡¡³ÌÐòµÄʵÏÖ²¢²»¸´ÔÓ£¬ÓÉÓÚ³ÌÐòÔËÐÐÆðÀ´ºóÈÎÒâʱ¿Ìµ¯³öµÄ¹ã¸æ´°Ì嶼ҪËæʱ¹Ø±Õ£¬ËùÒÔ¾ÍÓ¦µ±Í¨¹ýÉèÖö¨Ê±Æ÷£¬Ã¿¸ôÒ»¶Îʱ¼ä¾ÍËÑÑ°ÒÔϵ±Ç°ÊÇ·ñÓйã¸æ´°¿Ú£¬Èç¹ûÓоͽ«Æä¹Ø±Õ£¬·ñÔò¼ÌÐø¼àÊÓ¡£Òò´Ë¿ÉÒÔÔÚ³ÌÐòµÄ³õʼ»¯Èë¿Úº¯ÊýÖÐÓÃSetTimer()º¯ÊýÆô¶¯¶¨Ê±Æ÷¡£ÏÂÃæ¾Í½áºÏʵ¼Ê´úÂë¶Ô²¿·Ö¹Ø¼ü´úÂë½øÐн²½â£º

¡¡¡¡´ÓµÚÒ»¸ö´°¿Ú¿ªÊ¼¶Ôÿһ¸ö´°¿Ú½øÐÐö¾ÙËÑË÷£¬Èç¹ûµÚÒ»¸ö´°¿Ú´æÔÚÄÇô¾Í¿ÉÒÔͨ¹ýÔÚwhileÑ­»·ÀïµÄGetWindow(GW_HWNDNEXT);À´ËÑÑ°ÏÂÒ»¸ö´°¿Ú£¬²¢ÔÚÆäÄÚÅжÏÊÇ·ñÊǹã¸æ´°Ì壬ֱÖÁËÑÑ°Íê×îºóÒ»¸ö´°ÌåΪֹ£º

CWnd* pMainWnd = AfxGetMainWnd()->GetWindow(GW_HWNDFIRST);
while (pMainWnd)
{
¡¡¡­¡­
¡¡pMainWnd = pMainWnd->GetWindow(GW_HWNDNEXT);
}

¡¡¡¡¶ÔÓÚÅжÏÊÇ·ñÊǹã¸æ´°¿Ú£¬¿ÉÒÔÓÃGetClassName()º¯Êý»ñÈ¡´°¿ÚÀàÐÍÀ´ÅжÏÊÇ·ñÊÇIE´°¿Ú£º

CString strClassName;
GetClassName(pMainWnd->m_hWnd,strClassName.GetBufferSetLength(100),100);

¶ÔÓÚÄÇЩ²»ÊÇIEÀàÐ͵Ĵ°Ìå¸ù±¾²»ÓüÓÒÔ¿¼ÂÇ£¬¿ÉÒÔ½«¸Õ²ÅµÃµ½µÄstrClassName´°¿ÚÀàÐÍͬ"IEFrame"½øÐбȽÏÀ´½øÐÐÅжϣ¬Èç¹ûÊÇIE´°¿Ú²Å¿ÉÒÔ½øÐÐÏÂÒ»²½µÄÅжϣº

//¸ù¾Ý¾ä±ú»ñÈ¡×Ó´°¿ÚÖ¸Õë
CWnd* pChildWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,NULL,"Worker",NULL));
if(!pChildWnd)
¡¡pChildWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,NULL,"WorkerA",NULL));

¡¡¡¡Èç¹û×Ó´°¿Ú´æÔÚ£¬ÓÃÀàËƵķ½·¨»ñÈ¡ÏÂÒ»¸ö×Ó´°¿ÚÖ¸Õ룺

CWnd* pChildNextWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,pChildWnd->m_hWnd,"Worker",NULL));
if(!pChildNextWnd)
pChildNextWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,pChildWnd->m_hWnd,"WorkerA",NULL));

¡¡¡¡Èç¹û¸Ã´°¿Ú´æÔÚ£¬ÄÇôϲ½Ö»ÒªÑéÖ¤µ±Ç°´°¿Ú¿ÉÊӾͿÉÒԶ϶¨ÆäµÄÈ·ÊôÓÚ¹ã¸æ´°¿Ú£¬¿ÉÒÔͨ¹ýGetWindowLong()»ñÈ¡µ½µ±Ç°µÄ´°¿Ú·ç¸ñ£¬È»ºóͨ¹ýÂß¼­ÔËËã¿ÉÒÔÅжϳöµ±Ç°´°¿ÚÊÇ·ñ¾ßÓÐWS_VISIBLE¿ÉÊÓЧ¹û£º

if(pChildNextWnd)
{
¡¡if(!(GetWindowLong(pChildWnd->m_hWnd,GWL_STYLE)&WS_VISIBLE))
¡¡{
¡¡¡¡pTempWnd=NULL;
¡¡¡¡pTempWnd=pMainWnd;
¡¡¡¡//¹Ø±Õ¹ã¸æ´°¿Ú
¡¡¡¡¡­¡­
¡¡¡¡return;
¡¡}
}

¡¡¡¡ÏÖÔÚÒѾ­¿ÉÒÔ׼ȷÅжϳöÄĸöÊǹã¸æ´°¿ÚÁË£¬Ö»Ð轫Æä¹Ø±Õ¼´¿É£¬Ç°¶Î´úÂëÒѾ­½«ÎÒÃÇÏë¹Ø±ÕµÄ´°¿ÚÖ¸Õë±£´æµ½±äÁ¿pTempWndÖУ¬Òò´ËÎÒÃÇ¿ÉÒÔͨ¹ý¼òµ¥µÄÏòÆä·¢ËÍWM_CLOSEÏûÏ¢¾Í¿ÉÒÔ³¹µ×½«Æä¹Ø±ÕÁË£º

pTempWnd->PostMessage(WM_CLOSE,0,0);

¡¡¡¡Èý¡¢ С½á

¡¡¡¡±¾ÎĽö¶ÔÓڹرչã¸æ´°¿ÚµÄºËÐÄ´úÂë×÷Á˽éÉÜ£¬ÔÚʵ¼Ê±à³ÌÖÐÐèÒª¿¼Âǵ½Ðí¶àʵ¼ÊµÄÒòËØ£¬±ÈÈçΪÁ˽ÚÊ¡ÆÁĻռÓÿռ䣬×îºÃ½«Æä×ö³ÉϵͳÍÐÅÌģʽ£»ÓÉÓÚÐèÒª³¤ÆÚפÁôÄÚ´æËùÒÔÒª¾¡Á¿°Ñ³ÌÐò´óС¿ØÖƺ㬲¢ÇÒ²ÉÓÃRelease·¢Ðа汾µÈµÈ¡£±¾ÎÄËùÊöÄÚÈÝÓÐÒ»¶¨µÄͨÓÃÐÔ£¬¿ÉÒÔ½«ÆäÓÃÓÚ¼àÊÓijÏî½ø³Ì£¬µ±¸Ã½ø³ÌÆô¶¯ºóÓɳÌÐòÀ´´¥·¢Ä³¸öʼþÀ´¶ÔÆä½øÐд¦ÀíµÈµÈ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ