我是新手,要获取系统应用程序的名称,非常急,希望大家留下宝贵的意见.
TCHAR tszFilename[MAX_PATH];
DWORD dwProcessId;
HWND hWnd=(HWND)FindWindow(_T("Shell_TrayWnd"),NULL);
HMODULE hModule=(HMODULE)GetClassLong(hWnd,GCL_HMODULE);
GetWindowThreadProcessId(hWnd,&dwProcessId);
HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, dwProcessId);
GetModuleFileNameEx(hProcess,hModule,tszFilename,MAX_PATH);
CloseHandle(hProcess); 错误:
warning C4312: “类型转换”: 从“DWORD”转换到更大的“HMODULE”
error LNK2019: 无法解析的外部符号 _GetModuleFileNameExW@16,
fatal error LNK1120: 1 个无法解析的外部命令
TCHAR tszFilename[MAX_PATH];
DWORD dwProcessId;
HWND hWnd=(HWND)FindWindow(_T("Shell_TrayWnd"),NULL);
HMODULE hModule=(HMODULE)GetClassLong(hWnd,GCL_HMODULE);
GetWindowThreadProcessId(hWnd,&dwProcessId);
HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, dwProcessId);
GetModuleFileNameEx(hProcess,hModule,tszFilename,MAX_PATH);
CloseHandle(hProcess); 错误:
warning C4312: “类型转换”: 从“DWORD”转换到更大的“HMODULE”
error LNK2019: 无法解析的外部符号 _GetModuleFileNameExW@16,
fatal error LNK1120: 1 个无法解析的外部命令
#pragma comment(lib, "psapi.lib")
或者在project > settings > link > input中加入psapi.lib如果还找不到psapi.lib, 下载MS SDK最新版.
TCHAR tszFilename[MAX_PATH];
DWORD dwProcessId;
HWND hWnd=(HWND)FindWindow(_T("Shell_TrayWnd"),NULL);
HMODULE hModule=(HMODULE)GetClassLong(hWnd,GCL_HMODULE);
GetWindowThreadProcessId(hWnd,&dwProcessId);
HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, dwProcessId);
GetModuleFileNameEx(hProcess,hModule,tszFilename,sizeof(tszFilename));
MessageBox(tszFilename);
CloseHandle(hProcess);运行后MessageBox里显示的全是乱码
可以自己单部调试
GetClassLong 失败
OpenProcess也失败.
所以是乱码