Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как узнать запущена ли прога


Автор: Link90 4.12.2005, 18:25
Как узнать запущена ли прога, зная имя её EXE'шника?

Автор: AntonChik 5.12.2005, 09:15
получай список процессов, если не знаешь как,то смотри факи... но вообще не факт что имя процесса совпадет с именем exe- шника...

Автор: DIMA.NET 5.12.2005, 10:59
Вот ссылочка: http://forum.codenet.ru/showthread.php?threadid=9730. Может быть оно!

Автор: Gala 9.12.2005, 19:01
Вот функция определяющая запущен ли EXE файл (Если не надо определять PID уберещь, а мне он был нужен)
Код

bool     GetProcessByExeName(DWORD          *Pid,
                            AnsiString      ExeNameStr)

 {
  HANDLE           hProcessSnap;
  PROCESSENTRY32   pe32         = {0};
  AnsiString       temp         = "";

  hProcessSnap = NULL;
  hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
  if (hProcessSnap == (void*)-1)
   {
    return false;
   }
  pe32.dwSize = sizeof(PROCESSENTRY32);

  if(Process32First(hProcessSnap,&pe32)) temp = pe32.szExeFile;
  if((temp.UpperCase()).Pos(ExeNameStr))
   {
    *Pid = pe32.th32ProcessID;
    CloseHandle (hProcessSnap);
    return true;
   }
  pe32.dwSize = sizeof(PROCESSENTRY32);

  while (Process32Next(hProcessSnap,&pe32))
   {
    temp = pe32.szExeFile;
    if ((temp.UpperCase()).Pos(ExeNameStr))
     {
      *Pid = pe32.th32ProcessID;
      CloseHandle(hProcessSnap);
      return true;
     }
    pe32.dwSize = sizeof(PROCESSENTRY32);
   }
  CloseHandle(hProcessSnap);
  *Pid = 0;
  return false;
 }
//---------------------------------------------------------------------


Запуск функции
Код

    DWORD       PID;
    if (GetProcessByExeName(&PID, имя EXE - файла))
     {
        EXE - работает 
     }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)