Выполнить пакетный файл

Невский

Новичок
Выполнить пакетный файл

Можно ли в php выполнить пакетный файл примерно такого вида

start c:\Program Files\The Bat!\thebat.exe

ну и добавить к этой строке ряд параметров?
 

dimagolov

Новичок
Невский, ты когда усвоишь, что PHP на сервере и что бы он не запускал, посетитель сайта этого не увидит. У посетителя на компьютере работает броузер, который смотрит HTML стринички, подготовленные PHP. В них может быть JavaScript код, который никаких правов помимо своей странички не имеет и ничего сделать вне ее пределов не может.
 

Невский

Новичок
Сервер у меня, я сам посетитель, пишу для себя, например форму, которая будет создавать письмо в почтовой программе. Ворд можно запустить с помощью php, а можно ли другите программы? Если это можно сделать с помощью php и JavaScript, то подскажите пожалуйста как.
Передо мной стоит задача и я ищу наибольшее количество вариантов ее решения.
 

AmdY

Пью пиво
Команда форума
Невский
прежде чем что-то делать, нужно сразу
1. подумать
2. потом ещё подумать
3 затем почитать
5 затем подумать
6 и только после этого спрашивать.
иначе получаются глупые вопросы.
в данном случае ты пропустил шаги 2-5. вот почитал бы мануал, думалось юы легче. хинт, расширение твоего файла как раз указывает на название команды.
 

Невский

Новичок
Спасибо, мне нужна была подсказка, так как с этой частью php я не разбирался, а так как наиболее быстрый вариант в получени ответа это форумы (поиск на форумах), а потом уже мануал, действовал по этой схеме. К сожалению, некоторые рассуждают примерно так "если я этого не знаю, то этого и не может быть", выход есть всегда, его просто нужно искать. Я его нашел с помощью exec(); и пакетного файла (командной строки). Спасибо всем.
 

AmdY

Пью пиво
Команда форума
так уж самый быстрый ;)
http://tinyurl.com/dabs5j
форумы не для быстрого поиска простых вопросов, а для решения сложных вопросов, которые не удаётся решить самостоятельно.
 

Фанат

oncle terrible
Команда форума
невский, ты дебил.
если запускать екзек на сервере, то ты никому ничего не покажешь, как собирался.
а если ничего не покажешь, то никакой бат не нужен - послать письмо можно прямо из пхп.
 

Фанат

oncle terrible
Команда форума
ага.
Это для локальной сети, пользователь через форму вводит вводит адрес и имя файла
одна, конечно.

-~{}~ 26.03.09 00:13:

вопрос только, каким местом должен быть ушиблен юзер, чтобы вместо того, чтобы открыть бат, добавить в него файл, сделать превью и отправить его потом на все четыре стороны, запускать на собственном компе веб-сервер, через форму добавлять файл, который потом будет передан бату в екзек.
 

DiMA

php.spb.ru
Команда форума
Тафтан, если ты не умеешь управлять виндовыми приложениями (хакать окошки), нафига кого-то тупыми называть? Не какими-нибудь СОМами, а жестким эмулированием действий юзера.

Но, вот, есть решение и для тупого юзера, без программирования. Чтобы запустить софтину - exec с путем до софта. Начать письмать новое письмо (или любые другие действия) - нужно проиграть заранее записанный макрос, в данном случае Ctrl+N.

Для этого запускаем соотв. утилитку через exec с запуском такого макроса. Я юзаю Keybord Maniak (не для запуска Бата, а для хоткеев).

Программер в данном случае напишет прогу типа
keybd_event(VK_CTRL,VK_CTRL,1,0)
keybd_event(VK_N,VK_N,1,0)
keybd_event(VK_N,VK_N,3,0)
keybd_event(VK_CTRL,VK_CTRL,3,0)
А лучше сделать консольную утилитку, чтобы через параметр эмулировать набор с клавиатуры.

После открытия окошла можно заполнить КОМУ, Таб, Тему, Таб, сообщения и т.д.

Делов на 3 секунды, а обосрал ты бедного юзера на год .-)

Кстати, когда-то в пхп видел экспериментальное расширение для выполнения WinAPI функций. Т.о. можно запустить Бата, найти хендл окна и послать нажатия кнопок прямо в окошко .-) Возможно, команду keybd_event (эмулирование клавы) можно прямо из пхп юзать.
 

Невский

Новичок
Автор оригинала: *****
невский, ты дебил.
если запускать екзек на сервере, то ты никому ничего не покажешь, как собирался.
а если ничего не покажешь, то никакой бат не нужен - послать письмо можно прямо из пхп.
Практически все признаки логики дилетанта, не знающего php, но делающего вид, что знает.

Довожу до Вашего, скорее всего узкого кругозора, что решение поставленной задачи я нашел именно на форуме, именно с помощью php, именно через Бат и нужным для меня образом.
 

zerkms

TDD infected
Команда форума
Невский
а расскажи задачу в том виде, в котором она тебе требовалась. очень интересно.
 

Фанат

oncle terrible
Команда форума
DiMA
вспоминается анекдот "а теперь мы попробуем со всей этой херней взлететь" =)
я не сомневаюсь в том, что ты можешь решить вообще любую задачу. меня больше занимает вопрос "зачем".
 

dimagolov

Новичок
да ладно, радоваться надо. скоро пхп станет языком системного программирования :D
 

jonjonson

Охренеть
А чуваг вам тайну решения не выдаст, форумские лохи :-РЬ
Кто к нам с Нефским прийдёт, тот от балтики девятки погибнет! >-:{
 

Невский

Новичок
Автор оригинала: zerkms
Невский
а расскажи задачу в том виде, в котором она тебе требовалась. очень интересно.
Есть у меня бизнес, который в течении несколько лет приносит мне нормальный доход, вот в этом бизнесе у меня автоматизированы некоторые процессы с помощью php и автоматизаторов (xStarter иногда nnCron). Так как менеджеры рассылают (одна из обязанностей их) очень много информации заказчикам, а каждый файл к письму нужно брать из локальной сети с различных компьютеров, на это уходит некоторое время. Данный вид автоматизации просто ускорит подготовку каждого письма на 2-3 минуты, при отправке несколько десятков писем в день (несколькими менеджерами) можно сэкономить пару часов времени для другой работы. Так как база на CSV-файлах (этого достаточно), все скрипты написаны на php и чтобы улучшить велосипед стала задача немного ускорить подготовку и отправку писем, я еэтого добился. Спасибо всем кто помог.
 

DiMA

php.spb.ru
Команда форума
накопи деньжат, я решу ваши задачи по автоматизации и совместимости разных технологий .-)
 

Невский

Новичок
Что то деньжата не очень сильно держаться у меня :) Давай попробуем совместный интернет ресурс сделать?
 
Сверху