|
WINCE下,已给窗口句柄,获取应用程序的主窗口的小图标。
[复制链接]
用了不少方法都不行
ExtractIcon编译不通过
GetClassLong失败
SendMessage(hwnd,WM_GETICON,(WPARAM)ICON_SMALL,0); 也是失败
用了这个帖子最后回复中的方法http://topic.eeworld.net/t/20061030/15/5119437.html
还是不行,该帖lz说明了原因,但是看不懂改怎么弄。
我现在用如下代码:
HICON GetExeSmallIcon(HWND hWnd)
{
TCHAR szExeFileName[MAX_PATH] = {0};
//if (!GetClassName(hWnd, szExeFileName, MAX_PATH))
// return NULL;
//通过wnd 句柄,访问可执行程序名称。
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
DWORD dwError = GetLastError();
TCHAR szBuf[10];
wsprintf(szBuf, _T(""), dwError);
OutputDebugString(szBuf);
HANDLE hProcess = OpenProcess(0, FALSE, dwProcessId);
if (NULL == hProcess)
return NULL;
//GetProcessImageFileName();
GetModuleFileName((HMODULE)hProcess, szExeFileName, MAX_PATH); //无法获取。
OutputDebugString( szExeFileName );
SHFILEINFO sfi;
SHGetFileInfo(szExeFileName, 0, &sfi, sizeof(SHFILEINFO), SHGFI_SMALLICON);
CloseHandle(hProcess);
return sfi.hIcon;
}
“缺少进程访问的权限,修改一下security 101b的value 0 --〉1就可以了”
|
|