Хех, весь инет облазил, а помог родной аЧат =)))
2Hidden, я сам на делфи не работал, но сейчас, когда искал нужный мне материал часто сталкивался, и пришел к выводу, что они очень похожи. Разумееется мое мнение мнение очень поверхностно, но на первый взгляд отличие только в операторах объявления.
На API? Ммм... Такой вопрос, я нашел код для убийства процесса такого вида:
Код:
//По имени ехе узнаем пид процесса
DWORD GetProcessByExeName(AnsiString ExeN)
{
DWORD id;
HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32 = {0};
AnsiString temp="";
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
pe32.dwSize=sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&pe32)) temp = pe32.szExeFile;
pe32.dwSize=sizeof(PROCESSENTRY32);
while(Process32Next(hProcessSnap,&pe32))
{
temp = pe32.szExeFile;
pe32.dwSize = sizeof(PROCESSENTRY32);
if (temp == ExeN)
{
id = pe32.th32ProcessID;
CloseHandle(hProcessSnap);
return id;
}
}
CloseHandle(hProcessSnap);
MessageBox(NULL, "Процесс не найден!", "Внимание!", MB_OK|MB_ICONWARNING);
return false;
}
//Зная пид убиваем процесс
bool KillProcByPid(DWORD id)
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, id);
if(INVALID_HANDLE_VALUE != hProcess)
{
TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
}
return 0;
}
{
AnsiString ExeName; //имя ехе
DWORD Pid = 0; // PID процесса
ExeName = "process.exe";
Pid = GetProcessByExeName(ExeName);
KillProcByPid(Pid);
{
Но его минус в том, что его можно использовать только для уничтожения одного процесса. А мне нужно на несколько. Я написал на один форум по C++, и там мне ответили, что можно воспользоваться broadcast'ом.
Почитал на сайте мелкомягких про это, но толком ничего не понял. Можешь объяснить, что это такое?