Страница 1 из 1

Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 03.02.2019 21:29:11
Facox
Доброго времени гоcпода и дамы ;)

Только познаю Free Pascal и как один из вариантов полезного обучения выбрал для себя задачу создания программы, которая сможет автоматизировать некоторые процессы. Прошу совета, как составить тело программы для решения пока такой задачи: запуск набора ранее установленных программ с ключами, часть из которых в фоновом режиме. Программа добавляется в автозагрузку, после старта системы сработает мой exeшник , запустит программы, откроет их и подготовит к работа, а часть отработает в фоновом режиме без запуска черных окон. В целом, как прописать запуск обычных программ я разобрался

ПРИМЕР
Код: Выделить всё
program launchprogram;
uses
   Classes, SysUtils, Process;

var
   AProcess: TProcess;


begin

   AProcess := TProcess.Create(nil);


   AProcess.CommandLine := 'C:\Program Files\1cv83\bin\1cv8.exe» ENTERPRISE /F»D:\database\User» /N»Админ» /P»12345;

   AProcess.Options := AProcess.Options + [poWaitOnExit];


   AProcess.Execute;
       AProcess := TProcess.Create(nil);
   AProcess.CommandLine := 'C:\WORK\dop.bat';
   AProcess.Options := AProcess.Options + [poWaitOnExit];
   AProcess.Execute;

   AProcess.Free; 
   

end.


общее кол-во программ для старта рабочего места 12, некоторые *.bat файлы должны бы запускаться в фоне и не загромождать собой рабочий стол. Вот именно с этим и встал вопрос =\ Прощу помощи, как реализоваться эту функцию. Можно как и через какую либо фишку для запуска bat, так и внесения строчки запуска в код программы.

За ранее спасибо. =)

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 03.02.2019 23:40:21
Лекс Айрин
Facox, а что мешает запускать программы без запуска bat файла напрямую? Это же делается точно так же.
Плюс, плохим тоном будет запуск программ без какого-либо диагностического выхлопа. Ну и возможности их завершить.

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 04.02.2019 19:30:37
Facox
Проблему на данный момент решил через PowerShell. Теперь почему не удобно без бата - на рабочем столе придется создать десяток ярлыков в которые будет прописана программа и ключи ( как в случае 1С ), пользователи в силу возраста не желают начинать рабочий день с кликов всеех ярлыков, они желают войти в систему, которая сама все запустит. Скрытые программы, это когда не надо перегружать окнами запуска разных облачных дисков и пр.сервисов.

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 04.02.2019 20:30:53
zoltanleo
Facox писал(а):часть отработает в фоновом режиме без запуска черных окон.

а чем не угодили cmd-окна?

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 04.02.2019 21:43:24
Лекс Айрин
zoltanleo, видимо, не хочет загромождать окнами монитор.
Facox, так ты Лансер делаешь или что? Кто тебе мешает выбрать конфигурацию прямо в запускающейся форме программы, если уж у тебя разные конфигурации? Примерно так, как выбирается тип проекта в самом Лазарусе. Потом настроишь конфигурации и пусть пользуются.

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 09.02.2019 14:41:58
Facox
Лекс Айрин прав - мне, а вернее моим конечным пользователям, не нужны эти окна.

О себе: cисдамин с начальными навыками, обслуживаю компанию с юзерами бухгалтерами, помощниками бухгалетеров - тети за 50, для которых утро начинается с кнопки вкл на чайнике и системнике. Через 5 минут, как они повесят свои плащи в гардероб, сбрызнут на себя капли чудных туалетных вод, у них должен быть готов кофе вместе с рабочим окружением. И вот ничего личшнего ;) Учитывая наше местоположение в 300 метрах по улице друг от друга, и изоляцией по просьбе директора от внешнего Мира всей их сети ( только 1 системник имеет выход в Интернет ), ставить отдлеьную точку доступа, сеть и пр - руковод не хочет. Мною было принято решение написать один файл, который запустит все необходимое, пока тети кофе утренний свой пьют. И создать второй файл, который при эксренной ситуации ( ну что то не грузит, пошло не так ), будет запущен тетей, файл опять перепишет себя в автозагрузку, проверит лог ( вот следущий шаг ), выгрузит все в файлю который я потом могу прижти и почитать =) Вот вся идея. Помимо запсука 1С, стартуют прикладные софты ( отличаются ), браузеры, Эксели.

Пишу я все geany, хочу быть ближе к коду, понимая что пишу.

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 18.03.2019 21:21:49
Cheb
В гугле забанили?
Первый же поиск по "TProcess hide console window" дал https://stackoverflow.com/questions/198 ... a-tprocess
, где приведено решение:
AProcess.Options := AProcess.Options + [poNoConsole];

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 23.03.2019 09:00:01
Python
Кстати да, согласен, в лог информацию очень надо передавать. Вот за пару минуток набросал примерчик, его можно допилить:
Код: Выделить всё
var
  AProcess:TProcess;
begin
  AProcess := TProcess.Create(nil);
  AProcess.Executable := 'cmd';
  AProcess.Parameters.Add('/c');
  AProcess.Parameters.Add('echo');
  AProcess.Parameters.Add('%PATH%');
  AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes, poNoConsole];
  AProcess.Execute;
  Memo1.Lines.LoadFromStream(AProcess.Output);  // это надо выгрузить в лог
  AProcess.Free;
end;

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 23.03.2019 21:17:00
wofs
Хм... Стандартный планировщик Windows и экспорт/импорт задачи для простоты настройки n компьютеров с одинаковой конфигурацией?
Есть возможность запускать программы с параметрами, можно запускать софт при запуске системы...
А если нужно какое-то сложное логирование или реакция на проблемы, то Powershell + планировщик. Для логирования, кстати, удобно юзать журнал Windows.

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 05.09.2019 22:14:59
Sharfik
wofs писал(а):Хм... Стандартный планировщик Windows и экспорт/импорт задачи для простоты настройки n компьютеров с одинаковой конфигурацией?
Есть возможность запускать программы с параметрами, можно запускать софт при запуске системы...
А если нужно какое-то сложное логирование или реакция на проблемы, то Powershell + планировщик. Для логирования, кстати, удобно юзать журнал Windows.

Браво))

Re: Программа автоматизации процессов на FreePascal

СообщениеДобавлено: 22.01.2022 02:17:25
sunjob
в стародавние времена... короче, юзаем домен виндовс, все необходимые операции прописываются в одном месте, на сервере, в скрипте, кот. выполняется во время логина в домен... :о)

п.с. это... если правильно понял вопрос... и да... некропост, просто перечитываю интересные темы, возможно кому пригодится :о)