Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2012, 23:51   #1
ivanso
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 10
Вопрос Запустить программу как сервис.

Всем доброго времени суток.
Код:
AnsiString svc_name = "my_app_as_service", prog_path = Application->ExeName/*+ "\" \\arguments\""*/;
bool interact = true;
 
TStringList *file = new TStringList();
file->Add("choice \/N \/T 3 \/C 7 \/D 7 > NULL");
file->Add("sc create " + svc_name + " binpath= \"" + prog_path + "\" type= own");
if(interact) { file->Strings[1] += " type= interact"; }
file->Add("sc start " + svc_name);
file->Add("pause");
file->SaveToFile("my_batch.bat", TEncoding::ANSI);
delete file;
 
ShellExecute( NULL, L"open", ( ExtractFilePath(Application->ExeName) + L"my_batch.bat" ).c_str(),
    NULL, NULL, SW_SHOWDEFAULT );
Application->Terminate();
так я создаю батник который создаёт сервис и запускает его.
Но проблема в том что старнуть я его немогу даже в ручную,
ошибка 1053:Служба не ответила на запрос своевременно
Так вот вопросы:
1. Как запустить мой сервис ?
2. И как запустить батник с правами одминистратора ?
ivanso вне форума Ответить с цитированием
Старый 31.08.2012, 10:30   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

1. Батник сервис создать не может, может его только зарегистрировать. Вы точно уверены, что это сервис а не обычное приложение?

2. Для запука как администратор воспользуйтесь командой runas из того же батника. Хмм, правда это потребует ввод пароля... Либо ищите утилиту psexec от System Internals - там пароль можно прописывать в командной строке.
waleri вне форума Ответить с цитированием
Старый 31.08.2012, 12:15   #3
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

1. Ни как, потому как у Вас не сервис а пакетный файл Ms-DOS. Напишите маленькую программку-сервис запускающую необходимый пакетный файл.
2. Используйте PsExec, AdmiLink или аналоги.
astecenko вне форума Ответить с цитированием
Старый 31.08.2012, 15:03   #4
ivanso
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 10
По умолчанию

Дело в том что мне нужно запустить екзешник и дальше 2 варианта
1. как сервис
2. чтобы в процессах моей проги небыло видно.
Что нибуть можно зделать?
ivanso вне форума Ответить с цитированием
Старый 31.08.2012, 15:08   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

1. Перепешите вашу прогу как сервис
2. Забудьте
waleri вне форума Ответить с цитированием
Старый 04.09.2012, 16:48   #6
ivanso
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
1. Перепешите вашу прогу как сервис
Я не знаю как писать сервис.
Цитата:
2. Забудьте
По тому что мне не помогут или потому что в виндовс нт это невозможно?
ivanso вне форума Ответить с цитированием
Старый 04.09.2012, 17:04   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Я не знаю как писать сервис.
И чо? гугл -> c++ windows service выдаст кучу материалов.

Цитата:
По тому что мне не помогут или потому что в виндовс нт это невозможно?
Потому что:
1. Нафик не нужно
2. Очень плохо переносимо
3. Антивирусы не любят
4. Если прога прячется из процессов -> скорее всего вирус или зловред.
5. И да, расписано это уже тоже.
p51x вне форума Ответить с цитированием
Старый 04.09.2012, 17:31   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ТС, сервисы тоже есть в списке процессов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.09.2012, 17:52   #9
ivanso
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ТС, сервисы тоже есть в списке процессов.
Да. только уже написано что пользователь система
ivanso вне форума Ответить с цитированием
Старый 04.09.2012, 17:57   #10
ivanso
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Потому что:
1. Нафик не нужно
2. Очень плохо переносимо
3. Антивирусы не любят
4. Если прога прячется из процессов -> скорее всего вирус или зловред.
5. И да, расписано это уже тоже.
А понятно, вы думаете что я пишу вирус.
Я могу вам рассказать суть своей программы:
У программы есть база примерно вида:
Цитата:
Вопрос1@@@ответ1
Вопрос2@@@ответ2
Вопрос3@@@ответ3
Вопрос4@@@ответ4
Есть такая тестирующая система moodle я думою многие знакомы с ней.
так вот запускае прогу выделяем мышкой вопрос заносим его каким либо образом в буфер обмена(тоесть копируем) и на некоторое время в уголку экрана получаем ответ из базы данных.
Я никогда не проевлял интерес к вирусам или какимто программам-шутка, по моему это совсем не смешно играть на чужих нервах.

Последний раз редактировалось ivanso; 04.09.2012 в 17:59.
ivanso вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить программу Assemblerru Общие вопросы C/C++ 6 23.11.2010 19:34
Как запустить программу? egordark Общие вопросы .NET 4 18.11.2008 18:17
как запустить программу? GothicMet Помощь студентам 3 04.10.2008 18:07
Как запустить программу Vadik(R) Паскаль, Turbo Pascal, PascalABC.NET 1 10.03.2008 16:04