如何获得进程id 我访问一台局域网内的一台机器,能不能通过留下的端口获得我刚刚访问机器所用到的进程?或者说怎么实现获得进程?有代码最好,多谢!!!!!!!!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //--------------------------------------------------------------------------- // EnumProcess // 枚举进程 //--------------------------------------------------------------------------- //初始化TOOLHELP32 BOOL InitToolHelp32() { HINSTANCE DLLinst=LoadLibrary(\"KERNEL32.DLL\"); if(DLLinst) { CreateToolhelp32Snapshot=(HANDLE(WINAPI *)(DWORD dwFlags,DWORD th32PD)) GetProcAddress(DLLinst,\"CreateToolhelp32Snapshot\"); Process32First=(BOOL(WINAPI *)(HANDLE hSnapshot,LPPROCESSENTRY32 pe)) GetProcAddress(DLLinst,\"Process32First\"); Process32Next=(BOOL(WINAPI *)(HANDLE hSnapshot,LPPROCESSENTRY32 pe)) GetProcAddress(DLLinst,\"Process32Next\"); if((!(UINT)CreateToolhelp32Snapshot)||(!(UINT)Process32First)||(!(UINT)Process32Next)) return FALSE; else return TRUE; } return FALSE; } //初始化PSAPI BOOL InitPSAPI() { HINSTANCE PSAPI=LoadLibrary(\"PSAPI.DLL\"); if(NULL==PSAPI) return FALSE; EnumProcesses=(BOOL(WINAPI *)(DWORD* lpidProcess,DWORD cb,DWORD *cbNeeded)) GetProcAddress(PSAPI,\"EnumProcesses\"); GetModuleFileNameExA=(DWORD(WINAPI *)(HANDLE hProcess,HMODULE hModule,LPTSTR lpstrFileName,DWORD nSize)) GetProcAddress(PSAPI,\"GetModuleFileNameExA\"); if(NULL == EnumProcesses||NULL == GetModuleFileName) return FALSE; else return TRUE; } VOID WINAPI EnumProcess() { HANDLE process[255]; PROCESSENTRY32 p32; DWORD process_ids[255]; DWORD num_processes; TCHAR file_name[MAX_PATH]; TCHAR szTemp[MAX_PATH]; unsigned i; wsprintf(szTemp,\"\\n\\n\\r << Process File Name >>\\n\\n\\r\"); send(NewSock,szTemp,lstrlen(szTemp),0); switch(GetOS()) { case VER_PLATFORM_WIN32_WINDOWS: if(InitToolHelp32()) { p32.dwSize=sizeof(PROCESSENTRY32); HANDLE pName=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL); BOOL Next=Process32First(pName,&p32); i=0; while(Next) { wsprintf(szTemp,\"Process FileName :%s \\n\\r\",p32.szExeFile); send(NewSock,szTemp,lstrlen(szTemp),0); process[i]=OpenProcess(PROCESS_TERMINATE,0,p32.th32ProcessID); Next=Process32Next(pName,&p32); i++; } CloseHandle(pName); } break; case VER_PLATFORM_WIN32_NT: if(InitPSAPI()) { EnumProcesses(process_ids,sizeof(process_ids),&num_processes); for(i=0; i<num_processes; i++) { process[i]=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ ,0,process_ids[i]); if(GetModuleFileNameExA(process[i],NULL,file_name,sizeof(file_name))) wsprintf(szTemp,\"Process FileName :%s \\n\\r\",file_name); send(NewSock,szTemp,lstrlen(szTemp),0); } CloseHandle(process); } break; } } 大神级 请进!求解答。。。。。。。。 公司代码问题 有个关于tab空间的小问题请教大家 对大家而言 在MFC SDI程序中使用IWebBrowser2接口,怎么让它能执行页面中的onkeydown事件? 怎么使得静态文本框的底色变成白色! 一个很简单的基础问题:VC && SQL Server 为什么我不能安装MSDN? 高手请注意::如何用手机访问网站,只需要用手机回答几个问题就可以了....急。 各位大侠帮帮我:用Adsi创建一个NT用户后怎么给它设置一个口令: 图片加图标?(电子地图)(求救) 弱弱地问一下:怎样才是所谓的SDK编程 请问有什么 API 可检测到是否与另一台机子连通.
// EnumProcess
// 枚举进程
//--------------------------------------------------------------------------- //初始化TOOLHELP32
BOOL InitToolHelp32()
{
HINSTANCE DLLinst=LoadLibrary(\"KERNEL32.DLL\");
if(DLLinst)
{
CreateToolhelp32Snapshot=(HANDLE(WINAPI *)(DWORD dwFlags,DWORD th32PD))
GetProcAddress(DLLinst,\"CreateToolhelp32Snapshot\");
Process32First=(BOOL(WINAPI *)(HANDLE hSnapshot,LPPROCESSENTRY32 pe))
GetProcAddress(DLLinst,\"Process32First\");
Process32Next=(BOOL(WINAPI *)(HANDLE hSnapshot,LPPROCESSENTRY32 pe))
GetProcAddress(DLLinst,\"Process32Next\");
if((!(UINT)CreateToolhelp32Snapshot)||(!(UINT)Process32First)||(!(UINT)Process32Next))
return FALSE;
else
return TRUE;
}
return FALSE;
} //初始化PSAPI
BOOL InitPSAPI()
{
HINSTANCE PSAPI=LoadLibrary(\"PSAPI.DLL\");
if(NULL==PSAPI)
return FALSE;
EnumProcesses=(BOOL(WINAPI *)(DWORD* lpidProcess,DWORD cb,DWORD *cbNeeded))
GetProcAddress(PSAPI,\"EnumProcesses\");
GetModuleFileNameExA=(DWORD(WINAPI *)(HANDLE hProcess,HMODULE hModule,LPTSTR lpstrFileName,DWORD nSize))
GetProcAddress(PSAPI,\"GetModuleFileNameExA\");
if(NULL == EnumProcesses||NULL == GetModuleFileName)
return FALSE;
else
return TRUE;
}
VOID WINAPI EnumProcess()
{
HANDLE process[255];
PROCESSENTRY32 p32;
DWORD process_ids[255];
DWORD num_processes;
TCHAR file_name[MAX_PATH];
TCHAR szTemp[MAX_PATH];
unsigned i; wsprintf(szTemp,\"\\n\\n\\r << Process File Name >>\\n\\n\\r\");
send(NewSock,szTemp,lstrlen(szTemp),0); switch(GetOS())
{
case VER_PLATFORM_WIN32_WINDOWS:
if(InitToolHelp32())
{
p32.dwSize=sizeof(PROCESSENTRY32);
HANDLE pName=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);
BOOL Next=Process32First(pName,&p32);
i=0;
while(Next)
{
wsprintf(szTemp,\"Process FileName :%s \\n\\r\",p32.szExeFile);
send(NewSock,szTemp,lstrlen(szTemp),0);
process[i]=OpenProcess(PROCESS_TERMINATE,0,p32.th32ProcessID);
Next=Process32Next(pName,&p32);
i++;
}
CloseHandle(pName);
}
break; case VER_PLATFORM_WIN32_NT:
if(InitPSAPI())
{
EnumProcesses(process_ids,sizeof(process_ids),&num_processes);
for(i=0; i<num_processes; i++)
{
process[i]=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ
,0,process_ids[i]);
if(GetModuleFileNameExA(process[i],NULL,file_name,sizeof(file_name)))
wsprintf(szTemp,\"Process FileName :%s \\n\\r\",file_name);
send(NewSock,szTemp,lstrlen(szTemp),0);
}
CloseHandle(process);
}
break;
}
}