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

Тема в разделе "Как сделать...", создана пользователем KORLEONE, 17 июн 2012.

  1. KORLEONE

    KORLEONE Писатель

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

    1) Авторизация - ввод логина и пароля в программе
    2) Управление - включение и выключение пунктов программы
    3) Вывод на сайт Инфы полезности работы (Логи)
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    991
    Симпатии:
    267
    Если программа поддерживает 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';
     
     
    ?>
    Дальше нужно название программы и документация на нее. Если самопис, то нужен программер, который допишет нужные функции.
     
  3. KMiNT21

    KMiNT21 Создатель

    Регистр.:
    28 апр 2012
    Сообщения:
    20
    Симпатии:
    4
    Пользуясь вызовом обычных WinAPI из php можно сделать очень многое и с обычной программой.

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

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

    KORLEONE Писатель

    Регистр.:
    22 мар 2012
    Сообщения:
    1
    Симпатии:
    0
    Хм... спасибо за информацию, но эти способы подойдут только к нормальным и серьезным программам а не к тому кустарному самопалу.
    Тогда у меня такой вопрос, можно ли использовать другой, более шаманский и с грубый способ?

    Сайт - личный кабинет - скрипт ( скрипт будет подключаться к серверу, и управлять программой с помощью клацанья по своим установленным координатам )
     
  5. KMiNT21

    KMiNT21 Создатель

    Регистр.:
    28 апр 2012
    Сообщения:
    20
    Симпатии:
    4
    Что клацать по координатам, что передавать клавиши - сути это не меняет. Только с клавиатурой надежнее обычно.
    Это реально будет самый простой и кустарный вариант.

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

    А саму программу точно нельзя модифицировать? Добавить передачу параметров через командную строку было бы проще. :)
     
  6. KORLEONE

    KORLEONE Писатель

    Регистр.:
    22 мар 2012
    Сообщения:
    1
    Симпатии:
    0
    Можно модифицировать, но тогда теряется смысл всего. Да и обновлять программу каждый раз самому не есть Гуд.
    Тогда уж было бы легче наделать юзеров на сервере и давать доступ к удаленному подключению =)
     
  7. KMiNT21

    KMiNT21 Создатель

    Регистр.:
    28 апр 2012
    Сообщения:
    20
    Симпатии:
    4
    А если разработчика 1 раз попросить добавить поддержку параметров командной строки?
     
  8. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    to TC: Есть отличная программка, называется Перейти по ссылке, очень удобная штука, когда нужно работать с окнами через WinAPI, помогает собрать дополнительную информацию о приложении, перед начало разработки. Берешь значит эту утилиту, и с ее помощью пробуешь управлять своей программкой, если все получается, то берешь документацию по WinAPI и начинаешь реализовывать нужную последовательность действий, но уже на php.

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