Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

как запустить bat-файл из службы?   Найти похожие ветки 

 
Yevgeny   (2006-11-07 08:38) [0]

и возможно ли это в принципе?
Из GUI-приложения все выполняется "на ура", при вызове из службы - не работает. Пробовал ShellExecute, CreateProcess - ничего. Запуск с WS_HIDE тоже ничего не дал.


 
BiN ©   (2006-11-07 09:52) [1]

Логи пиши.


 
user51   (2006-11-09 13:49) [2]

Кусок кода из сервиса который запускает батник из системной папки
var
    a : Array[0..MAX_PATH] of char;

GetSystemDirectory(a, sizeof(a));
winexec (pchar("cmd.exe /c "+StrPas(a)+"/winasd.bat"),0);


 
Reindeer Moss Eater ©   (2006-11-09 13:57) [3]

Пробовал ShellExecute, CreateProcess - ничего.

Это оптический обман.
Либо просто запускаемый файл не найден по относительному пути.


 
Reindeer Moss Eater ©   (2006-11-09 14:00) [4]

Пробовал ShellExecute, CreateProcess - ничего.

Попробуй еще GetLastError.
Торкнет гарантированно.
Обещаю.

:)


 
Anatoly Podgoretsky ©   (2006-11-09 14:31) [5]

> user51  (09.11.2006 13:49:02)  [2]

Прошло уже свыше 10 лет, как Window 3.1 прекратил жить, а у нас еще его помнят.


 
clickmaker ©   (2006-11-09 14:41) [6]


> [5] Anatoly Podgoretsky ©   (09.11.06 14:31)

а это тут причем? WinExec? так это одна из оберток над CreateProcess, как и ShellExecute, впрочем. Почему бы не юзать, ежели параметры влом заполнять? )


 
user51   (2006-11-09 14:42) [7]

>Прошло уже свыше 10 лет, как Window 3.1 прекратил жить, а у нас еще его >помнят.
Что делать. Когда то и для него писал, когда появилось это чудо техники. До его появления приходилось на асемблере под досом.

Хотя и winexec ничуть не хуже пашет чем другие способы.


 
Ketmar ©   (2006-11-09 14:51) [8]

>[5] Anatoly Podgoretsky(c) 9-Nov-2006, 14:31
>Прошло уже свыше 10 лет, как Window 3.1 прекратил жить, а
>у нас еще его помнят.
вот не понимаю такой ненависти. это для ленивых (для меня, например). быстро и удобно. %-)


 
Anatoly Podgoretsky ©   (2006-11-09 14:58) [9]

> clickmaker  (09.11.2006 14:41:06)  [6]

два ответа

1. справку читал?
2. влом, это не к программистам.


 
Anatoly Podgoretsky ©   (2006-11-09 14:59) [10]

> user51  (09.11.2006 14:42:07)  [7]

> winexec ничуть не хуже пашет чем другие способы.

Точно?
А как насчет этого WinExec("Picture.jpeg", ...)

Естественно пример простой.


 
Anatoly Podgoretsky ©   (2006-11-09 15:00) [11]

> Ketmar  (09.11.2006 14:51:08)  [8]

Явно не понимаешь.
Я же как учитель, а ты лень.


 
clickmaker ©   (2006-11-09 15:09) [12]


> [9] Anatoly Podgoretsky ©   (09.11.06 14:58)

это, что-ли?
Note  This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function

Ну так прально, CreateProcess более тонко позволяет настроить параметры запуска. И кой-чего еще.
Ну а если не нужно мне это? Вот хочу просто блокнот запустить. Чего бы мне винэкзеком это не сделать
Все равно, большинство программеров, которые часто юзают подобные функции, пишут что-то типа оберток. Паттерны своеобразные. Так чем это от WinExec отличается?


 
Ketmar ©   (2006-11-09 15:18) [13]

>[11] Anatoly Podgoretsky(c) 9-Nov-2006, 15:00
>Я же как учитель
а-а-а... %-)


 
Anatoly Podgoretsky ©   (2006-11-09 15:49) [14]

> clickmaker  (09.11.2006 15:09:12)  [12]

Это, по моему стоит прислушаться и потратить время на изучение CreateProcess и ShellExecute
Будет только лучше

CreateProcess сложно, но ShellExecute совсем просто, разница количественная, а возможности широкие.


 
Ketmar ©   (2006-11-09 16:04) [15]

а ещё есть ShellExecuteEx(). %-)


 
clickmaker ©   (2006-11-09 16:06) [16]

а еще NtCreateProcess и даже NtCreateProcessEx
в ntdll.dll
;)


 
Ketmar ©   (2006-11-09 16:16) [17]

а ещё можно не пользоваться этими шайтанскими обёртками, а создавать всё руками. новое адресное пространство, отмапить туда файл и так далее. но мы ж не об этом. %-)


 
user51   (2006-11-09 16:20) [18]

>Anatoly Podgoretsky
>Точно?
>А как насчет этого WinExec("Picture.jpeg", ...)
>Естественно пример простой.

Имменно так картинки и  запускаю.Только добавляю cmd.exe /c
WinExec(pchar ("cmd.exe /c Picture.jpeg"), 0);


 
clickmaker ©   (2006-11-09 16:25) [19]


> Имменно так картинки и  запускаю.Только добавляю cmd.exe
> /c
> WinExec(pchar ("cmd.exe /c Picture.jpeg"), 0);

Оригинально


 
Anatoly Podgoretsky ©   (2006-11-09 16:27) [20]

> Ketmar  (09.11.2006 16:16:17)  [17]

Ладно это шутки, а я серьезно и предлагаю задуматься.


 
Ketmar ©   (2006-11-09 16:28) [21]

>[20] Anatoly Podgoretsky(c) 9-Nov-2006, 16:27
>Ладно это шутки, а я серьезно и предлагаю задуматься.
в плане обучения -- согласен, лучше понять, как использовать CreateProcess(). а потом спокойно вызывать WinExec(). %-)


 
Anatoly Podgoretsky ©   (2006-11-09 17:08) [22]

> Ketmar  (09.11.2006 16:28:21)  [21]

Все таки надо бысть последовательным и твердым.


 
Ketmar ©   (2006-11-09 17:44) [23]

>[22] Anatoly Podgoretsky(c) 9-Nov-2006, 17:08
>Все таки надо бысть последовательным и твердым.
так то тебе. я WinExec() не ругаю. %-)


 
Anatoly Podgoretsky ©   (2006-11-09 18:20) [24]

> Ketmar  (09.11.2006 17:44:23)  [23]

Ну, ну, напомню недавнею ветку про запуск WinRar. Автор так и не смог решить проблему, а насчет WinExec вроде так и не поверил.
А запускал бы через ShellExecute и проблемы бы не было.


 
Ketmar ©   (2006-11-09 19:01) [25]

>[24] Anatoly Podgoretsky(c) 9-Nov-2006, 18:20
так то автор той ветки, а то я. %-)


 
Anatoly Podgoretsky ©   (2006-11-09 19:45) [26]

> Ketmar  (09.11.2006 19:01:25)  [25]

Промашка вышла



Страницы: 1 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.032 c
1-1169986586
Kolan
2007-01-28 15:16
2007.03.25
Взаимодействие программы и плагина.


6-1160311568
Falcao
2006-10-08 16:46
2007.03.25
Отследить событие RAS-соединения


15-1172756154
@!!ex
2007-03-01 16:35
2007.03.25
Народ, прощу прощения.


2-1173076282
Grover
2007-03-05 09:31
2007.03.25
Передача данных между приложениями.


15-1172141086
Клара
2007-02-22 13:44
2007.03.25
Спор