+ Ответить в теме
Показано с 1 по 1 из 1

Тема: CreateProcess вешает основной поток программы

  1. #1
    programmer Shouldercannon will become famous soon enough
    Регистрация
    08.06.2008
    Сообщений
    72
    Вес репутации
    10

    Question CreateProcess вешает основной поток программы

    Доброго времени суток!
    Запускаю приложения так
    Код :
    1. procedure TFormMain.Button1Click(Sender: TObject);
    2. begin
    3.   FillChar(StartupInfo, SizeOf(StartupInfo), 0);
    4.   FillChar(ProcessInfo, SizeOf(ProcessInfo), 0);
    5.   StartupInfo.cb := SizeOf(StartupInfo);
    6.   StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
    7.   StartupInfo.wShowWindow := SW_SHOWNORMAL;
    8.   if CreateProcess(nil,
    9.                    PChar(Edit1.Text),
    10.                    nil,
    11.                    nil,
    12.                    False,
    13.                    CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
    14.                    nil,
    15.                    PChar(ExtractFilePath(Edit1.Text)),
    16.                    StartupInfo,
    17.                    ProcessInfo) then
    18.   begin
    19.     WaitForSingleObject(ProcessInfo.hProcess, INFINITE); // Ждём завершения процесса
    20.     CloseHandle(ProcessInfo.hThread);
    21.     CloseHandle(ProcessInfo.hProcess);
    22.   end;
    23. end;
    после чего основной поток повисает, пока не закрою созданное CreateProcess приложение. Отследить завершение работы приложения тоже надо. Как можно исправить данное положение?
    Последний раз редактировалось Shouldercannon; 24.12.2017 в 00:08.

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
+ Ответить в теме

Похожие темы

  1. Hook на CreateProcess
    Еще одну интересную темку создам.. Нужно в течении некотого промежутка закрывать все созданные процессы. В принцыпе есть варриант сравнить все...
    от Duncon в разделе Delphi и Pascal
  2. CreateProcess in Visual Studio 6.0
    Доброго времени суток! Есть код if (!CreateProcess( m_FileName, NULL, NULL, NULL, FALSE, ...
    от AvA в разделе C и C++
  3. CreateProcess и KAV
    написал телнет с использованием перенаправления CMD (через пайпы), а касперский антивирус теперь орёт "вирус" рутшел :( ни кто не знает как сделать...
    от RaDex в разделе Delphi и Pascal
  4. Отвлечемся от основной темы...
    Что-то так надоел мне explorer... Может кто-нибудь посоветовать надежный Shell... (.....Программа explorer выполнила недопустимую ошибку и будет...
    от Sokl в разделе Флейм.
  5. Как найти поток?
    Мне нужно найти в системе такой поток нужного мне процесса, который имеет окно(очередь сообщений). Перебрать(toolhelp API) все процессы и найти...
    от Keith в разделе Win API, Shell..

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения