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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2010, 10:33   #1
Sti.k
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 14
По умолчанию Вопрос по ShellExecute

Всем здрасти.

Вопрос таков. Есть служба работающая от пользователя SYSTEM. В ней есть запуск какого нить файла с помощью ShellExecute:

if ShellExecute(h, 'open', 'd:\w.txt', nil, nil, SW_SHOWNORMAL) < 32 then
FileLog(ErrorLogFileName, 'Косяк');

Проблема в том что процесс notepad.exe создается и в диспетчере он виден, но окна не появляется. И ошибок от ShellExecute нет.

PS: Есть подозрения что нужно h нужно указать что то более конкретное а не 0 как у меня.

Последний раз редактировалось Sti.k; 14.05.2010 в 10:48. Причина: Добавление
Sti.k вне форума Ответить с цитированием
Старый 14.05.2010, 11:03   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

да вроде всё нормально
Код:
ShellExecute(handle, 'open', 'd:\w.txt', nil, nil, SW_SHOWNORMAL)
SERG1980 вне форума Ответить с цитированием
Старый 14.05.2010, 11:06   #3
Sti.k
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 14
По умолчанию

Из обычной проги с формой и запущеной от имени админа этот код работает нормально. А у меня служба, которая работает от имени SYSTEM.

Служба создана как Файл -> Новый -> Сервис-Приложение.

Последний раз редактировалось Sti.k; 14.05.2010 в 11:09. Причина: Добавление
Sti.k вне форума Ответить с цитированием
Старый 14.05.2010, 11:11   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Разрешить службе взаимодействие с рабочим столом.



Но есть ограничения
Цитата:
Interactive - сервис может взаимодействовать с интерфейсом пользователя: может выводить на консоль окна и принимать ввод от пользователя (так называемые "интерактивные" службы). Не рекомендуется устанавливать в True. Более того, в Windows Vista интерактивные службы запрещены по умолчанию. Интерактивный процесс может быть запущен только из-под учётной записи LocalSystem (при установке свойства в True автоматически сбрасываются свойства ServiceStartName и Password и наоборот).
пыщь
JTG вне форума Ответить с цитированием
Старый 14.05.2010, 11:17   #5
Sti.k
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 14
По умолчанию

Работает. Но теперь такой вопрос.
Как бы эту галочку програмно поставить перед установкой или запуском службы?
Sti.k вне форума Ответить с цитированием
Старый 14.05.2010, 11:22   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Interactive := True;
пыщь
JTG вне форума Ответить с цитированием
Старый 14.05.2010, 11:25   #7
Sti.k
Пользователь
 
Регистрация: 14.05.2010
Сообщений: 14
По умолчанию

Спасибо. Вопрос исчерпан, можно закрывать.
Sti.k вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ShellExecute Fakov Общие вопросы Delphi 13 18.11.2022 16:47
Вопрос по ShellExecute SANIOK_AV Общие вопросы Delphi 6 17.04.2009 12:10
Вопрос по ShellExecute. Vi_russ Общие вопросы Delphi 1 08.12.2008 12:11
Проблема с Mediaplayer'ом и вопрос про ShellExecute Шани Компоненты Delphi 2 22.07.2008 18:57
ShellExecute Volkogriz Общие вопросы Delphi 4 31.10.2007 13:33