Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   служба запускающая .exe требуется помощь... (http://forum.oszone.net/showthread.php?t=260774)

St.z 17-05-2013 17:32 2151660

служба запускающая .exe требуется помощь...
 
Добрый день,
столкнулся с проблемой создания службы для вин7 и ХР, идея такая есть софтина которая собирает данные с ПК и отправляет отчёт на некий фтп, требуется от неё чтоб она запускалась при каждой загрузке винды и через энное количество времени отправляла свой отчёт. Задача в принципе простая тут и VBS бы подошёл или батничек, но у службы ряд плюсов, например запуск без логона да и работает она как не крути стабильней (батник закрыть могут пока выполняется (хотя тоже можно обойти) и самое главное служба от имени системы выполняется, что решает ряд проблем с правами. Так родилась идея создания службы. В силу отсутствия углублённых знаний в программировании попробовал просто конвертировать bat в exe. И ура получилось, ставится как служба и даже стартует софтину которая собирает данные с ПК. Но если попытаться перезапустить службу в ручную винда выдаёт ошибку 1053 "служба не ответила на запрос своевременно." И самое главное периодичность отправления 10 минут а задумывалось 5 часов (значит bat конвертированый в ехе коректно не выполнялся). Тут я обратился к мануалам по созданию служб средствами microsoft visual studio и delphi 7. Нашёл всё про то как создать службу и вроде б даже разобрался, но не нашёл примеров как можно прикрутить этой службе .ехе и задать цикл его перезапуска по времени. Вот решил обратиться к специалистам, может статейку подкинете или пример приведёте. Заранее спасибо.

deviance 17-05-2013 18:36 2151701

St.z,
Цитата:

Цитата St.z
не нашёл примеров как можно прикрутить этой службе .ехе и задать цикл его перезапуска по времени. »

Лично мной вопрос не понят полностью. Отвечаю наугад: *.exe файл можно запустить функцией system(), а задержку во времени можно реализовать с помощью Sleep() или SetTimer()

yurfed 17-05-2013 18:38 2151703

Цитата:

Цитата St.z
есть софтина которая собирает данные »

Может хватит жевать и скажите название программы о которой говорите?
Цитата:

Цитата St.z
например запуск без логона да и работает она как не крути стабильней »

Кто вам такое сказал?
Цитата:

Цитата St.z
как можно прикрутить этой службе .ехе и задать цикл его перезапуска по времени. »

Планировщик задач ещё никто не отменял.

Iska 17-05-2013 19:06 2151716

Чем не устроил стандартный планировщик задач — не понимаю.

St.z 18-05-2013 01:54 2151859

службы виндовс запускаются до того как пользователь залогинится в систему, вроде как общеизвестно, имя программы 10strike, прогрмма инвенторизации.

Delirium 18-05-2013 01:58 2151860

Цитата:

Цитата St.z
службы виндовс запускаются до того как пользователь залогинится в систему »

Стандартный планировщик(вроде как тоже общеизвестно :)) тоже умеет работать до входа в систему. И под нужными правами. И по таймеру.

St.z 18-05-2013 02:01 2151861

вместо толкового совета получил пару отговорок, чтож и на том спасибо...

Iska 18-05-2013 06:54 2151886

Цитата:

Цитата St.z
вместо толкового совета получил пару отговорок, чтож и на том спасибо... »

Пока Вы, вместо вменяемого объяснения, почему Вам не подходит Планировщик задач, будете упражнять свою иронию, толку не будет.


St.z 20-05-2013 05:41 2152822

Iska, Если мне память не изменяет на ХР и на вин7 планировщики отличаются, если сделать задачу под вин7, и разослать её на пару сотен ПК (плохо ещё то что планировщик может по каким либо причинам не работать самодельные сборки сделанные некоторыми предшественниками) будет ли оно работать одинаково корректно и под семёркой и под ХР? Задача заключается в том что установку этого самого ПО нужно сделать максимально простой, двойной клик по файлу и не больше того, потому что уровень подготовки у людей за РМ разный а работать должно везде. Изначально я делал SFX архив который распаковывался и под учёткой админа ставил 10 страйк, службу я делал как описал в первом посте, просто конвертировал bat в exe (программа bat to exe converter) служба ставилась нормально и запускала 10 страйк но не каждые пять часов (это было прописано в bat файле который конвертировал в exe) а каждые 10 минут.

Iska 20-05-2013 09:26 2152872

St.z, память Вам не изменяет. Используйте, например, синтаксис команды «schtasks.exe», одинаковый для тех и других ОС: Schtasks.exe (Windows).

schtasks /create site:microsoft.com - Поиск в Google


Время: 18:03.

Время: 18:03.
© OSzone.net 2001-