得到最前端AP的名称

得到最前端AP的名称

   PC上和WCE上对于获取最前端AP的名称方法不同。

   PC上的做法:
TCHAR szApName[MAX_PATH];
TCHAR szExeName[MAX_PATH]
= {0} ;
HWND hWnd 
=  ::GetForegroundWindow();
HMODULE hModule 
=  (HMODULE)GetClassLong(hWnd, GCL_HMODULE);
if (hModule != NULL)
{
    
if(GetModuleFileName(hModule, szApName, MAX_PATH))
    
{
        
// here got the ap name: szApName
    }

}



   WCE上的做法:
TCHAR szApName[MAX_PATH];
TCHAR szExeName[MAX_PATH]
= {0} ;
HWND hWnd 
=  ::GetForegroundWindow();
DWORD dwProcessID
= 0 ;
::GetWindowThreadProcessId(hWnd,
& dwProcessID);
HANDLE hProcess 
=  OpenProcess( 0 0 , dwProcessID);
if (hProcess != NULL)
{
    
if(GetModuleFileName((HMODULE)hProcess, szApName, MAX_PATH))
    
{
        
// here got the ap name: szApName
    }


    CloseHandle(hProcess);
}


   这里可以看出,差别在于获得Process的句柄上,由于PPC上不支持GetClassLong函数对于GCL_HMODULE参数的定义,所以才有这样的差别。

你可能感兴趣的:(得到最前端AP的名称)