进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1842字,纯文字阅读大概需要3分钟。
内容图文
![进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)](/upload/InfoBanner/zyjiaocheng/1226/f7511d472de9427081de1a1ed3643c2a.jpg)
WORD GetProcessIdByName(WCHAR *processName)
{
DWORD processId = 0;
HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
return 0;
}
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
BOOL bMore=Process32First(hProcessSnap,&pe32);
if(!bMore)
{
goto __END;
}
do
{
if(_wcsicmp(pe32.szExeFile,processName) == 0)
{
if( _wcsicmp(pe32.szExeFile,processName/*GetProcessUserName(pe32.th32ProcessID),L"SYSTEM"*/) == 0)
{
processId = pe32.th32ProcessID;
break;
}
}
} while(Process32Next(hProcessSnap,&pe32));
__END:
CloseHandle(hProcessSnap);
return processId;
}
HANDLE ht = OpenProcess( PROCESS_ALL_ACCESS,FALSE,processId);
//进程序公司名:
#pragma comment(lib,"Version.lib")
//进程路径 名子
void GetPeFileCompany(WCHAR* file_path,WCHAR*&path) {
DWORD useless;
DWORD info_size = GetFileVersionInfoSizeW(file_path, &useless);
if (info_size > 0) {
BYTE *data_buffer = new BYTE[info_size*2/*+1*/];
ZeroMemory(data_buffer,info_size*2);
if (data_buffer!=NULL) {
if (GetFileVersionInfoW(file_path, 0, info_size*2, data_buffer)) {
void* data_ptr;
UINT data_len;
if (VerQueryValueW(data_buffer, L"\\VarFileInfo\\Translation", &data_ptr, &data_len)) {
const WORD* ver_data = reinterpret_cast<const WORD*>(data_ptr);
WCHAR fp_key[MAX_PATH]={0};
wsprintf(fp_key,L"\\StringFileInfo\\%04x%04x\\CompanyName",
ver_data[0], ver_data[1]);
if(VerQueryValueW(data_buffer, fp_key, &data_ptr, &data_len)) {
path = new WCHAR[data_len];
memcpy(path,data_ptr,data_len*2);
if (data_buffer != NULL)
{
delete []data_buffer;
data_buffer = NULL;
}
}
}
}
}
}
}
WCHAR *ppp = NULL;
GetPeFileCompany(tp.GetBuffer(),ppp);
AfxMessageBox(ppp);
if (ppp != NULL)
{
delete []ppp;
ppp = NULL;
}
http://blog.csdn.net/yjwffgip456/article/details/11079823
原文:http://www.cnblogs.com/findumars/p/5636096.html
内容总结
以上是互联网集市为您收集整理的进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)全部内容,希望文章能够帮你解决进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。