Russian Qt Forum
Сентябрь 30, 2024, 16:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Определение запущено или не запущено другое приложение.  (Прочитано 4205 раз)
Pupil
Гость
« : Март 14, 2011, 10:07 »

 Непонимающий
Доброе утро!

Qt 4.5.3, Red Hat Linux. Пытаюсь определить запущено или не запущено стороннее приложение.
В прошлой теме нашёл кусок для Xp:

Код:
// Получение списка процессов
/***************************************************************************/
 
class LProcessInfo {
public:
LProcessInfo() {
      memset( &pi, 0, sizeof(PROCESSENTRY32) );
   }
LProcessInfo( PROCESSENTRY32 p ) {
      memset( &pi, 0, sizeof(PROCESSENTRY32) );
      init(p);
   }
  ~LProcessInfo() { }
/**/
void init( PROCESSENTRY32 p ) { memcpy( &pi, &p, sizeof(PROCESSENTRY32) ); }
   /**/
   luint32 id()          const { return pi.th32ProcessID;       }
   luint32 size()        const { return pi.dwSize;              }
   luint32 usage()       const { return pi.cntUsage;            }
   luint32 module_id()   const { return pi.th32ModuleID;        }
   luint32 threads()     const { return pi.cntThreads;          }
   luint32 parent_id()   const { return pi.th32ParentProcessID; }
   lint32  parent_pri()  const { return pi.pcPriClassBase;      }
   luint32 flags()       const { return pi.dwFlags;             }
   const lchar*name()    const { return &pi.szExeFile[0];       }
   /**/
   bool operator< ( const LProcessInfo& pi ) {
      return l_strcmpi( name(), pi.name() ) < 0;
   }
private:
   PROCESSENTRY32 pi;
};
 
/***************************************************************************/
 
class LProcessInfoList: public LVector<LProcessInfo> {
public:
   LProcessInfoList() { refresh(); }
  ~LProcessInfoList() {}
   /**/
   void refresh() {
HANDLE pl;
PROCESSENTRY32 pe;
/**/
pl = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe.dwSize = sizeof(PROCESSENTRY32);
pe.th32ParentProcessID = 0;
/**/
if ( Process32First(pl, &pe) ) {
do {
push_back( LProcessInfo(pe) );
pe.th32ParentProcessID = 0;
} while ( Process32Next(pl, &pe) );
}
CloseHandle(pl);
}
};
 
/***************************************************************************/

   

Для Ред Хата оно также или необходима иная реализация? Просветите, пожалуйста.

P.S. сторонний класс QtSingleApplication также не нашёл у троллей.  Строит глазки
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 14, 2011, 10:14 »

Читай маны по каталогу /proc
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Март 14, 2011, 11:29 »

Цитировать
P.S. сторонний класс QtSingleApplication также не нашёл у троллей.
Исходники
Описание
Записан

Qt 5.11/4.8.7 (X11/Win)
Pupil
Гость
« Ответ #3 : Март 14, 2011, 13:06 »

Всем откликнувшимся - Спасибо! QtSingleApplication не пойдёт - некрасивый способ реализации.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Март 14, 2011, 13:11 »

Цитировать
QtSingleApplication не пойдёт - некрасивый способ реализации.
А тебе его и не советовали Улыбающийся
Записан

Qt 5.11/4.8.7 (X11/Win)
Pupil
Гость
« Ответ #5 : Март 14, 2011, 13:18 »

Не спорю. Но пока туплю как вывести список процессов в линухе.  Подмигивающий
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Март 14, 2011, 14:27 »

man ps
Записан

ArchLinux x86_64 / Win10 64 bit
Pupil
Гость
« Ответ #7 : Март 14, 2011, 21:39 »

Вопрос решился. Всем огромное Спасибо!  Смеющийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #8 : Март 14, 2011, 22:08 »

Если сам решаешь вопрос, приводи решение, чтобы другие потом могли воспользоваться.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.089 секунд. Запросов: 23.