Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
15-1172572853
Tema
2007-02-27 13:40
2007.03.25
Обработка нескольких XML


15-1172441059
Ломброзо
2007-02-26 01:04
2007.03.25
Философское


15-1172509165
Сергей_.
2007-02-26 19:59
2007.03.25
phpBB club


2-1172959193
San1
2007-03-04 00:59
2007.03.25
EConvertError


15-1172674025
Магедон
2007-02-28 17:47
2007.03.25
Вопрос о Skype





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский