Witam, czy istnieje gotowa funkcja która sprawdzi czy dany proces o znanej nazwie jest uruchomiony i zwraca wartość true albo false.
Używam C++ Builder 2007
Jeśli nie ma takiej funcji, to jak sie zabrać za jej stworzenie


API
Zamykanie procesów.#include <tlhelp32.h>
bool __fastcall IsProcess(String ProcesName)
{
HWND Snap;
PROCESSENTRY32 proces;
Snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
proces.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(Snap, &proces))
{
do
{
if(proces.szExeFile[0] != '[')
{
if(SameText((String)proces.szExeFile, ProcesName))
{
return true;
}
}
}
while(Process32Next(Snap , &proces));
}
CloseHandle(Snap);
return false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String ProcessName = "totalcmd.exe";
bool test = IsProcess(ProcessName);
if(test) ShowMessage("Odnaleziono proces: " + ProcessName);
else ShowMessage("Nie odnaleziono procesu: " + ProcessName);
}
//---------------------------------------------------------------------------
bool test = false;
HWND hWnd = FindWindow(NULL, "Total Commander Ultima Prime 4.8 - Cyfrowy Baron"); // po nazwie okna
// lubHWND hWnd = FindWindow("TTOTAL_CMD", NULL); // po nazwie klasy okna
if(hWnd) test = true;
if(test) ShowMessage("Odnaleziono proces.");
else ShowMessage("Nie odnaleziono procesu.");


Powrót do Ogólne problemy z programowaniem
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości