锘??xml version="1.0" encoding="utf-8" standalone="yes"?>www性久久久com,国产精品久久影院,亚洲精品无码久久一线http://www.shnenglu.com/lovelypig/category/1219.html浠g爜鏄拻璇?鎴戞槸欖旀硶甯?/description>zh-cnMon, 27 Oct 2008 12:10:19 GMTMon, 27 Oct 2008 12:10:19 GMT60100琛屼唬鐮佸幓闄Q騫垮憡http://www.shnenglu.com/lovelypig/archive/2008/10/26/65130.html姍欏瓙姍欏瓙Sun, 26 Oct 2008 12:18:00 GMThttp://www.shnenglu.com/lovelypig/archive/2008/10/26/65130.htmlhttp://www.shnenglu.com/lovelypig/comments/65130.htmlhttp://www.shnenglu.com/lovelypig/archive/2008/10/26/65130.html#Feedback4http://www.shnenglu.com/lovelypig/comments/commentRss/65130.htmlhttp://www.shnenglu.com/lovelypig/services/trackbacks/65130.html涓轟粈涔堝啓榪欎釜: 
     1錛屽儚鎴戣繖涔堢埍騫插噣鐨勪漢錛屽綋鐒朵笉鑳藉蹇嶅拰MM鑱婂ぉ鐨勬椂鍊欙紝鐪嬪埌涓涓唴琛e箍鍛婂湪涓婇潰涓闂竴闂紝榪欎笉寮曡鑰佺撼涔堬紱
     2錛屼負浠涔堜笉鐢ㄥ叾瀹冨鎸傦紵鐝婄憵铏凡S錛屽啀娌$敤榪囧叾瀹冦傜幇鏈夌殑澶栨寕瀹炵幇浜嗕竴浜涙垜涓嶆兂瑕佺殑鍔熻兘錛岀湅IP涔熸病蹇呰錛岃亰澶╃殑閮芥槸鐔熶漢銆傚彟澶栵紝涓嶇煡閬撳畠鍋氫簡浜涗粈涔堜簨鎯咃紱
     3錛屾墦鍙戣繖涓棤鑱婄殑鍛ㄦ湯銆?br>
鎬庢牱瀹炵幇錛?br>     1錛屼竾鑳界殑HOOK

鐜板湪鐢ㄥ埌鐨勬槸鍏ㄥ眬鐨凷HELL HOOK錛孒ook鐨勬槸紿楀彛鍒涘緩瀹屾垚鐨勬秷鎭紱

    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);
}
 


鍦ㄦ敹鍒扮獥鍙e垱寤哄悗鐨勬秷鎭椂錛屽氨鍒ゆ柇榪欎釜紿楀彛鏄笉鏄疩Q鐨?榪欓噷鐢ㄥ埌浜?GetWindowThreadProcessId 錛屽畠榪斿洖紿楀彛鐩稿叧鐨勮繘紼婭D

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;

}


鐒跺悗鏋氫婦瀹冪殑瀛愮獥鍙o紝鐪嬪畠鐨勫瓙紿楀彛鏈夋病鏈夊箍鍛婃帶浠訛紝鏈夌殑璇濆氨緇欏瓙鎺т歡鍙戦佷釜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++ 鍒嗘瀽鍑烘潵鐨勶紝鍙兘鍥犱負鐗堟湰鐨勪笉鍚岋紝浼氭湁宸紓銆傛墍浠ユ垜涓嶇‘瀹氳兘涓嶈兘鍏抽棴鍏跺畠鐗堟湰鐨凲Q騫垮憡銆傛垜浣跨敤鐨勭増鏈槸QQ2008璐哄瞾鐗堛?br>
--------------------------------------------------------------------------

鍚庤:
   灝界瀹炵幇鐨勬妧鏈緢綆鍗?浣嗚繕鏄姳浜嗘垜澶у崐澶╃殑鏃墮棿. 鍐欏畬涔嬪悗瑙夊緱鏋氫婦瀛愮獥鍙g殑鏂瑰紡澶綆鏁? 鎴栬呰繕鏈夊叾瀹冮珮鏁堢偣鐨勬柟寮忋傚彟澶栬繕鏈夊叏灞閽╁瓙,鍙兘娌℃湁蹇呰銆傚鏋滀笅鍗堝懆鏈寔緇棤鑱婏紝鎴戜細灝濊瘯鏀硅繘涓涓嬨?br>
   QQ鐨勮亰澶╁璇濇寰堢畝鍗?涓嶅儚MSN鐨勫璇濇,閾佹澘涓鍧?鐢╯py++鍟ラ兘鐪嬩笉鍒?浣嗘槸鍙互鐢?AccExplorer 鍒嗘瀽.鎯沖湪MSN鐨勫璇濇涓婂姞鐐逛笢瑗胯繘鍘伙紝瀹炵幇璧鋒潵寰堝洶闅俱傚榪欐柟闈㈡湁鐮旂┒鐨勫悓瀛︿笉濡ㄤ笌鎴戣璁轟竴涓嬪疄鐜幫紝涓璧峰涔犮佽繘姝ャ?br>      
   浠g爜鐨勮鏁版病鏁幫紝鏈夋晥浠g爜浼拌涔熷氨鐧炬妸琛屽惂錛屽懙鍛碉紝鎴戞壙璁ゆ垜鏄爣棰樺厷銆?br>
闄?   婧愪唬鐮?+ bin



姍欏瓙 2008-10-26 20:18 鍙戣〃璇勮
]]>
鎼滅儲鍐呭瓨鍙栧緱QQ鍙風爜http://www.shnenglu.com/lovelypig/archive/2006/12/13/16347.html姍欏瓙姍欏瓙Tue, 12 Dec 2006 16:36:00 GMThttp://www.shnenglu.com/lovelypig/archive/2006/12/13/16347.htmlhttp://www.shnenglu.com/lovelypig/comments/16347.htmlhttp://www.shnenglu.com/lovelypig/archive/2006/12/13/16347.html#Feedback6http://www.shnenglu.com/lovelypig/comments/commentRss/16347.htmlhttp://www.shnenglu.com/lovelypig/services/trackbacks/16347.html榪欐牱鐨勫笘瀛?涓嶇煡閬撳彲涓嶅彲浠ユ斁鍒伴欏?.濡傛灉涓嶈,楹葷儲綆$悊鍛樻竻鐞? 璋㈣阿.

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)聽 // 璺寵繃鏈垎閰嶆垨涓嶅彲璇誨啓鐨勫尯鍩熉?/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;
}


姍欏瓙 2006-12-13 00:36 鍙戣〃璇勮
]]>
鐢熸垚鐨勫皬紼嬪簭鐨勬妧宸?/title><link>http://www.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://www.shnenglu.com/lovelypig/archive/2006/09/13/12420.html</guid><wfw:comment>http://www.shnenglu.com/lovelypig/comments/12420.html</wfw:comment><comments>http://www.shnenglu.com/lovelypig/archive/2006/09/13/12420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lovelypig/comments/commentRss/12420.html</wfw:commentRss><trackback:ping>http://www.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://www.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://www.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://www.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://www.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_35_294_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.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://www.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://www.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://www.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://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽<br /><img src="http://www.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://www.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://www.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://www.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://www.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://www.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_37_86_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.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://www.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://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span></div><br />A鐢熸垚鐨別xe 鐨勫ぇ灝徛?< B<br /><img src ="http://www.shnenglu.com/lovelypig/aggbug/12420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lovelypig/" target="_blank">姍欏瓙</a> 2006-09-13 17:41 <a href="http://www.shnenglu.com/lovelypig/archive/2006/09/13/12420.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>榪滅▼綰跨▼鎻掑叆,鑾峰緱鍏跺畠榪涚▼ListCtrl淇℃伅http://www.shnenglu.com/lovelypig/archive/2006/06/26/8999.html姍欏瓙姍欏瓙Sun, 25 Jun 2006 18:07:00 GMThttp://www.shnenglu.com/lovelypig/archive/2006/06/26/8999.htmlhttp://www.shnenglu.com/lovelypig/comments/8999.htmlhttp://www.shnenglu.com/lovelypig/archive/2006/06/26/8999.html#Feedback0http://www.shnenglu.com/lovelypig/comments/commentRss/8999.htmlhttp://www.shnenglu.com/lovelypig/services/trackbacks/8999.html闃呰鍏ㄦ枃

姍欏瓙 2006-06-26 02:07 鍙戣〃璇勮
]]>
Win32鏈嶅姟鎺у埗綾?/title><link>http://www.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://www.shnenglu.com/lovelypig/archive/2006/04/01/4871.html</guid><wfw:comment>http://www.shnenglu.com/lovelypig/comments/4871.html</wfw:comment><comments>http://www.shnenglu.com/lovelypig/archive/2006/04/01/4871.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/lovelypig/comments/commentRss/4871.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lovelypig/services/trackbacks/4871.html</trackback:ping><description><![CDATA[ <p>/**<br />W32Server.h聽聽聽<br /><a href="/lovelypig">http://www.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>聽/**聽 榪斿洖鐘舵? <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();聽聽聽//濡傛灉榪斿洖鐪燂紝閰嶇疆鐘舵佸~鍏呭湪 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://www.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://www.shnenglu.com/lovelypig/aggbug/4871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lovelypig/" target="_blank">姍欏瓙</a> 2006-04-01 09:55 <a href="http://www.shnenglu.com/lovelypig/archive/2006/04/01/4871.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緗戝崱綾?/title><link>http://www.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://www.shnenglu.com/lovelypig/archive/2006/04/01/4870.html</guid><wfw:comment>http://www.shnenglu.com/lovelypig/comments/4870.html</wfw:comment><comments>http://www.shnenglu.com/lovelypig/archive/2006/04/01/4870.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/lovelypig/comments/commentRss/4870.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lovelypig/services/trackbacks/4870.html</trackback:ping><description><![CDATA[ <p>//璇存槑錛氬鉤鏃跺仛鏇存敼緗戝崱錛╋及榪欐牱鐨勬椿鎸哄鐨勶紝綺樻潵綺樺幓楹葷儲錛岀畝鍗曠殑鎵撲簡涓寘錛?br />//寮曠敤錛?font color="#000000"><a class="" title="" target="">VCkbase錛夸笉閲嶈搗Windows鐩存帴鏇存敼IP鍦板潃<br /></a></font>//浠g爜錛?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;聽聽聽// 閫傞厤鍣ㄥ悕縐?br />聽聽聽聽string strDriverDesc;聽// 閫傞厤鍣ㄦ弿榪?br />聽聽聽聽string strIP;聽聽聽// IP鍦板潃<br />聽聽聽聽string strSubnetMask;聽聽// 瀛愮綉鎺╃爜<br />聽聽聽聽string strNetGate;聽聽// 緗戝叧<br />聽聽聽聽string strDNS;聽聽聽聽聽聽聽聽 //DNS<br />聽聽聽聽string strMAC;<br />聽聽聽聽::MIB_IFROW聽IfRow;聽聽//鐢ㄤ簬嫻侀噺,鐘舵佹樉紺?/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 />//錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞<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 )聽// 緙撳啿鍖轟笉澶熷ぇ<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,聽聽聽聽//鎸囨槑絎嚑涓狪P鍦板潃錛屽鏋滃彧鏈夎鎺ュ彛鍙湁涓涓狪P鍦板潃鍒欎負0<br />聽聽聽inet_addr(strIP.c_str()), //<br />聽聽聽inet_addr(strSubnetMask.c_str()), <br />聽聽聽0聽聽聽聽//瀵笵HCP鐨勬搷浣?0:涓嶄慨鏀? 1:鍚敤 DHCP錛?:紱佺敤 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://www.shnenglu.com/lovelypig/aggbug/4870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lovelypig/" target="_blank">姍欏瓙</a> 2006-04-01 09:46 <a href="http://www.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://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.ixlg.cn" target="_blank">久久精品国产99久久久香蕉</a>| <a href="http://www.sdmtsk.cn" target="_blank">浪潮AV色综合久久天堂</a>| <a href="http://www.wwwh0930com.cn" target="_blank">亚洲精品乱码久久久久久中文字幕 </a>| <a href="http://www.seasa.cn" target="_blank">精品无码久久久久国产</a>| <a href="http://www.ww0w.cn" target="_blank">欧美大战日韩91综合一区婷婷久久青草 </a>| <a href="http://www.bwgwdl.cn" target="_blank">亚洲人成精品久久久久</a>| <a href="http://www.nokia-flash.cn" target="_blank">久久综合久久美利坚合众国</a>| <a href="http://www.dywanjiale.cn" target="_blank">精品国产乱码久久久久久人妻 </a>| <a href="http://www.wzqcz.cn" target="_blank">香蕉久久夜色精品国产尤物</a>| <a href="http://www.xxxhj.cn" target="_blank">99久久国产宗和精品1上映</a>| <a href="http://www.686t5w.cn" target="_blank">久久亚洲私人国产精品vA</a>| <a href="http://www.veemei.com.cn" target="_blank">成人国内精品久久久久影院VR</a>| <a href="http://www.847888.com.cn" target="_blank">99久久香蕉国产线看观香</a>| <a href="http://www.audtw.cn" target="_blank">2021久久国自产拍精品</a>| <a href="http://www.s9375.cn" target="_blank">精品久久久久久国产</a>| <a href="http://www.kq58.cn" target="_blank">国产综合精品久久亚洲</a>| <a href="http://www.mivrcloud.cn" target="_blank">99国产精品久久久久久久成人热</a>| <a href="http://www.hunxiaodansang.cn" target="_blank">精品久久久久中文字</a>| <a href="http://www.zfam.cn" target="_blank">少妇高潮惨叫久久久久久</a>| <a href="http://www.122797929.cn" target="_blank">久久99国产精品尤物</a>| <a href="http://www.fj023.cn" target="_blank">久久人人爽人人澡人人高潮AV</a>| <a href="http://www.sh-jixiang.cn" target="_blank">亚洲色大成网站www久久九</a>| <a href="http://www.joy7.com.cn" target="_blank">久久无码一区二区三区少妇</a>| <a href="http://www.jacctv.cn" target="_blank">久久久久亚洲AV无码专区体验</a>| <a href="http://www.101922.cn" target="_blank">久久伊人五月天论坛</a>| <a href="http://www.awkmqq.cn" target="_blank">99re这里只有精品热久久</a>| <a href="http://www.bolson.cn" target="_blank">久久狠狠爱亚洲综合影院</a>| <a href="http://www.furuike.com.cn" target="_blank">久久精品免费大片国产大片</a>| <a href="http://www.b2bnn.cn" target="_blank">久久精品亚洲日本波多野结衣 </a>| <a href="http://www.fpzhan.cn" target="_blank">久久国产成人精品国产成人亚洲</a>| <a href="http://www.homeshining.com.cn" target="_blank">欧美一区二区三区久久综合</a>| <a href="http://www.haoq98.cn" target="_blank">亚洲国产精品一区二区三区久久</a>| <a href="http://www.wbcyn.cn" target="_blank">国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 </a>| <a href="http://www.4fro.cn" target="_blank">久久婷婷成人综合色综合</a>| <a href="http://www.syiz.cn" target="_blank">久久久黄色大片</a>| <a href="http://www.essledyntp.com.cn" target="_blank">亚洲欧美精品一区久久中文字幕</a>| <a href="http://www.qhuo.com.cn" target="_blank">超级碰久久免费公开视频</a>| <a href="http://www.shamba.com.cn" target="_blank">26uuu久久五月天</a>| <a href="http://www.zg-ly.cn" target="_blank">欧美粉嫩小泬久久久久久久</a>| <a href="http://www.fotoblog.cn" target="_blank">色综合久久中文色婷婷</a>| <a href="http://www.lzjsyg.cn" target="_blank">久久综合狠狠综合久久97色</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>