ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产成人久久综合野外,伊人伊成久久人综合网777,久久大香香蕉国产http://m.shnenglu.com/lovelypig/category/1219.htmlä»£ç æ˜¯å’’è¯?我是™ì”法å¸?/description>zh-cnMon, 27 Oct 2008 12:10:19 GMTMon, 27 Oct 2008 12:10:19 GMT60100行代ç å޻除QQòq¿å‘Šhttp://m.shnenglu.com/lovelypig/archive/2008/10/26/65130.htmlŠ™™å­Š™™å­Sun, 26 Oct 2008 12:18:00 GMThttp://m.shnenglu.com/lovelypig/archive/2008/10/26/65130.htmlhttp://m.shnenglu.com/lovelypig/comments/65130.htmlhttp://m.shnenglu.com/lovelypig/archive/2008/10/26/65130.html#Feedback4http://m.shnenglu.com/lovelypig/comments/commentRss/65130.htmlhttp://m.shnenglu.com/lovelypig/services/trackbacks/65130.htmlä¸ÞZ»€ä¹ˆå†™˜q™ä¸ª: 
     1åQŒåƒæˆ‘这么爱òq²å‡€çš„ähåQŒå½“ç„¶ä¸èƒ½å®¹å¿å’ŒMMèŠå¤©çš„æ—¶å€™ï¼Œçœ‹åˆ°ä¸€ä¸ªå†…衣广告在上é¢ä¸€é—ªä¸€é—ªï¼Œ˜q™ä¸å¼•诱è€çº³ä¹ˆï¼›
     2åQŒäؓ什么ä¸ç”¨å…¶å®ƒå¤–挂?çŠç‘šè™«å·²SåQŒå†æ²¡ç”¨˜q‡å…¶å®ƒã€‚çŽ°æœ‰çš„å¤–æŒ‚å®žçŽ°äº†ä¸€äº›æˆ‘ä¸æƒ³è¦çš„功能åQŒçœ‹IP也没必è¦åQŒèŠå¤©çš„都是熟äh。å¦å¤–,ä¸çŸ¥é“它åšäº†äº›ä»€ä¹ˆäº‹æƒ…ï¼›
     3åQŒæ‰“å‘这个无èŠçš„周末ã€?br>
怎样实现åQ?br>     1åQŒä¸‡èƒ½çš„HOOK

现在用到的是全局的SHELL HOOKåQŒHook的是½H—å£åˆ›å¾å®Œæˆçš„æ¶ˆæ¯ï¼›

    g_hShellHook = SetWindowsHookEx( WH_SHELL,
                (HOOKPROC)ShellHook,
                g_hInstance,
                
0);

 ShellHook 的实现如ä¸?

static LRESULT CALLBACK ShellHook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
    
if(nCode < 0)
        
goto CallOrg;
    
    
if( HSHELL_WINDOWCREATED == nCode )
    
{
        
if!isQQWnd( (HWND)wParam ) )
            
goto CallOrg;
        
        EnumChildWindows( (HWND)wParam, EnumChildProc, (LPARAM)
0 );
    }

    
CallOrg:
    
return CallNextHookEx( g_hShellHook, nCode, wParam, lParam);
}
 


在收到窗å£åˆ›å»ºåŽçš„æ¶ˆæ¯æ—¶åQŒå°±åˆ¤æ–­˜q™ä¸ª½H—壿˜¯ä¸æ˜¯QQçš?˜q™é‡Œç”¨åˆ°äº?GetWindowThreadProcessId åQŒå®ƒ˜q”回½H—å£ç›¸å…³çš„è¿›½E‹ID

BOOL isQQWnd(HWND hWnd)
{
    
if( g_pContext == NULL )
        
return FALSE;

    
if( g_dwQQProcessID == 0 )
        g_dwQQProcessID 
= GetQQProcessID();
    
    DWORD dwWndProcessID;
    
if( GetWindowThreadProcessId( hWnd, &dwWndProcessID ) == 0 )
        
return FALSE;
    
    
return dwWndProcessID == g_dwQQProcessID;

}


ç„¶åŽæžšä‹D它的å­çª—å£ï¼Œçœ‹å®ƒçš„å­½H—壿œ‰æ²¡æœ‰å¹¿å‘пާä»Óž¼Œæœ‰çš„è¯å°±¾l™å­æŽ§äšgå‘é€ä¸ªWM_CLOSE的消æ?

BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam  )
{
    DWORD dwID 
= GetDlgCtrlID( hwnd );
    
if( dwID == 0x3e9 )
    
{
        HWND hPrarent 
= GetParent( hwnd );
        PostMessage(hwnd, WM_CLOSE, 
00 );
        Sleep( 
10 );
        PostMessage(hPrarent, WM_PAINT, 
00 );
    }

    
else if( dwID == 0x643f )
    
{
        PostMessage(hwnd, WM_CLOSE, 
00 );
    }


    
return TRUE;
}

其中的两个硬¾~–ç æ˜¯ç”¨ spy++ 分æžå‡ºæ¥çš„,å¯èƒ½å› äؓ版本的ä¸åŒï¼Œä¼šæœ‰å·®å¼‚。所以我ä¸ç¡®å®šèƒ½ä¸èƒ½å…³é—­å…¶å®ƒç‰ˆæœ¬çš„QQòq¿å‘Šã€‚我使用的版本是QQ2008è´ºå²ç‰ˆã€?br>
--------------------------------------------------------------------------

åŽè®°:
   ž®½ç®¡å®žçŽ°çš„æŠ€æœ¯å¾ˆ½Ž€å?但还是花了我大åŠå¤©çš„æ—‰™—´. å†™å®Œä¹‹åŽè§‰å¾—æžšä‹Då­çª—å£çš„æ–¹å¼å¤ªä½Žæ•? 或者还有其它高效点的方å¼ã€‚å¦å¤–还有全局钩å­,å¯èƒ½æ²¡æœ‰å¿…è¦ã€‚如果下åˆå‘¨æœ«æŒ¾l­æ— èŠï¼Œæˆ‘会ž®è¯•改进一下ã€?br>
   QQçš„èŠå¤©å¯¹è¯æ¡†å¾ˆç®€å?ä¸åƒMSNçš„å¯¹è¯æ¡†,铿¿ä¸€å?用spy++啥都看ä¸åˆ?但是å¯ä»¥ç”?AccExplorer 分æž.惛_œ¨MSNçš„å¯¹è¯æ¡†ä¸ŠåŠ ç‚¹ä¸œè¥¿è¿›åŽ»ï¼Œå®žçŽ°èµäh¥å¾ˆå›°éš¾ã€‚对˜q™æ–¹é¢æœ‰ç ”ç©¶çš„åŒå­¦ä¸å¦¨ä¸Žæˆ‘讨è®ÞZ¸€ä¸‹å®žçŽŽÍ¼Œä¸€èµ·å­¦ä¹ ã€è¿›æ­¥ã€?br>      
   ä»£ç çš„行数没敎ͼŒæœ‰æ•ˆä»£ç ä¼°è®¡ä¹Ÿå°±ç™¾æŠŠè¡Œå§åQŒå‘µå‘µï¼Œæˆ‘承认我是标题党ã€?br>
é™?   æºä»£ç ?+ bin



]]>
æœçƒ¦å†…å­˜å–å¾—QQåïL http://m.shnenglu.com/lovelypig/archive/2006/12/13/16347.htmlŠ™™å­Š™™å­Tue, 12 Dec 2006 16:36:00 GMThttp://m.shnenglu.com/lovelypig/archive/2006/12/13/16347.htmlhttp://m.shnenglu.com/lovelypig/comments/16347.htmlhttp://m.shnenglu.com/lovelypig/archive/2006/12/13/16347.html#Feedback6http://m.shnenglu.com/lovelypig/comments/commentRss/16347.htmlhttp://m.shnenglu.com/lovelypig/services/trackbacks/16347.html˜q™æ ·çš„帖å­?ä¸çŸ¥é“å¯ä¸å¯ä»¥æ”¾åˆ°é¦–™å?.如果ä¸è¡Œ,éºÈƒ¦½Ž¡ç†å‘˜æ¸…ç? 谢谢.

HANDLE GetQQProcess();
bool  SeachQQNumber(HANDLE _hProcess, string   & strQQ);
int  _tmain( int  argc, _TCHAR *  argv[])
{
    HANDLE hProces 
=  GetQQProcess() ;
    
if (hProces ==  NULL)
        cout 
<< " No run QQ! " << endl;

    
string  strQQ;
    SeachQQNumber(hProces,strQQ);
    cout 
<< strQQ << endl;
    system(
" pause " );
    
return   0 ;
}


bool  SeachQQNumber(HANDLE _hProcess,  string   & strQQ)
{
    SuspendThread(_hProcess);
    
    DWORD dwBaseAddress; 
    MEMORY_BASIC_INFORMATION mbi;
    
char   process_mem[ 4096 ]  =   { 0 } ;
    DWORD number_of_bytes_read 
=   0 ;
    SYSTEM_INFO si; 
    GetSystemInfo(
& si);
    dwBaseAddress 
=  (DWORD)si.lpMinimumApplicationAddress; 
    
while (dwBaseAddress  <  (DWORD)si.lpMaximumApplicationAddress) 
    
{ 
        mbi.BaseAddress 
=  (LPVOID)dwBaseAddress; 
        VirtualQueryEx(_hProcess, (LPVOID)dwBaseAddress, 
& mbi,  sizeof (mbi));
        dwBaseAddress 
=  (DWORD)mbi.BaseAddress  +  mbi.RegionSize; 
        
if (mbi.State  !=  MEM_COMMIT  ||  mbi.AllocationProtect  !=  PAGE_READWRITE)  // è·Œ™¿‡æœªåˆ†é…或ä¸å¯è¯Õd†™çš„区域Â?/span>
         { 
            
continue ; 
        }
 
        
        
// æœçƒ¦
         for (DWORD i  =  (DWORD)mbi.BaseAddress; i  <  dwBaseAddress; i += 4096 )
        
{
            
if ( ! ReadProcessMemory(_hProcess,LPCVOID(i),process_mem, 4096 , & number_of_bytes_read))
                
break ;            
            
for ( int  j = 0 ;j < 4096   -   9 ;j ++ )
            
{
                
if ( ! memcmp( & process_mem[j], " \\MsgEx.db " , 9 ) )
                
{
                    
// printf("begin\n");
                     for ( int  k = j - 1 ; k  >  j - 12 ; k -- )
                    
{
                        
if (process_mem[k]  >=   ' 0 '   &&  process_mem[k]  <=   ' 9 ' )
                        
{
                            strQQ 
=   process_mem[k]  +  strQQ;
                        }

                        
else
                            
break ;
                    }

                    
if (strQQ.length())
                    
{
                        ResumeThread(_hProcess);
                        
return   true ;
                    }
            
                }

            }

        }

    }

    ResumeThread(_hProcess);
    
return   false ;
}



HANDLE GetQQProcess()
{
    PROCESSENTRY32 pe;
    pe.dwSize 
=   sizeof (PROCESSENTRY32);
    HANDLE hSnapshot 
=  CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,  0 );
    Process32First(hSnapshot, 
& pe);
    
do {
        
if ( ! _tcsicmp(pe.szExeFile,_T( " qq.exe " )))
        
{
            CloseHandle(hSnapshot);
            
return  OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe.th32ProcessID);
        }

        pe.dwSize 
=   sizeof (PROCESSENTRY32);
    }
while (Process32Next(hSnapshot,  & pe));
    CloseHandle(hSnapshot);
    
return  NULL;
}


]]>
生æˆçš„å°½E‹åºçš„æŠ€å·?/title><link>http://m.shnenglu.com/lovelypig/archive/2006/09/13/12420.html</link><dc:creator>Š™™å­</dc:creator><author>Š™™å­</author><pubDate>Wed, 13 Sep 2006 09:41:00 GMT</pubDate><guid>http://m.shnenglu.com/lovelypig/archive/2006/09/13/12420.html</guid><wfw:comment>http://m.shnenglu.com/lovelypig/comments/12420.html</wfw:comment><comments>http://m.shnenglu.com/lovelypig/archive/2006/09/13/12420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lovelypig/comments/commentRss/12420.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lovelypig/services/trackbacks/12420.html</trackback:ping><description><![CDATA[A:<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">t _tmain(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc, _TCHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> argv[])<br /><img id="Codehighlighter1_35_294_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_294_Open_Text.style.display='none'; Codehighlighter1_35_294_Closed_Image.style.display='inline'; Codehighlighter1_35_294_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_35_294_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_294_Closed_Text.style.display='none'; Codehighlighter1_35_294_Open_Image.style.display='inline'; Codehighlighter1_35_294_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_35_294_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_35_294_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> typedef </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (WINAPI </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">myMsg)( IN HWND hWnd,IN LPCSTR lpText, IN LPCSTR lpCaption,IN UINT uType);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> HANDLE m_hDLL </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> ::LoadLibrary(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">user32.dll</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> myMsg msg </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (myMsg)GetProcAddress((HMODULE)m_hDLL, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MessageBoxA</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">msg)(NULL,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">TEST</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">TEST</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> <br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><br />B:<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> _tmain(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc, _TCHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> argv[])<br /><img id="Codehighlighter1_37_86_Open_Image" onclick="this.style.display='none'; Codehighlighter1_37_86_Open_Text.style.display='none'; Codehighlighter1_37_86_Closed_Image.style.display='inline'; Codehighlighter1_37_86_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_37_86_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_37_86_Closed_Text.style.display='none'; Codehighlighter1_37_86_Open_Image.style.display='inline'; Codehighlighter1_37_86_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_37_86_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_37_86_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />    MessageBoxA(NULL,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span></div><br />A生æˆçš„exe 的大ž®Â?< B<br /><img src ="http://m.shnenglu.com/lovelypig/aggbug/12420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lovelypig/" target="_blank">Š™™å­</a> 2006-09-13 17:41 <a href="http://m.shnenglu.com/lovelypig/archive/2006/09/13/12420.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>˜qœç¨‹¾U¿ç¨‹æ’å…¥,获得其它˜q›ç¨‹ListCtrlä¿¡æ¯http://m.shnenglu.com/lovelypig/archive/2006/06/26/8999.htmlŠ™™å­Š™™å­Sun, 25 Jun 2006 18:07:00 GMThttp://m.shnenglu.com/lovelypig/archive/2006/06/26/8999.htmlhttp://m.shnenglu.com/lovelypig/comments/8999.htmlhttp://m.shnenglu.com/lovelypig/archive/2006/06/26/8999.html#Feedback0http://m.shnenglu.com/lovelypig/comments/commentRss/8999.htmlhttp://m.shnenglu.com/lovelypig/services/trackbacks/8999.html阅读全文

]]>
Win32æœåŠ¡æŽ§åˆ¶¾c?/title><link>http://m.shnenglu.com/lovelypig/archive/2006/04/01/4871.html</link><dc:creator>Š™™å­</dc:creator><author>Š™™å­</author><pubDate>Sat, 01 Apr 2006 01:55:00 GMT</pubDate><guid>http://m.shnenglu.com/lovelypig/archive/2006/04/01/4871.html</guid><wfw:comment>http://m.shnenglu.com/lovelypig/comments/4871.html</wfw:comment><comments>http://m.shnenglu.com/lovelypig/archive/2006/04/01/4871.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/lovelypig/comments/commentRss/4871.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lovelypig/services/trackbacks/4871.html</trackback:ping><description><![CDATA[ <p>/**<br />W32Server.h   <br /><a href="/lovelypig">http://m.shnenglu.com/lovelypig</a>  Š™™å­<br />*/<br />#ifndef  _CW32SERVER_H <br />#define  _CW32SERVER_H <br />#include <windows.h><br />#include <stdio.h></p> <p> </p> <p>class CW32Server<br />{<br /> TCHAR  m_szServerName[MAX_PATH];<br /> SC_HANDLE   m_hService;<br /> SC_HANDLE   m_hScm;<br /> SERVICE_STATUS ServiceStatus;<br /> BYTE  m_cfgBuf[4096];<br />public:</p> <p> CW32Server(void);<br /> CW32Server(const TCHAR *strServerName); <br /> BOOL    Open(const TCHAR *strServerName);  </p> <p> /**  ˜q”回状æ€? <br />  SERVICE_CONTINUE_PENDING The service continue is pending. <br />  SERVICE_PAUSE_PENDING The service pause is pending. <br />  SERVICE_PAUSED The service is paused. <br />  SERVICE_RUNNING The service is running. <br />  SERVICE_START_PENDING The service is starting. <br />  SERVICE_STOP_PENDING The service is stopping. <br />  SERVICE_STOPPED The service is not running. <br /> */<br /> DWORD GetState();     <br /> BOOL    SetState(DWORD state);<br /> BOOL    Start();<br /> BOOL    Stop();</p> <p> /**<br />  SERVICE_AUTO_START  A service started automatically by the service control manager during system startup. <br />  SERVICE_BOOT_START  A device driver started by the system loader. This value is valid only for driver services. <br />  SERVICE_DEMAND_START A service started by the service control manager when a process calls the StartService function. <br />  SERVICE_DISABLED  A service that cannot be started. Attempts to start the service result in the error code ERROR_SERVICE_DISABLED. <br />  SERVICE_SYSTEM_START <br /> */<br /> BOOL    GetConfig();   //如果˜q”回真,é…置状æ€å¡«å……在 m_config  ä¸?<br /> SC_HANDLE    GetHandle();  //需è¦ç¦ç”¨ã€å¯åЍæœåŠ¡ï¼Œä½¿ç”¨ ChangeServiceConfig(GetHandle(),...)   查看MSDN<br /> ~CW32Server(void);</p> <p> QUERY_SERVICE_CONFIG *m_config;<br />};</p> <p> <br />#endif <br /><br /><br />/**<br />W32Server.cpp<br /><a href="/lovelypig">http://m.shnenglu.com/lovelypig</a>  Š™™å­<br />*/<br />#include ".\w32server.h"<br />#include <assert.h></p> <p>CW32Server::CW32Server(void)<br />{<br /> memset((char*)&m_szServerName,0,sizeof(TCHAR)*MAX_PATH);<br /> memset((char*)&m_config,0,sizeof(m_config));<br /> m_hService = 0;<br /> m_hScm   = 0;<br /> m_config = (QUERY_SERVICE_CONFIG*)m_cfgBuf;<br />}</p> <p>CW32Server::CW32Server(const TCHAR *strServerName)<br />{ <br /> assert(strServerName);</p> <p> CW32Server();<br /> _tcscpy(m_szServerName,strServerName); </p> <p> m_hScm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);<br /> if(!m_hScm)<br /> {<br />  return ;<br /> }<br /> m_hService=OpenService(m_hScm,strServerName,SERVICE_ALL_ACCESS);<br /> if(!m_hService)<br /> {<br />  CloseServiceHandle(m_hScm);<br />  m_hScm = NULL;<br />    }<br />}<br />CW32Server::~CW32Server(void)<br />{<br /> if( m_hScm )<br /> {<br />  CloseServiceHandle(m_hScm);<br />  m_hScm = NULL;<br /> }<br /> if( m_hService )<br /> {<br />  CloseServiceHandle(m_hService);<br />  m_hService = NULL;<br /> }<br />}</p> <p>BOOL   CW32Server:: Open(const TCHAR *strServerName)<br />{<br /> assert(strServerName);</p> <p> if( m_hScm )<br /> {<br />  CloseServiceHandle(m_hScm);<br />  m_hScm = NULL;<br /> }<br /> if( m_hService )<br /> {<br />  CloseServiceHandle(m_hService);<br />  m_hService = NULL;<br /> }</p> <p> _tcscpy(m_szServerName,strServerName); <br /> m_hScm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);<br /> if(!m_hScm)<br /> {<br />  return FALSE;<br /> }<br /> m_hService=OpenService(m_hScm,strServerName,SERVICE_ALL_ACCESS);<br /> if(!m_hService)<br /> {<br />  CloseServiceHandle(m_hScm);<br />  m_hScm = NULL;<br />  return FALSE;<br /> }<br /> return TRUE;<br />}</p> <p>DWORD CW32Server::GetState()<br />{ <br /> assert(m_hService);</p> <p>    if(QueryServiceStatus(m_hService,&ServiceStatus))<br /> {<br />  return ServiceStatus.dwCurrentState;<br /> }<br /> else<br /> {<br />  return 0xffffffff;<br /> }<br />}</p> <p>BOOL    CW32Server::SetState(DWORD state)<br />{<br /> assert(m_hService);</p> <p> return ControlService(m_hService,state,&ServiceStatus);<br />}</p> <p>BOOL    CW32Server::Start()<br />{<br /> assert(m_hService);</p> <p> return StartService(m_hService,0,NULL);</p> <p>}</p> <p>BOOL    CW32Server::Stop()<br />{<br /> assert(m_hService);</p> <p> return ControlService(m_hService,SERVICE_CONTROL_STOP,&ServiceStatus);<br />}</p> <p>BOOL    CW32Server::GetConfig()<br />{<br /> assert(m_hService);<br /> <br /> DWORD cbBufSize = 4096;<br /> DWORD pcbBytesNeeded = 4096;<br /> return QueryServiceConfig(m_hService,m_config,cbBufSize, &pcbBytesNeeded);<br />}</p> <p>SC_HANDLE  CW32Server::GetHandle()<br />{<br /> assert(m_hService);<br /> return m_hService;<br />}</p> <img src ="http://m.shnenglu.com/lovelypig/aggbug/4871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lovelypig/" target="_blank">Š™™å­</a> 2006-04-01 09:55 <a href="http://m.shnenglu.com/lovelypig/archive/2006/04/01/4871.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>¾|‘塾c?/title><link>http://m.shnenglu.com/lovelypig/archive/2006/04/01/4870.html</link><dc:creator>Š™™å­</dc:creator><author>Š™™å­</author><pubDate>Sat, 01 Apr 2006 01:46:00 GMT</pubDate><guid>http://m.shnenglu.com/lovelypig/archive/2006/04/01/4870.html</guid><wfw:comment>http://m.shnenglu.com/lovelypig/comments/4870.html</wfw:comment><comments>http://m.shnenglu.com/lovelypig/archive/2006/04/01/4870.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/lovelypig/comments/commentRss/4870.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lovelypig/services/trackbacks/4870.html</trackback:ping><description><![CDATA[ <p>//说明åQšåã^æ—¶åšæ›´æ”¹¾|‘å¡åQ©ï¼°˜q™æ ·çš„æ´»æŒºå¤šçš„,¾_˜æ¥¾_˜åŽ»éºÈƒ¦åQŒç®€å•的打了个包åQ?br />//引用åQ?font color="#000000"><a class="" title="" target="">VCkbaseåQ¿ä¸é‡è“vWindows直接更改IP地å€<br /></a></font>//代ç åQ?br /><br /><br />//Adapter_.h<br />#ifndef _ADAPTER_H<br />#define _ADAPTER_H<br />#include <tchar.h><br />#include <Windows.h><br />#include <stdio.h><br />#include <Iphlpapi.h><br />#pragma comment(lib,"iphlpapi.lib")<br />#pragma comment(lib,"ws2_32.lib")<br />#include <assert.h><br />#include <string><br />#include <vector><br />using   namespace  std;</p> <p> <br />typedef int (CALLBACK* DHCPNOTIFYPROC)(LPWSTR, LPWSTR, BOOL, DWORD, DWORD, DWORD, int);</p> <p>class CAdapter<br />{<br /> private:<br />  class ADAPTER_INFO<br />  {<br />    string strName;   // 适é…器å¿U?br />    string strDriverDesc; // 适é…器æ˜q?br />    string strIP;   // IP地å€<br />    string strSubnetMask;  // å­ç½‘掩ç <br />    string strNetGate;  // ¾|‘å…³<br />    string strDNS;         //DNS<br />    string strMAC;<br />    ::MIB_IFROW IfRow;  //用于‹¹é‡,çŠ¶æ€æ˜¾½C?/p> <p>    BOOL   RegSetIP();<br />    BOOL   ChangeSysSet();<br />    <br />   public:<br />    void   SetInx(DWORD _dwpIndex) { IfRow.dwIndex  = _dwpIndex; }</p> <p>    //å–å¾—IPä¿¡æ¯<br />    string& GetName(){  return strName; }<br />    string& GetDriverDesc(){ return strDriverDesc; }<br />    string& GetIP(){ return strIP; }<br />    string& GetSubnetMask(){ return strSubnetMask; }<br />    string& GetNetGate(){ return strNetGate; }<br />    string& GetDNS(){ return strDNS; }<br />    string& GetMAC(){ return strMAC; }<br />    <br />    //å–得状æ€?‹¹é‡<br />    DWORD    GetState(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }<br />     /*<br />     #define MIB_IF_OPER_STATUS_NON_OPERATIONAL      0<br />     #define MIB_IF_OPER_STATUS_UNREACHABLE          1<br />     #define MIB_IF_OPER_STATUS_DISCONNECTED         2<br />     #define MIB_IF_OPER_STATUS_CONNECTING           3<br />     #define MIB_IF_OPER_STATUS_CONNECTED            4<br />     #define MIB_IF_OPER_STATUS_OPERATIONAL          5<br />     */<br />     return IfRow.dwOperStatus ;<br />    }<br />    <br />    DWORD    GetSendBytes(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }<br />     return IfRow.dwOutOctets;<br />    }<br />    DWORD    GetReceiveBytes(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }  <br />     return IfRow.dwInOctets;<br />    }<br />    DWORD   GetSpeed(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }<br />     return IfRow.dwSpeed;<br />    }</p> <p>    DWORD   GetOutUcastPkts(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }<br />     return IfRow.dwOutUcastPkts;<br />    } <br />    DWORD   GetOutNUcastPkts(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }<br />     return IfRow.dwOutNUcastPkts;<br />    } <br />    DWORD   GetInUcastPkts(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }<br />     return IfRow.dwInUcastPkts;<br />    } <br />    DWORD   GetInNUcastPkts(){<br />     if(GetIfEntry(&IfRow) != NO_ERROR)<br />     {<br />      return 0;<br />     }<br />     return IfRow.dwInNUcastPkts;<br />    } <br />    //讄¡½®IPä¿¡æ¯<br />    BOOL SetName(string _PstrName  ,BOOL bChange = 0)  { <br />     strName = _PstrName ;<br />     if( bChange)<br />      return ChangeSysSet();<br />     return TRUE;<br />    }<br />    BOOL SetDriverDesc(string _PstrDriverDesc,BOOL bChange = 0){   <br />     strDriverDesc = _PstrDriverDesc;<br />     if( bChange)<br />      ChangeSysSet();<br />     return TRUE;<br />    }<br />    BOOL SetIP(string _PstrIP,BOOL bChange = 0){  <br />     strIP = _PstrIP ;<br />     if( bChange)<br />      ChangeSysSet();<br />     return TRUE;<br />    }<br />    BOOL SetSubnetMask(string _PstrSubnetMask,BOOL bChange = 0){  <br />     strSubnetMask = _PstrSubnetMask; <br />     if( bChange)<br />      ChangeSysSet();<br />     return TRUE;<br />    }<br />    BOOL SetNetGate(string _PstrNetGate,BOOL bChange = 0){ <br />     strNetGate = _PstrNetGate; <br />     if( bChange)<br />      ChangeSysSet();<br />     return TRUE;<br />    }<br />    BOOL SetDNS(string strSetDNS = ""){<br />     if( !strSetDNS.length() )<br />     {<br />      HKEY hKey;<br />      DWORD dwType;<br />      char  szReadBuf[64];<br />      DWORD cbData = 64;<br />      string strKeyName ="SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";<br />      strKeyName += this->strName;<br />      if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,strKeyName.c_str(),0,<br />         KEY_READ,&hKey) != ERROR_SUCCESS)<br />      {<br />       return FALSE;<br />      }<br />      if( RegQueryValueExA(hKey,"NameServer",0,&dwType,(BYTE*)szReadBuf,&cbData) != ERROR_SUCCESS)<br />      {<br />       return FALSE;<br />      }<br />      RegCloseKey(hKey);<br />      strDNS = szReadBuf;<br />     }<br />     else<br />     {<br />      strDNS = strSetDNS;<br />      return ChangeSysSet();<br />     }<br />     return TRUE;<br />    }<br />    void SetMAC(BYTE *Address){  <br />      char  buf[6];<br />      for(int i= 0;i< 6;i++)<br />      {<br />       sprintf( buf,"%02x",Address[i]);<br />       strMAC += string(buf);<br />      }<br />      /*<br />      sprintf(pAI->mac, "%02X%02X%02X%02X%02X%02X",<br />       int (pAdapterInfo->Address[0]),<br />       int (pAdapterInfo->Address[1]),<br />       int (pAdapterInfo->Address[2]),<br />       int (pAdapterInfo->Address[3]),<br />       int (pAdapterInfo->Address[4]),<br />       int (pAdapterInfo->Address[5]));<br />      */<br />    }<br />  };<br /> vector<ADAPTER_INFO> m_AdapterVec;<br /> public:<br />  CAdapter(void);<br />  ~CAdapter(void);</p> <p>  size_t GetAdapterCount ()<br />  {<br />   return m_AdapterVec.size();<br />  }</p> <p>  ADAPTER_INFO& operator[](DWORD iInx)<br />  {<br />   assert(iInx < m_AdapterVec.size());<br />   return m_AdapterVec[iInx];<br />  }<br />};</p> <p> <br />#endif<br /><br /><br />//åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼<br />//Adapter_.cpp<br />#include ".\adapter_.h"</p> <p> <br />CAdapter::CAdapter(void)<br />{<br /> DWORD ulAdapterInfoSize = sizeof(IP_ADAPTER_INFO);<br /> IP_ADAPTER_INFO *pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize];<br /> if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_BUFFER_OVERFLOW ) // ¾~“冲åŒÞZ¸å¤Ÿå¤§<br /> {<br />  delete pAdapterInfo;<br />  pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize];<br /> }<br /> if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_SUCCESS )<br /> {<br />  do {<br />   if (pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET)<br />   {<br />    ADAPTER_INFO *pAI = new ADAPTER_INFO;<br />    pAI->SetInx(pAdapterInfo->Index);<br />    pAI->SetName(pAdapterInfo->AdapterName);<br />    pAI->SetDriverDesc(pAdapterInfo->Description);<br />    pAI->SetMAC(pAdapterInfo->Address);<br />    pAI->SetIP(pAdapterInfo->IpAddressList.IpAddress.String);<br />    pAI->SetNetGate(pAdapterInfo->GatewayList.IpAddress.String);<br />    pAI->SetSubnetMask(pAdapterInfo->IpAddressList.IpMask.String);<br />    pAI->SetDNS();<br />    m_AdapterVec.push_back(*pAI);<br />   }<br />   pAdapterInfo = pAdapterInfo->Next;<br />  } while(pAdapterInfo);<br /> }<br /> delete pAdapterInfo;<br />}</p> <p>CAdapter::~CAdapter(void)<br />{<br /> m_AdapterVec.clear();<br />}</p> <p>BOOL CAdapter::ADAPTER_INFO::ChangeSysSet()<br />{<br /> //在注册表中修改信æ?br /> if(!RegSetIP())<br /> {<br />  return FALSE;<br /> }</p> <p> HINSTANCE  hDhcpDll;<br /> DHCPNOTIFYPROC pDhcpNotifyProc;<br /> WCHAR wcAdapterName[256];<br /> MultiByteToWideChar(CP_ACP, 0, this->strName.c_str(), -1, wcAdapterName,256);</p> <p> if((hDhcpDll = LoadLibraryA("dhcpcsvc")) == NULL)<br /> {<br />  return FALSE;<br /> }</p> <p> if((pDhcpNotifyProc = (DHCPNOTIFYPROC)GetProcAddress(hDhcpDll, "DhcpNotifyConfigChange")) != NULL)<br /> {<br />  if((pDhcpNotifyProc)(NULL, wcAdapterName, TRUE, <br />   0,    //指明½W¬å‡ ä¸ªIP地å€åQŒå¦‚æžœåªæœ‰è¯¥æŽ¥å£åªæœ‰ä¸€ä¸ªIP地å€åˆ™äØ“0<br />   inet_addr(strIP.c_str()), //<br />   inet_addr(strSubnetMask.c_str()), <br />   0    //对DHCPçš„æ“ä½?0:ä¸ä¿®æ”? 1:å¯ç”¨ DHCPåQ?:¼›ç”¨ DHCP<br />   ) != ERROR_SUCCESS)<br />  {<br />   FreeLibrary(hDhcpDll);<br />   return FALSE;<br />  }<br />  FreeLibrary(hDhcpDll);<br /> }<br /> return TRUE;<br />}</p> <p>BOOL CAdapter::ADAPTER_INFO::RegSetIP()<br />{<br /> HKEY hKey;<br /> string strKeyName ="SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";<br /> strKeyName += strName;</p> <p> if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,<br />  strKeyName.c_str(),<br />  0,<br />  KEY_WRITE,<br />  &hKey) != ERROR_SUCCESS)<br /> {<br />  return FALSE;<br /> }<br /> strIP.push_back('\0');<br /> strSubnetMask.push_back('\0');<br /> strNetGate.push_back('\0');</p> <p> RegSetValueExA(hKey, "IPAddress", 0, REG_MULTI_SZ, (unsigned char*)strIP.data(), (DWORD)strIP.length()+2);<br /> RegSetValueExA(hKey, "SubnetMask", 0, REG_MULTI_SZ, (unsigned char*)strSubnetMask.data(),(DWORD)strSubnetMask.length()+2 );<br /> RegSetValueExA(hKey, "DefaultGateway", 0, REG_MULTI_SZ, (unsigned char*)strNetGate.data(), (DWORD)strNetGate.length()+2);<br /> RegSetValueExA(hKey, "NameServer", 0, REG_SZ, (unsigned char*)strDNS.data(),(DWORD) strDNS.length());<br /> RegCloseKey(hKey);<br /> return TRUE;<br />}<br /><br /></p> <img src ="http://m.shnenglu.com/lovelypig/aggbug/4870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lovelypig/" target="_blank">Š™™å­</a> 2006-04-01 09:46 <a href="http://m.shnenglu.com/lovelypig/archive/2006/04/01/4870.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>¸ÐлÄú·ÃÎÊÎÒÃǵÄÍøÕ¾£¬Äú¿ÉÄÜ»¹¶ÔÒÔÏÂ×ÊÔ´¸ÐÐËȤ£º</p> <a href="http://m.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.haosim.cn" target="_blank">ÈÕº«¾«Æ·¾Ã¾ÃÎÞÂëÖÐÎÄ×ÖÄ»</a>| <a href="http://www.deartaobao.cn" target="_blank">Å·ÃÀÒ»Çø¶þÇøÈýÇø¾Ã¾Ã×ÛºÏ</a>| <a href="http://www.zusang.cn" target="_blank">¹ú²ú¾«Æ·¾Å¾Å¾Ã¾ÃÃâ·ÑÊÓÆµ</a>| <a href="http://www.dashi1.cn" target="_blank">¾«Æ·ÊÓÆµ¾Ã¾Ã¾Ã¾Ã</a>| <a href="http://www.yczu.cn" target="_blank">¾Ã¾Ã¾«Æ·Ãâ·ÑÈ«¹ú¹Û¿´¹ú²ú</a>| <a href="http://www.ijuanzhamen.cn" target="_blank">¾Ã¾Ã¹ú²úÑÇÖÞ¾«Æ·</a>| <a href="http://www.163hy.cn" target="_blank">¾Ã¾ÃerÈÈÊÓÆµÔÚÕâÀᆱƷ</a>| <a href="http://www.chaigan.cn" target="_blank">¾«Æ·¾Ã¾Ã¾Ã¾Ã¾ÃÎÞÂëÖÐÎÄÒ°½áÒ </a>| <a href="http://www.qunfazongzhan.cn" target="_blank">¾Ã¾Ã¾«Æ·¹ú²ú¾«Æ·ÑÇÖÞëƬ</a>| <a href="http://www.huanpou.cn" target="_blank">¾Ã¾Ã¾Ã¾«Æ·ÈËÆÞÒ»Çø¶þÇøÈýÇøÃÛÌÒ </a>| <a href="http://www.y7114.cn" target="_blank">2021¹ú²ú³ÉÈ˾«Æ·¾Ã¾Ã</a>| <a href="http://www.lvyoubuy.cn" target="_blank">Å·ÃÀ¾Ã¾ÃÌìÌì×ÛºÏÏã½¶ÒÁ</a>| <a href="http://www.guhm.cn" target="_blank">¾Ã¾Ã²»¼û¾Ã¾Ã¼ûÃâ·ÑÊÓÆµ7</a>| <a href="http://www.klzp.net.cn" target="_blank">¾Ã¾Ã¾«Æ·¹ú²úÑÇÖÞÒ»Çø¶þÇøÈýÇø</a>| <a href="http://www.markey.com.cn" target="_blank">2019¾Ã¾Ã¾Ã¸ßÇå456</a>| <a href="http://www.handyx.cn" target="_blank">¹ú²ú³ÉÈ˾«Æ·¾Ã¾ÃÑÇÖÞ¸ßÇå²»¿¨ </a>| <a href="http://www.vjyg.cn" target="_blank">¾Ã¾Ã¾«Æ·¹ú²ú¸£Àû¹ú²úç÷ç÷</a>| <a href="http://www.cgx.org.cn" target="_blank">ÑÇÖÞÊ츾ÎÞÂëÁíÀà¾Ã¾Ã¾Ã</a>| <a href="http://www.huaigutang.cn" target="_blank">¾«Æ·¾Ã¾Ã¾Ã¾ÃÒ»Çø¶þÇøÈýÇø</a>| <a href="http://www.ranhuman.cn" target="_blank">¹ú²ú×ۺϾþþþÃ</a>| <a href="http://www.lvzhuba.cn" target="_blank">¹ú²ú¾«Æ·³ÉÈ˾þþÃ</a>| <a href="http://www.shangxinju.cn" target="_blank">¾«Æ·¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã </a>| <a href="http://www.jiudexn.cn" target="_blank">ÈÕ±¾¾Ã¾ÃÖÐÎÄ×ÖÄ»</a>| <a href="http://www.668j.cn" target="_blank">¾Ã¾Ã99¾«Æ·¾Ã¾Ã¾Ã¾Ã¾Ã</a>| <a href="http://www.ciidc.org.cn" target="_blank">¾«Æ·¾Ã¾Ã¾Ã¾Ã¾Ã³ÉÈËAV</a>| <a href="http://www.s5273.cn" target="_blank">¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾«Æ·³ÉÈËÈÈÉ«½ä </a>| <a href="http://www.010jf.cn" target="_blank">¾Ã¾Ã¹ú²úÃâ·ÑÖ±²¥</a>| <a href="http://www.by6463.cn" target="_blank">¾Ã¾ÃÖ»ÓÐÕ⾫Ʒ99</a>| <a href="http://www.dxctutor.cn" target="_blank">ÎçÒ¹ÈËÆÞ¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã</a>| <a href="http://www.shhuguang.com.cn" target="_blank">¾Ã¾Ãer¹ú²ú¾«Æ·Ãâ·Ñ¹Û¿´2</a>| <a href="http://www.kingvit.com.cn" target="_blank">ÑÇÖÞAVÎÞÂë¾Ã¾Ã¼ÅįÉÙ¸¾</a>| <a href="http://www.wuchui.cn" target="_blank">ÐÔ×ö¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã¾Ã</a>| <a href="http://www.aygdxx.cn" target="_blank">Æ·³ÉÈËÅ·ÃÀ´óƬ¾Ã¾Ã¹ú²úÅ·ÃÀ</a>| <a href="http://www.zhangjiaying.cn" target="_blank">¾Ã¾Ã¾«Æ·¹ú²úÑÇÖÞavÈÕº«</a>| <a href="http://www.iz.sd.cn" target="_blank">¾Ã¾Ã³ÉÈ˹ú²ú¾«Æ·Ãâ·ÑÈí¼þ</a>| <a href="http://www.52shadu.cn" target="_blank">¾Ã¾ÃÓ°ÊÓ×ÛºÏÑÇÖÞ</a>| <a href="http://www.7cdy.cn" target="_blank">¾Ã¾Ã¾Ã¾ÃÑÇÖÞ±¬ÈéÉÙ¸¾ÎÞ</a>| <a href="http://www.07ww.cn" target="_blank">ÑÇÖÞ¹ú²úÈÕº«Å·ÃÀ¾Ã¾Ã</a>| <a href="http://www.114best.com.cn" target="_blank">ÑÇÖÞ¹ú²ú³ÉÈ˾þÃ×ÛºÏÇø</a>| <a href="http://www.kmqqk.cn" target="_blank">ÒÁÈ˾«Æ·¾Ã¾Ã¾Ã¾Ã7777</a>| <a href="http://www.mofeigzs.cn" target="_blank">¾Ã¾Ã¾«Æ·¹ú²ú99¾Ã¾Ã¾ÃÏã½¶</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>