powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ShellExecute: задержка выполнения программы до отработки внешней программы
25 сообщений из 74, страница 2 из 3
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898658
Sinemurius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Ну я же написал: может кому интересно.

Вот мне было нужно...

Кстати, легко переделать так, чтобы вывод шел куда нибудь в TMemo или еще куда при вызове из ГУИ-шной программы.

И да, мне показалось, что это по теме.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898661
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sinemurius
Вот мне было нужно...

Не расскажешь, для чего?
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898662
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2019 15:26, Sinemurius пишет:
> Вот мне было нужно...

а для зачем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898663
Sinemurius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для консольной программы, которая устанавливает библиотеку в IDE Delphi (для чего вызывает dcc32), устанавливает help для компонентов, перекомпилирует все исходники, демки и т.д.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898664
BorodaOleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё
BorodaOleg
CMD выводит лог опроса, по окончании обработки окно закрывается, визуально видно что копия создана.


1. Что за "лог опроса"?
2. А без cmd.exe - "окно не закрывается", "визуально не видно"?


1. Лог опроса - имеется в виду, что gbak выдаёт на экран в процессе компрессии/декомпрессии
2. Без cmd.exe почему-то не находится gbak. Несмотря на то, что я даже этот самый gbak в корень скопировал и маршрут к нему прописал
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898665
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2019 15:29, Sinemurius пишет:
> Для консольной программы, которая устанавливает библиотеку в IDE Delphi (для чего вызывает dcc32),
> устанавливает help для компонентов, перекомпилирует все исходники, демки и т.д.

щас придумал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898676
BorodaOleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BorodaOleg
ёёёёё
пропущено...


1. Что за "лог опроса"?
2. А без cmd.exe - "окно не закрывается", "визуально не видно"?


1. Лог опроса - имеется в виду, что gbak выдаёт на экран в процессе компрессии/декомпрессии
2. Без cmd.exe почему-то не находится gbak. Несмотря на то, что я даже этот самый gbak в корень скопировал и маршрут к нему прописал
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898682
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BorodaOleg
ёёёёё
пропущено...


1. Что за "лог опроса"?
2. А без cmd.exe - "окно не закрывается", "визуально не видно"?


1. Лог опроса - имеется в виду, что gbak выдаёт на экран в процессе компрессии/декомпрессии
2. Без cmd.exe почему-то не находится gbak. Несмотря на то, что я даже этот самый gbak в корень скопировал и маршрут к нему прописал


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
function CreateAndWaitSubProcess(const ModuleFileName, CmdLine, CurrDir: string; ShowProcess: Boolean): Boolean;
var
  StartInfo: TStartUpInfo;
  ResultInfo: TProcessInformation;
  PCmdLine, PCurrDir: PChar;
begin
  GetStartupInfo(StartInfo);
  if not ShowProcess then begin
    StartInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartInfo.wShowWindow := SW_HIDE;
  end;
  if CmdLine > '' then PCmdLine := PChar(AnsiQuotedStr(ModuleFileName, '"') + ' ' + CmdLine) else PCmdLine := nil;
  if CurrDir > '' then PCurrDir := PChar(CurrDir) else PCurrDir := nil;
  Result := CreateProcess(PChar(ModuleFileName), PCmdLine, nil, nil, False, NORMAL_PRIORITY_CLASS, nil, PCurrDir, StartInfo, ResultInfo);
  if Result then begin
    WaitForInputIdle(ResultInfo.hProcess, INFINITE); // ждем завершения инициализации
    WaitforSingleObject(ResultInfo.hProcess, INFINITE); // ждем завершения процесса
    //    GetExitCodeProcess(ResultInfo.hProcess, ExitCode); // получаем код завершения
    CloseHandle(ResultInfo.hThread); // закрываем дескриптор процесса
    CloseHandle(ResultInfo.hProcess); // закрываем дескриптор треда
  end;
end;
...

const
  cFNgbak = 'D:\Tools\FB\Servers\40\gbak.exe';
  cCmdStr = '-b "localhost/3104:D:\Tst40.fdb" "D:\Tst40.fbk" -user SYSDBA -pas masterkey -v';
begin
  if not CreateAndWaitSubProcess(cFNgbak, cCmdStr, '', true) then
    ShowMessageFmt('Фигня какая-то: %s', [SysErrorMessage(GetLastError)]);
end;
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898685
Sinemurius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Нет. Это в входит в библиотеку: http://mraven.ru/files/Raven_Link_ver_1_7.zip

Но вообще, я в принципе люблю консольные программы.
Еще с того момента, когда я писал бухгалтерию на 580 ассемблере.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898686
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот это
CloseHandle(ResultInfo.hThread);
зачем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898688
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
а вот это
CloseHandle(ResultInfo.hThread);
зачем?

Это артефакт, местные тараканы.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898689
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2019 15:59, ёёёёё пишет:
>
> Это артефакт, местные тараканы.

оно кстати, кочует по интернетам из FAQа в FAQ...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898692
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
05.12.2019 15:59, ёёёёё пишет:
>
> Это артефакт, местные тараканы.

оно кстати, кочует по интернетам из FAQа в FAQ...

Ещё бы.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898693
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

у нас поддержка win98 совсем недавно прекратилась, там много таких странностей.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898694
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
а вот это
CloseHandle(ResultInfo.hThread);
зачем?
А что не так?
https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa Handles in PROCESS_INFORMATION must be closed with CloseHandle when they are no longer needed.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898696
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2019 16:06, _Vasilisk_ пишет:
> А что не так?

а то, что ты закрываешь рукоятки дохлого процесса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898704
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
05.12.2019 16:06, _Vasilisk_ пишет:
> А что не так?

а то, что ты закрываешь рукоятки дохлого процесса.

Сейчас вроде как уже пофиг, разве что мусор в системе остается: https://devblogs.microsoft.com/oldnewthing/?p=38363
А в старых виндах какая-то фигня была. Мы при завершении старательно освобождали все ресурсы.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898706
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
а то, что ты закрываешь рукоятки дохлого процесса.
И что? Хэндлы выделены нашему процессу и наш процесс должен их позакрывать. Время жизни хэндлов потока и процесса никак не связано с временем жизни объекта
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898713
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2019 16:22, _Vasilisk_ пишет:
> Время жизни хэндлов потока и процесса никак не связано с временем жизни объекта

ты их не аллокировал. их отдала тебе винда.
при завершении процесса все егойные рукоятки освобождаютя.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898724
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поковырял msdn.
у них в примере тоже закрываются рукоятки.
https://docs.microsoft.com/ru-ru/windows/win32/procthread/creating-processes
ладно, пусть будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898725
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
ты их не аллокировал. их отдала тебе винда.
при завершении процесса все егойные рукоятки освобождаютя.

Те, которые созданы (выделены, аллокированы) в том процессе.
А эти хендлы, в твоем процессе - будут жить, пока не закроется твой процесс, или до CloseHandle.
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898727
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
05.12.2019 16:22, _Vasilisk_ пишет:
> Время жизни хэндлов потока и процесса никак не связано с временем жизни объекта

ты их не аллокировал. их отдала тебе винда.
при завершении процесса все егойные рукоятки освобождаютя.

Может быть, какие-то внутренние буфера, которыми ты формально владеешь в результате выполнения CreateProcess().
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898728
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2019 16:41, YuRock пишет:
> А эти хендлы, в твоем процессе - будут жить, пока не закроется твой процесс

да, логично.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898741
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BorodaOleg
BorodaOleg
пропущено...


1. Лог опроса - имеется в виду, что gbak выдаёт на экран в процессе компрессии/декомпрессии
2. Без cmd.exe почему-то не находится gbak. Несмотря на то, что я даже этот самый gbak в корень скопировал и маршрут к нему прописал



А без консоли вывод слабо сделать?
незачот

МП, прости :)
...
Рейтинг: 0 / 0
ShellExecute: задержка выполнения программы до отработки внешней программы
    #39898745
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

переводить вывод консольных приложений в мемо(и т.п.) чревато искажениями. "Консолька" не всегда лишь просто печатает текст.
...
Рейтинг: 0 / 0
25 сообщений из 74, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ShellExecute: задержка выполнения программы до отработки внешней программы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]