powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CreateProcess-аналог AllocConsole
25 сообщений из 95, страница 2 из 4
CreateProcess-аналог AllocConsole
    #39655678
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД__,

В контексте своего рабочего места. Когда херачит код. Один херачит и смотрит, правильно ли оно работает. Второй получает сборку и тоже проверяет, правильно ли оно работает. :)
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655682
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
окна...
всюду окна.
и в голове.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655683
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то ты не очень представляешь, что есть служба виндовс.
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655686
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД__,

Это ты не представляешь, что приложение может запускаться не только как сервис, но и в stand-alone режиме. Например, для отладки
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655688
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну так что ты тогда про сервисы талдычишь.
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655702
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД__,

По мне - это оптимальное название. Сервер или серверное приложение - не але. Служба - тем более. А сервис вроде как понятен. Не обязан быть ни сервером, ни службой. Но может быть как тем, так и этим
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655706
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, дичь полная.
Ну ладно, запуск "как приложения" для отладки, пусть с консолью.
Ну, сбилди отладочном приложение с флагом "консольное", вот тебе и консоль, что за бред с позиционированием окна...
И все равно, "как сервис" рано или поздно придется запускать - там уже гарантированно не будет ошибок, что ли? Так и будешь прыг-скок...
Напиши простейшего клиента для работы с сервисом, это же и просто и удобно, хоть локально сервис отлаживай, хоть удаленно, да и управлять/настраивать удобно.
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655708
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.06.2018 15:49, SOFT FOR YOU пишет:
> Сервер или серверное приложение - не але. Служба - тем более. А сервис вроде как понятен. Не обязан быть ни сервером, ни службой. Но может быть как тем, так и этим

о! второе пришествие Дэйва Катлера...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655739
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД__,

Делает одно приложение. Которое знает, сервис ли оно или stand-alone. И работает соответственно. В Debug или Release сборке
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655752
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUКоторое знает, сервис ли оно или stand-alone.

Когда твои тестеры задолбаются читать бегущую консоль, они тебя начнут бить пока ты не
сделаешь-таки вывод лога в файл, который удобно читать, грепать и отсылать по почтк. Так
что ты сэкономишь себе время, занявшись этим уже сейчас.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655768
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А уж какие забавные вещи позволяет творить имя файла лога типа \\.\pipe\MySuperLog -
вообще ни словами описать, ни в сказке рассказать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655775
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Я работаю в конторе, где 100+ сотрудников, и добрая половина из них программисты. Контора многие годы занимается тем, что разрабатывает промышленные сервера для линукс. И здесь используется как раз такая система, что пишутся логи и данные в терминал, в зависимости от уровня логирования. Поэтому будь добр, не рассказывай мне о том, что задолбаются делать тестеры.
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655779
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.06.2018 16:41, SOFT FOR YOU пишет:
> пишутся логи и данные в терминал

вкуда?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655789
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUКонтора многие годы занимается тем, что разрабатывает промышленные сервера для линукс. И
здесь используется как раз такая система, что пишутся логи и данные в терминал, в
зависимости от уровня логирования.

Не хочу тебя расстраивать, но, в отличии от линуха, виндовая консоль открывается в той
позиции и с тем размером которые ей установили в прошлый раз. Поэтому принудительно каждый
раз перетаскивать её в центр экрана совершенно не нужно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655798
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655809
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Я проверял, у меня не сохраняется
Может быть потому, что область вывода и размеры окна меняю
Может, что приложение изначально не консоль, а вызывается AllocConsole
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655820
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUМожет, что приложение изначально не консоль, а вызывается AllocConsole

А ты проверь: убери свои прыжки в ширину, измени параметры через диалог из системной
менюшки и посмотри где эта консоль откроется в следующий раз.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655827
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUDimitry Sibiryakov,

Я проверял, у меня не сохраняется
Может быть потому, что область вывода и размеры окна меняю
Может, что приложение изначально не консоль, а вызывается AllocConsole

Может, и не сохраняется, кто знает, что там у тебя за код.
...
Сделай консольный лончер. Крошечное консольное приложение, которое будет стартовать твой сервис и завершаться.
А сервис уже будет использовать консоль лончера.
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655828
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Да проверяли уже
Говорю же )
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655870
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUДа проверяли уже
Говорю же )

Ну значит руки рихтуйте, проверяльщики, ибо у меня AllocConsole() в тестовом приложении,
сляпанном за пару минут, показывает консоль точно на том месте, которое я ей задал в
конфигурации. Ссылка, приведённая мною выше, не врёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655878
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

А область вывода менял?
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655881
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть и правда я криво проверял
В любом случае я центрирую окно и хочу сделать это по красоте
Если к сообщению первого оратора есть что добавить - ради бога
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39655893
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUА область вывода менял?

А твоя "область вывода" это, случайно так, не "Screen Buffer", которых может быть много?..
Они, сюрприз, в Windows существуют отдельно от консольного окна.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39657357
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зафигачил функцию, всё работает

Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
procedure AllocInvisibleConsole;
var
  FileName: string;
  Buffer: array[0..MAX_PATH] of Char;
  StartupInfo: TStartUpInfo;
  ProcInfo: TProcessInformation;
  Handle: THandle;
  Coord: TCoord;
  Temp: Cardinal;
  Info: TConsoleScreenBufferInfo;
  Count: NativeUInt;
begin
  SetString(FileName, Buffer, GetSystemDirectory(Buffer, MAX_PATH - 1));
  FileName := IncludeTrailingPathDelimiter(FileName) + 'cmd.exe';

  FillChar(StartupInfo, SizeOf(TStartupInfo), #0);
  StartupInfo.cb := SizeOf(TStartupInfo);
  StartupInfo.wShowWindow := SW_HIDE;
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  if (FileExists(FileName)) and (CreateProcess(PChar(FileName), nil, nil, nil,
    True, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcInfo)) then
  begin
    while (not AttachConsole(ProcInfo.dwProcessId)) do
      Sleep(10);

    TerminateProcess(ProcInfo.hProcess, Temp);
    SetConsoleTitle(PChar(ParamStr(0)));

    Handle := GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(Handle, Info);
    Count := NativeUInt(Info.dwSize.X) * NativeUInt(Info.dwSize.Y);
    FillChar(Coord, SizeOf(Coord), #0);
    FillConsoleOutputAttribute(Handle, Info.wAttributes, Count, Coord, Temp);
    FillConsoleOutputCharacter(Handle, #32, Count, Coord, Temp);
    FillChar(Coord, SizeOf(Coord), #0);
    SetConsoleCursorPosition(Handle, Coord);
  end else
  begin
    AllocConsole;
    ShowWindow(GetConsoleWindow, SW_HIDE);
  end;
end;



Вопрос. Это работает в Windows 10. В других виндах сюрпризов не будет? Меня смущает STD_OUTPUT_HANDLE/STD_INPUT_HANDLE
...
Рейтинг: 0 / 0
CreateProcess-аналог AllocConsole
    #39657361
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOUЗафигачил функцию, всё работает

Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
procedure AllocInvisibleConsole;
var
  FileName: string;
  Buffer: array[0..MAX_PATH] of Char;
  StartupInfo: TStartUpInfo;
  ProcInfo: TProcessInformation;
  Handle: THandle;
  Coord: TCoord;
  Temp: Cardinal;
  Info: TConsoleScreenBufferInfo;
  Count: NativeUInt;
begin
  SetString(FileName, Buffer, GetSystemDirectory(Buffer, MAX_PATH - 1));
  FileName := IncludeTrailingPathDelimiter(FileName) + 'cmd.exe';

  FillChar(StartupInfo, SizeOf(TStartupInfo), #0);
  StartupInfo.cb := SizeOf(TStartupInfo);
  StartupInfo.wShowWindow := SW_HIDE;
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  if (FileExists(FileName)) and (CreateProcess(PChar(FileName), nil, nil, nil,
    True, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcInfo)) then
  begin
    while (not AttachConsole(ProcInfo.dwProcessId)) do
      Sleep(10);

    TerminateProcess(ProcInfo.hProcess, Temp);
    SetConsoleTitle(PChar(ParamStr(0)));

    Handle := GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(Handle, Info);
    Count := NativeUInt(Info.dwSize.X) * NativeUInt(Info.dwSize.Y);
    FillChar(Coord, SizeOf(Coord), #0);
    FillConsoleOutputAttribute(Handle, Info.wAttributes, Count, Coord, Temp);
    FillConsoleOutputCharacter(Handle, #32, Count, Coord, Temp);
    FillChar(Coord, SizeOf(Coord), #0);
    SetConsoleCursorPosition(Handle, Coord);
  end else
  begin
    AllocConsole;
    ShowWindow(GetConsoleWindow, SW_HIDE);
  end;
end;




Вопрос. Это работает в Windows 10. В других виндах сюрпризов не будет? Меня смущает STD_OUTPUT_HANDLE/STD_INPUT_HANDLE
поставь винду в виртуалку и проверь
...
Рейтинг: 0 / 0
25 сообщений из 95, страница 2 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CreateProcess-аналог AllocConsole
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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