Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Политики и процессы

Ответить
Настройки темы
C/C++ - [решено] Политики и процессы

Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


Добрый день господа, возникла проблемка: Необходимо чарез политику запускать процесс время выполнения которого занимает довольно значительное время(3мин). Ожидать и смотреть на заставку "выполнение скриптов запуска" вариант неприемлимый. Я написал прогу которая запускает етот процесс и сразу выходит. При проверке оказалось что винда прибивает все дочерние процессы запущенные основным после завершения основного процесса.
Как бы мне ето обойти?

Отправлено: 15:50, 28-04-2010

 

Пользователь


Сообщения: 74
Благодарности: 5

Профиль | Отправить PM | Цитировать


А как запускаешь процесс? И что он делает?

Отправлено: 16:20, 28-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    // Start the child process. 
	AfxMessageBox("Before start process");
    if( CreateProcess( NULL,   // No module name (use command line)
        "\\\\someshare\\somefile",        // 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
    ) 
 ............
Процесс запихивает таблицу постгрес вскую инфу про комп SID,name, и т.п. использует обращения к WMI и прямое обращение к драйверам HDD
Собственно из-за обращений к wmi пришлось вставить задержку на 2-е минуты в код, т.к. иногда служба не успевает поднятся до запуска приложения(есть очень старые компы по 256 оперативы 1Гц проц и на етом както живет антивирь СМС и т.п.).

Отправлено: 16:38, 28-04-2010 | #3


Пользователь


Сообщения: 74
Благодарности: 5

Профиль | Отправить PM | Цитировать


6-ой параметр этой функции, попробуй там указать DETACHED_PROCESS если не поможет этот, попробуй поиграться с другими флагами

Отправлено: 17:08, 28-04-2010 | #4


Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


detach непомог завтра буду играцца с другими, большое спасибо.

Отправлено: 17:52, 28-04-2010 | #5


Пользователь


Сообщения: 74
Благодарности: 5

Профиль | Отправить PM | Цитировать


Обрати внимание и на другие входящие параметры этой функции. Потом расскажешь - самому интересно.

Отправлено: 18:15, 28-04-2010 | #6


Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


C другими параметрами не игрался уж слишком их много , зато выяснил, что процесс запускается в job-е и CREATE_BREAKAWAY_FROM_JOB
"Акес денаед"

Видимо все процессы входящие в job прибиваются после выхода из родителя
Как обойти не представляю, использовать sheduler както по детски , да и кто даст гарантию что он на всех машинах работает

Отправлено: 13:07, 29-04-2010 | #7


Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


Появилась идея находу поменять job SetInformationJobObject дабы выставить флаг JOB_OBJECT_LIMIT_BREAKAWAY_OK
Проблема которую никак не могу решить где взять lpName job-а к которому принадлежит текущий процесс для передачи в OpenJobObject.

Отправлено: 15:00, 29-04-2010 | #8


Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


По результату пришлось находу внедрять dll в winlogon, дабы изменить настройки job-обьекта. Сам джоб обьект искал перечислением всех обьектов: http://forum.sysinternals.com/howto-...opic18892.html

Отправлено: 16:35, 03-06-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Политики и процессы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Процессы kop4enyi Хочу все знать 4 12-10-2006 12:29
процессы bezumes Хочу все знать 5 10-03-2006 06:11
Процессы Forrest Gump Хочу все знать 4 04-02-2005 14:40
Процессы Crowner Microsoft Windows 2000/XP 6 02-10-2004 07:39
Процессы в XP MaxR Microsoft Windows 2000/XP 8 10-10-2002 03:40




 
Переход