Форум: "WinAPI";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Вниз
как запустить 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.043 c