Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 321

/ вопрос решён /

Доброго времени суток, уважаемые эксперты!
...Перерыл весь инет уже, последняя надежда на Вас

Есть программа, которая работает невидимо для пользователей (в процессах конечно видится) У программы много задач, одна из которых это показывать окно сообщений пользователю. (Чтобы небыло флема хочу сразу сказать что прога админская а не вирус)

Программа должна работать всегда. Для этого я написал дополнительный сервис Стартер, который бы проверял существование программы и если ее нет, то запускал. Здесь все просто.

НО программа, запущенная через сервис, не может отображать сообщения, пока в настройках самого сервиса не будет выставлено:
"Разрешить взаимодействие с рабочим столом"

КАК установить это "Разрешить взаимодействие с рабочим столом" ПРООГРАММНО???

или какой еще есть подход отслеживания постоянной работы приложения.

Спасибо.

П.С. буду очень признателен, если не будет однозначных ответов типа читай MSDN ;)

neon Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: neon (статус: Посетитель)
Вопрос отправлен: 26 мая 2011, 06:36
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Какой нахрен MSDN, когда в дельфовом хэлпе всё написано?
Глянь свойство TService.Interactive: Boolean.

Цитата:


Indicates whether the service is interactive with the Windows desktop.

Delphi syntax:

property Interactive: Boolean;

C++ syntax:

__property bool Interactive = {read=FInteractive, write=SetInteractive, default=0};

Description

Interactive indicates whether the service can interact with the Windows desktop. Interactive only has an effect when ServiceType is stWin32. For more information about creating interactive NT services, see the Microsoft Help.

Ну как? Оно, нет?

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 26 мая 2011, 08:15


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 27 мая 2011, 06:32; участников в обсуждении: 5.
Вадим К

Вадим К (статус: Академик), 26 мая 2011, 10:28 [#1]:

У Вас есть доступ к исходниками программы? или нет?
Галочка "подтверждения прочтения" - вселенское зло.
bugmenot

bugmenot (статус: 3-ий класс), 26 мая 2011, 10:46 [#2]:

В винде 6.0 и выше всё равно это игнорируется
виконання програми розпочинається з того самого мiсця, де призупинилося.

nar

nar (статус: Посетитель), 26 мая 2011, 11:57 [#3]:

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

neon (статус: Посетитель), 26 мая 2011, 13:37 [#4]:

"Вадим К У Вас есть доступ к исходниками программы? или нет?"

конечно есть... моя же


" nar а если программу запустить как службу, с автозапускам..."
Я же говорю, что я пускаю программу через службу с автозапуском.
Все что запущено через службу не может работать с визуальностью пока не поставить галочку...

Вот и не понятно как быть? Либо эту галку программно поставить
либо какой другой способ придумать
neon

neon (статус: Посетитель), 26 мая 2011, 13:41 [#5]:

min@y™
не все так просто )))

property Interactive: Boolean;

Что ты пишешь не работает, это я первым делом поробовал. Interactive:=True системой игнорируется
У меня XP SP3
Вадим К

Вадим К (статус: Академик), 26 мая 2011, 13:49 [#6]:

я последний раз, когда писал службу, то помню прямо в инспекторе объектов выставил и все работало.

Но что бы оно работало хорошо - нужно писать по правильному - делается ещё одно приложение, которое в автозагрузку ставится. А с службой взаимодействует посредством tcp или pipe.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 26 мая 2011, 14:03 [#7]:

Цитата (neon):

Что ты пишешь не работает, это я первым делом поробовал. Interactive:=True системой игнорируется У меня XP SP3

Не из-за этого ли?

Цитата:


Interactive only has an effect when ServiceType is stWin32.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
neon

neon (статус: Посетитель), 26 мая 2011, 20:55 [#8]:

... со службами не все так просто ;)
min@y™ насторожил меня своей уверенностью)))

Решил еще раз все проверить, чтобы наверняка...
Удалил (/uninstall) службу и снова инсталлировал - все побежало!
Конечно же в коде службы было прописано:
Interactive:=True
ServiceType stWin32 и так установлен по дефолту

Почему же не работало до этого?!
...Дело оказалось вот в чем...
При первом запуске я запустил службу для теста. А потом, остановив службу, я ее доработал скомпилил и запустил занова ))) А нужно было обязательно сделать UNINSTALL
Именно поэтому новые свойства службы и не применились!

Вопрос решен!

Всем откликнувшимся Большое спасибо

26 мая 2011, 20:56: Статус вопроса изменён на решённый (изменил автор вопроса — neon)

min@y™

min@y™ (статус: Доктор наук), 26 мая 2011, 22:22 [#9]:

Цитата (neon):

Всем откликнувшимся Большое спасибо

И это всё? А где оценки?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
neon

neon (статус: Посетитель), 27 мая 2011, 06:32 [#10]:

min@y™ +1
;)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:54
Выполнено за 0.03 сек.