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

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

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

Сообщение Facox » 03.02.2019 21:29:11

Доброго времени го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, так и внесения строчки запуска в код программы.

За ранее спасибо. =)
Аватара пользователя
Facox
незнакомец
 
Сообщения: 3
Зарегистрирован: 03.02.2019 21:07:37

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

Сообщение Лекс Айрин » 03.02.2019 23:40:21

Facox, а что мешает запускать программы без запуска bat файла напрямую? Это же делается точно так же.
Плюс, плохим тоном будет запуск программ без какого-либо диагностического выхлопа. Ну и возможности их завершить.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение Facox » 04.02.2019 19:30:37

Проблему на данный момент решил через PowerShell. Теперь почему не удобно без бата - на рабочем столе придется создать десяток ярлыков в которые будет прописана программа и ключи ( как в случае 1С ), пользователи в силу возраста не желают начинать рабочий день с кликов всеех ярлыков, они желают войти в систему, которая сама все запустит. Скрытые программы, это когда не надо перегружать окнами запуска разных облачных дисков и пр.сервисов.
Аватара пользователя
Facox
незнакомец
 
Сообщения: 3
Зарегистрирован: 03.02.2019 21:07:37

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

Сообщение zoltanleo » 04.02.2019 20:30:53

Facox писал(а):часть отработает в фоновом режиме без запуска черных окон.

а чем не угодили cmd-окна?
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 308
Зарегистрирован: 17.10.2013 10:55:01

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

Сообщение Лекс Айрин » 04.02.2019 21:43:24

zoltanleo, видимо, не хочет загромождать окнами монитор.
Facox, так ты Лансер делаешь или что? Кто тебе мешает выбрать конфигурацию прямо в запускающейся форме программы, если уж у тебя разные конфигурации? Примерно так, как выбирается тип проекта в самом Лазарусе. Потом настроишь конфигурации и пусть пользуются.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение Facox » 09.02.2019 14:41:58

Лекс Айрин прав - мне, а вернее моим конечным пользователям, не нужны эти окна.

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

Пишу я все geany, хочу быть ближе к коду, понимая что пишу.
Аватара пользователя
Facox
незнакомец
 
Сообщения: 3
Зарегистрирован: 03.02.2019 21:07:37

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

Сообщение Cheb » 18.03.2019 21:21:49

В гугле забанили?
Первый же поиск по "TProcess hide console window" дал https://stackoverflow.com/questions/198 ... a-tprocess
, где приведено решение:
AProcess.Options := AProcess.Options + [poNoConsole];
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 726
Зарегистрирован: 06.06.2005 15:54:34

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

Сообщение Python » 23.03.2019 09:00:01

Кстати да, согласен, в лог информацию очень надо передавать. Вот за пару минуток набросал примерчик, его можно допилить:
Код: Выделить всё
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;
Python
новенький
 
Сообщения: 20
Зарегистрирован: 23.01.2018 21:50:17

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

Сообщение wofs » 23.03.2019 21:17:00

Хм... Стандартный планировщик Windows и экспорт/импорт задачи для простоты настройки n компьютеров с одинаковой конфигурацией?
Есть возможность запускать программы с параметрами, можно запускать софт при запуске системы...
А если нужно какое-то сложное логирование или реакция на проблемы, то Powershell + планировщик. Для логирования, кстати, удобно юзать журнал Windows.
Аватара пользователя
wofs
постоялец
 
Сообщения: 377
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru