Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Убить все приложения текущего юзера


lightix ©   (2004-10-07 15:17:00) 

Каким образом можно убить все приложения текущего юзера?
Т.е. идея такая - пользователь для выхода с сервера терминалов закрывает программу которая ему прописана автоматом при запуске (меню) и при этом должны прибиться и все другие приложения , которые он не закрыл или выполняются на фоне и он их не видит.

Ну или по другому - как прибить одно приложение (плавающая панелька) если известно имя экзешника.


Yuri Btr   (2004-10-07 15:46:00) [1]

Наверно надо просто при закрытии контрольной программы определить имя пользователя, запустившего эту программу, и далее перебрать все процессы и убить те, где есть такой же пользователь.


lightix   (2004-10-07 15:25:00) [2]

как вариант - при создании процесса можно указать ведь что он является дочерним для того который его создает, и соответственно при убиении родительского процесса убить и дочерние?
что здесь изменить?

   STARTUPINFO si;
   PROCESS_INFORMATION pi;

   ZeroMemory( &si, sizeof(si) );
   si.cb = sizeof(si);
   ZeroMemory( &pi, sizeof(pi) );

//WinExec("/ddic/admin/float_clock/float_clock.exe",1);
   if( !CreateProcess( NULL,   // No module name (use command line).
       TEXT("/ddic/admin/float_clock/float_clock.exe"), // Command line.
       NULL,             // Process handle not inheritable.
       NULL,             // Thread handle not inheritable.
       FALSE,            // Set handle inheritance to FALSE.
       0,                // No creation flags.
       NULL,             // Use parent's environment block.
       NULL,             // Use parent's starting directory.
       &si,              // Pointer to STARTUPINFO structure.
       &pi )             // Pointer to PROCESS_INFORMATION structure.
   )
   {
       printf( "CreateProcess failed (%d).\n", GetLastError() );
       return;
   }


Наверх

Титульная страница Поиск, карта сайта Написать письмо