Альтернативный Форум

Альтернативный Форум (https://af.net.ru/index.php)
-   Технический (https://af.net.ru/forumdisplay.php?f=41)
-   -   Запуск консольных утилит в Windows в режиме background (https://af.net.ru/showthread.php?t=765)

Э_L_A_Y 11.08.2006 18:31

Запуск консольных утилит в Windows в режиме background
 
Другими словами. возможно ли отвязать утилиту от консоли. если да то как? Или должа быть поддержка работы в этом режиме в самой утилите? :)

zif 11.08.2006 20:33

давно хотел узнать а что-такое консоль, а то может я ее по другому называю

ChIlL 11.08.2006 21:22

нарно можно, наприсав самому интерпретатор команд и собственный интерфейс

DrWolf 11.08.2006 21:38

Цитата:

Сообщение от zif
давно хотел узнать а что-такое консоль, а то может я ее по другому называю

ну думаю ты называеш консоль командной строкой...

zif 12.08.2006 09:47

Цитата:

Сообщение от DrWolf
ну думаю ты называеш консоль командной строкой...

ты угадал, элей так зачем те это надо вроде бы там ничего не мешает

Э_L_A_Y 12.08.2006 10:18

Это надо. чтобы во время работы проги консольное окно не маячило на рабочем столе. а прога работала в фоновом режиме.

zif 12.08.2006 10:53

Цитата:

Сообщение от Э_L_A_Y
Это надо. чтобы во время работы проги консольное окно не маячило на рабочем столе. а прога работала в фоновом режиме.

такое я тоже узнавал,но никто не знает, если ты только прогу сворачивания не напиеш

Lexx 12.08.2006 14:28

Цитата:

Сообщение от Э_L_A_Y
Другими словами. возможно ли отвязать утилиту от консоли. если да то как? Или должа быть поддержка работы в этом режиме в самой утилите? :)

Скорее всего должна быть поддержка в самой утилите! Я когда-то писал оболочку для транслятора с ассемблера, так вот вызывая транслятор я передавал ему параметры из кода. А сама консоль транслятора не маячила на рабочем столе. Ты бы поконкретней описал ситуацию.

Э_L_A_Y 12.08.2006 14:57

Ну вобщем то да. есть утилиты. котоым при запуске назначаются флаги ее работы. в том чистле и флаги "отвяза" от консоли. чтобы консоль была свободна и сами проги работали в фоновом режиме.В Этой же проге задается только один параметр - параметр запуска. при закрытии окна соответственно прога завершает свою работу. ни хелпа. ни каких либо инструкций я не обнаружил. значит прога не поддерживает данный режим. Вот я и спросил может есть какие то команды в самой командной оболочке для этих нужд или ПО сторонних разработчиков.

ForumRoot 12.08.2006 16:59

Часом не 3proxy? ; )

Э_L_A_Y 12.08.2006 17:16

Нет :)

ForumRoot 12.08.2006 17:24

Интересный кстати вопрос.
Как вариант можно попробовать это приложение сделать службой.

Э_L_A_Y 12.08.2006 17:58

Мысль кстати

ForumRoot 15.08.2006 00:09

как успехи?

Э_L_A_Y 15.08.2006 00:14

Успехи как и ожидалось. тоже самое. что записать прогу в авторан. вываливается при запуске службы в консольное окно и все тут :(

alexander 15.08.2006 01:43

а на чём пробовал то?

Э_L_A_Y 15.08.2006 09:36

Всмысле на чем. на винде

alexander 15.08.2006 10:20

я имел ввиду на какой утилите

Mike 18.12.2006 00:18

Думаю - самый правильный подход - сделать программу службой сделать это не так трудно, как считается, для этого необходимо скачать определенный пакет утилит, называемый srvany. пакет состоит из двух утилит INSTSRV.EXE и SRVANY.EXE. И приложен к посту.
Для начала необходимо скопировать эти файлы в системную директорию %windir%/system32. Затем
необходимо запустить файл SRVANY.EXE из командной строки, используя следующий синтаксис: "Instsrv
ServiceName %windir%\srvany.exe", Где ServiceName - придуманное имя сервиса. Если всё сделано
правильно, то появится сообщение, подтверждающее успешное создание сервиса (The service was
successfuly added).

Теперь зайдите в Администрирование - Службы (Services). Находите только что созданную службу,
двойной клик вызывает свойства сервиса. На первой вкладке можно выбрать параметры запуска - Automatic
(автоматически при загрузке компьютера), Manual (Вручную) и Disabled (отключено). Для работы
созданного сервиса в отдельном окне необходимо отметить на второй вкладке (Вход в систему) пункт
Allow Service to Interact with Desktop (Разрешить взаимодействие с рабочим столом). Пока всё.

Следующим шагом является редактирование реестра. Запускаем редактор реестра Regedit. (Если не
знаете, как прочитайте здесь). Шагаем к ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\ и
находим имя сервиса здесь. Создаем раздел "Parameters" (без кавычек) и в этом разделе прописываем
путь к программе, которую мы хотим запустить, следующим образом: Строковой параметр: "Application"
значение - путь к программе (c:\ file.exe). ВСЁ. Ниже представлен отрывок из экспортированного файла
моего сервиса (Apox), который автоматически запускает одну из серий Масяни.


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\apox]
"Type"=dword:00000110
"Start"=dword:00000004
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6 e,00,64,00,6f,00,77,00,73,00,\
5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32 ,00,5c,00,73,00,72,00,76,\
00,61,00,6e,00,79,00,2e,00,65,00,78,00,65,00,00,00
"DisplayName"="apox"
"ObjectName"="LocalSystem"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\apox\parameters]
"Application"="C:\masyana.exe"

Запустить сервис, если он не отключен, можно несколькими способами, во-первых через командную
строку: Net Start ServiceName - где SеrviceName - имя Вашего сервиса. И другим способом -
непосредственно через апплет административной панели - службы.

Хорошо, сервис установлен, запущен, а как же его удалить ведь стандартным Delete не обойдешься.
Сначала сервис необходимо остановить: net stop ServiceName, затем опять же в коммандной строке
выполняем команду INSTSRV MyService remove.


После пары ошибок (не уследил за ковычками :) ) у менязаработла в бэкграунде программа, которая очень тяжело хотела так работать, в моём случаем мне нужно было создавать бэкапы БД на сервере без логона пользователя - всё прошло.


P.S. упс - не посмотрел на дату до предыдущего поста, который я удалил как не имеющий смысла :) разговор то оказывается давний, но может всё равно кому пригодится.


Часовой пояс GMT +3, время: 06:45.

Powered by vBulletin® Version 3.8.11 PL4;
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd;
Оператор обработки ПДн - ИП Алексеев А.С.;
ИНН: 333411310227; ОГРН: 307333419200050;
тел. +7 (4922) 49-42-22, legal@smalta.net