Управление программой

KORLEONE

Писатель
Регистрация
22 Мар 2012
Сообщения
1
Реакции
0
Добрый день товарищи =) У меня появилась некая задумка. Есть сервер на системе win2008r1 и есть программа.
Я умею командно запускать программу и.т.д но встала проблема, а возможно ли с помощью php управлять программой.

1) Авторизация - ввод логина и пароля в программе
2) Управление - включение и выключение пунктов программы
3) Вывод на сайт Инфы полезности работы (Логи)
 
Если программа поддерживает OLE или COM, то можно.
Например общение между 1С и excel
Код:
Excel    = Новый COMОбъект("Excel.Application");
        WB        = Excel.Workbooks.Open(ИсточникФайла);
        WS        = WB.Worksheets(1);//указываем номер листа - 1
        arr    = WS.UsedRange.Value;     
        WB.Close(0);
По аналогии можно из php обращаться

PHP:
<?php
 
 
    $xls = new COM("Excel.Application"); // Создаем новый COM-объект
    $xls->Application->Visible = 1;      // Заставляем его отобразиться
    $xls->Workbooks->Add();              // Добавляем новый документ
 
    $rangeValue = $xls->Range("A1");
    $rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный";
    $rangeValue = $xls->Range("A2");
    $rangeValue->Value = "Шрифт будет иметь высоту 12";
    $rangeValue = $xls->Range("A3");
    $rangeValue->Value = "Имя шрифта - Times New Roman";
 
    $range=$xls->Range("A1:J10");              // Определяем область ячеек
    $range->Select();                          // Выделяем ее
    $fontRange=$xls->Selection();              // Присваиваем переменной выделенную область
 
    // Далее задаем параметры форматирования текста в выделенной области
    $fontRange->Font->Bold = true;              // Жирный
    $fontRange->Font->Italic = true;            // Курсив
    $fontRange->Font->Underline = true;        // Подчеркнутый
    $fontRange->Font->Name = "Times New Roman"; // Имя шрифта
    $fontRange->Font->Size = 12;                // Размер шрифта
 
echo ' Ok';
 
 
?>

Дальше нужно название программы и документация на нее. Если самопис, то нужен программер, который допишет нужные функции.
 
Пользуясь вызовом обычных WinAPI из php можно сделать очень многое и с обычной программой.

Если та программа под windows написана качественно, и управлять ей без проблем можно с клавиатуры (т.е. переходы по меню, включение/выключение пунктов),
то это будет не сложно. Правда, надо помнить, что все это будет работать интерактивно. FindWindow, SendMessage и т.п..

Это будет работающий пользовательский сеанс, где нельзя будет ничего "клацать", т.е. как управление по Radmin. А вот касательно вывода результатов - тут, скорее всего, будет сложнее (как вариант - делать скриншоты).
 
Хм... спасибо за информацию, но эти способы подойдут только к нормальным и серьезным программам а не к тому кустарному самопалу.
Тогда у меня такой вопрос, можно ли использовать другой, более шаманский и с грубый способ?

Сайт - личный кабинет - скрипт ( скрипт будет подключаться к серверу, и управлять программой с помощью клацанья по своим установленным координатам )
 
Что клацать по координатам, что передавать клавиши - сути это не меняет. Только с клавиатурой надежнее обычно.
Это реально будет самый простой и кустарный вариант.

Сложнее/заморочистей - это уже OLE/COM взаимодействие или распознавание образов библиотеками типа OpenCV ( Для просмотра ссылки Войди или Зарегистрируйся ).

Я умею командно запускать программу

А саму программу точно нельзя модифицировать? Добавить передачу параметров через командную строку было бы проще. :)
 
Можно модифицировать, но тогда теряется смысл всего. Да и обновлять программу каждый раз самому не есть Гуд.
Тогда уж было бы легче наделать юзеров на сервере и давать доступ к удаленному подключению =)
 
to TC: Есть отличная программка, называется Для просмотра ссылки Войди или Зарегистрируйся, очень удобная штука, когда нужно работать с окнами через WinAPI, помогает собрать дополнительную информацию о приложении, перед начало разработки. Берешь значит эту утилиту, и с ее помощью пробуешь управлять своей программкой, если все получается, то берешь документацию по WinAPI и начинаешь реализовывать нужную последовательность действий, но уже на php.

to kmint21: Миша, не ожидал тебя здесь увидеть. :)
 
Назад
Сверху