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

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

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

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

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

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

За ранее спасибо. =)
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Facox, а что мешает запускать программы без запуска bat файла напрямую? Это же делается точно так же.
Плюс, плохим тоном будет запуск программ без какого-либо диагностического выхлопа. Ну и возможности их завершить.
Аватара пользователя
Facox
незнакомец
Сообщения: 3
Зарегистрирован: 03.02.2019 20:07:37

Сообщение Facox »

Проблему на данный момент решил через PowerShell. Теперь почему не удобно без бата - на рабочем столе придется создать десяток ярлыков в которые будет прописана программа и ключи ( как в случае 1С ), пользователи в силу возраста не желают начинать рабочий день с кликов всеех ярлыков, они желают войти в систему, которая сама все запустит. Скрытые программы, это когда не надо перегружать окнами запуска разных облачных дисков и пр.сервисов.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

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

а чем не угодили cmd-окна?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

zoltanleo, видимо, не хочет загромождать окнами монитор.
Facox, так ты Лансер делаешь или что? Кто тебе мешает выбрать конфигурацию прямо в запускающейся форме программы, если уж у тебя разные конфигурации? Примерно так, как выбирается тип проекта в самом Лазарусе. Потом настроишь конфигурации и пусть пользуются.
Аватара пользователя
Facox
незнакомец
Сообщения: 3
Зарегистрирован: 03.02.2019 20:07:37

Сообщение Facox »

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

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

Пишу я все geany, хочу быть ближе к коду, понимая что пишу.
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

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

Сообщение 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;
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

Хм... Стандартный планировщик Windows и экспорт/импорт задачи для простоты настройки n компьютеров с одинаковой конфигурацией?
Есть возможность запускать программы с параметрами, можно запускать софт при запуске системы...
А если нужно какое-то сложное логирование или реакция на проблемы, то Powershell + планировщик. Для логирования, кстати, удобно юзать журнал Windows.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

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

Браво))
Аватара пользователя
sunjob
постоялец
Сообщения: 176
Зарегистрирован: 12.01.2011 14:19:54

Сообщение sunjob »

в стародавние времена... короче, юзаем домен виндовс, все необходимые операции прописываются в одном месте, на сервере, в скрипте, кот. выполняется во время логина в домен... :о)

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