![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
Доброго времени! Подскажите, в чем проблемка. Не shellexecute отрабатывает некоррктно(ошибок нет, просто не происходит копирование, как будто параметры xcopy не передаются), вот код:
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Что такое "CoilManager_QUALITY_REP_*.pdf" ?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
ShellExecute из программы отрабатывает корректно, а из службы не хочет нормально работать!!!
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Используйте CreateProcess вместо ShellExecute.
Линк |
|||
|
||||
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
Благодар, за ответ! Вы мне очень помогли! Буду переделывать.
|
|||
|
||||
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
Переделал, но проблема не исчезла, возможно служба перекрывает кислород моей процедуре! Вот код:
|
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
хм, возможно службе прав не хватает, чтобы шариться по сети...
-------------------- There are always someone smarter than you... |
|||
|
||||
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
Нет, я даже notepad запускал с параметрами, тоже ничего. Но это может объяснить: нужно lpDesktop поставить. Процесс я отслеживал - он запускается, но ничего не делает!!!
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Ну, то что "ничего" - это ничего не значит. Либо ошибка, либо блокнот запустился, но на десктопе сервисов (т.е. процесс notepad есть, но не виден). Продолжим тем, что CreateProcess - это конечно, хорошо, но для его использования служба должна быть интерактивной, т.е. при ее создании нужно указывать
Посему лучшим вариантом для создания из сервиса процесса на активном десктопе будет комбинация сервис+десктопное приложение, которые будут общаться между собой любым из методов IPC (сообщения отметаются сразу - SendMessage и иже с ними не работают между разными десктопами, оконными станциями и сессиями). Если же такой возможности нет, то может спасти CreateProcessAsUser (код сейчас поищу у себя в закромах). |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
несколько неправильно написал - служба должна быть интерактивной, если запускаемый процесс должен взаимодействовать с пользователем. При запуске через CreateProcessAsUser интерактивность необязательна. Afair. Нашел файл (вернее, несколько), писал давно, так что... не пинать за неразборчивый почерк и лишние телодвижения Это сообщение отредактировал(а) kami - 5.11.2009, 01:06 Присоединённый файл ( Кол-во скачиваний: 8 )
ExecuteOnSession.zip 8,48 Kb |
|||
|
||||
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
Вот при таком коде xcopy видна в процессах на секунду, зетем опять вылетает(естественно своих функций не выполняет):
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
А ты пробовал запускать xcopy непосредственно из системы с твоими параметрами?
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Откуда куда копируем-то? Диск случайно не сетевой? Если да, то откуда же ему взяться в контексте службы?
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| m1nder |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
Да, конечно я пробовал. Все работает!
Так как мне его туда воткнуть? |
||||
|
|||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Можно через net use:
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
А нафига службе сетевой диск? Копируйте прямо по сетевому пути.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
На сервере, где будет крутиться служба смонтирован сетевой диск и на него собственно нужно скопировать. Вы не подскажете как грамотно скопировать по сети? Пробовал через CopyFile, прописывал локальный 127.0.0.1 - работает или, но если удаленный - не работает!
|
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
А почему копируешь именно через командную строку? Копируй "своими силами". Есть же функции и процедуры из модуля WinApi и других модулей.
Добавлено через 6 минут и 26 секунд я вот так запускаю архивацию rar`ом через командную строку, всё работает, смотри отличия
Добавлено через 7 минут и 10 секунд Но у меня не служба. И я не знаю, используют ли пользователи сетевые пути/диски. |
||||
|
|||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Ну так копируйте на путь, с которого смонтирован диск! Т.е. если Q: смонтирован с \\server-1\Data\Share, то вместо копирования в Q:\, копируйте в \\server-1\Data\Share\ В чём проблема? Логин/пароль нужен или что? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| m1nder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 23.9.2009 Где: Нижний Новгород Репутация: нет Всего: нет |
to Akella: как раз из-за службы у меня и не получается! Но твой вариант я еще не пробовал, попробую.
не копирует(пробовал через CopyFile)! правда логин и пароль не указывал при копировании, но я монтировал сетевой диск с логином и паролем, потом только копировал, в чем тогда отличия от прямого копирования? Буду еще по всякому пробовать! Всем огромное спасибо! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Поле каких либо операций типа CopyFile можно использовать такой код для получения текста ошибки:
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
И как вы полагаете, это будет работать? Используйте тогда WNetAddConnection2. В службе? Добавлено через 10 минут и 30 секунд Предупреждая дальнейшие вопросы: Do Googling. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| sCreator |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 20.8.2009 Где: Московская област ь Репутация: 2 Всего: 5 |
А от кого запущена служба?
Приличное время назад сталкивался с аналогичной проблемой, только наоборот, копировал из локальной сети на комп. В результате, если правильно помню, выяснилось, что сервисы запускаемые с системной учетной записью (System), не имеют доступа к сетевым ресурсам. Запуск сервиса с учетной записью администратора, прописаннного в сетевой политике решил проблему. Копировал встроенными функциями. Попробуйте через оснастку "Службы" запустить например под своим логином ( если в командной строке работает копирование) |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Для этого есть специальная учётка NT AUTHORITY\NetworkService (Сетевые службы). -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
| sCreator |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 20.8.2009 Где: Московская област ь Репутация: 2 Всего: 5 |
||||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Да, и можно ещё создать свой журнал.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |