Nikkorfed
@Nikkorfed
20 лет, веб-разработчик из Екатеринбурга.

Как автоматизировать работу с приложением на ПК?

Здравствуйте! Подскажите пожалуйста, можно ли на ПК с ОС Windows как-то автоматизировать работу с одним из приложений?

Суть в том, что обычно пользователь запускает приложение, вводит какие-либо данные, и смотрит его выдачу вручную. Можно как-то сделать, чтобы всё это выполнялось автоматически, а результат сохранялся в текстовый файл? Что-то вроде автоматических нажатий в нужное место, ввода данных, и сканирования итогового текста. И желательно, чтобы это выполнялось по команде из сети, и отвечало туда же.

Даже примерно не представляю, какие инструменты надо использовать для этого. Буду благодарен, если подскажете хотя бы в какую сторону копать. Заранее спасибо!
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 5
@Drno
Cmd /powershell скрипт... если программа умеет в консоль...
Ответ написан
mindtester
@mindtester Куратор тега Windows
https://youtu.be/UtO6HIp1908?list=RDUtO6HIp1908
https://www.autoitscript.com/site/

да и много аналогов. гуглить слова автоматизация, боты, скриптование приложений и тд
Ответ написан
@frank_sider
Системный программист
Для эмуляции нажатий на клавиатуру и считывания текста используй WinAPI (писать придется на С) - другого способа нет. Единственная сложность - это то, что такие программы антивирусы распознают как вредоносные. Если нужно управлять приблудой по сети тоже ничего сложного в этом нет - сокеты в помощь. Если есть исходники программы, которой нужно управлять, то лучше её допилить, а не заниматься изобретанием костылей.
Ответ написан
@med1um
Можно с помощью JavaScript.
Например для работы с Excel сохрани этот код как filename.js и запусти:

var vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;

var L_Welcome_MsgBox_Message_Text    = "Пример вывода свойств сервера сценариев Windows в Microsoft Excel.";
var L_Welcome_MsgBox_Title_Text      = "Пример сервера сценариев Windows";
Welcome();

//////////////////////////////////////////////////////////////////////////////////
//
// Пример Excel
//
var objXL = WScript.CreateObject("Excel.Application");

objXL.Visible = true;

objXL.WorkBooks.Add;

objXL.Columns(1).ColumnWidth = 20;
objXL.Columns(2).ColumnWidth = 30;
objXL.Columns(3).ColumnWidth = 40;

objXL.Cells(1, 1).Value = "Свойство";
objXL.Cells(1, 2).Value = "Значение";
objXL.Cells(1, 3).Value = "Описание";

objXL.Range("A1:C1").Select;
objXL.Selection.Font.Bold = true;
objXL.Selection.Interior.ColorIndex = 1;
objXL.Selection.Interior.Pattern = 1; //xlSolid
objXL.Selection.Font.ColorIndex = 2;

objXL.Columns("B:B").Select;
objXL.Selection.HorizontalAlignment = -4131; // xlLeft

var intIndex = 2;

function Show(strName, strValue, strDesc) {
    objXL.Cells(intIndex, 1).Value = strName;
    objXL.Cells(intIndex, 2).Value = strValue;
    objXL.Cells(intIndex, 3).Value = strDesc;
    intIndex++;
    objXL.Cells(intIndex, 1).Select;
}

//
// Вывод свойств WScript
//
Show("Name",            WScript.Name,           "Имя приложения");
Show("Version",         WScript.Version,        "Версия приложения");
Show("FullName",        WScript.FullName,       "Контекст приложения: полное имя");
Show("Path",            WScript.Path,           "Контекст приложения: только путь");
Show("Interactive",     WScript.Interactive,    "Состояние режима взаимодействия");

//
// Вывод аргументов командной строки.
//
var colArgs = WScript.Arguments
Show("Arguments.Count", colArgs.length, "Число аргументов командной строки");

for (i = 0; i < colArgs.length; i++) {
    objXL.Cells(intIndex, 1).Value = "Arguments(" + i + ")";
    objXL.Cells(intIndex, 2).Value = colArgs(i);
    intIndex++;
    objXL.Cells(intIndex, 1).Select;
}

//////////////////////////////////////////////////////////////////////////////////
//
// Приветствие
//
function Welcome() {
    var WSHShell = WScript.CreateObject("WScript.Shell");
    var intDoIt;

    intDoIt =  WSHShell.Popup(L_Welcome_MsgBox_Message_Text,
                              0,
                              L_Welcome_MsgBox_Title_Text,
                              vbOKCancel + vbInformation );
    if (intDoIt == vbCancel) {
        WScript.Quit();
    }
}
Ответ написан
@antonwx
С нажатиями довольно просто: https://www.macrocreator.com/
А вот со сканированием текста уже не так однозначно. Тут либо делать скриншот и скармливать его чему-то вроде abbyy finereader, либо вычитывать из памяти программы, что тоже довольно геморно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
deeplay Новосибирск
от 150 000 ₽
IT Smart Finance Новосибирск
от 90 000 ₽
02 мар. 2021, в 18:19
1000 руб./в час
02 мар. 2021, в 18:16
50000 руб./за проект
02 мар. 2021, в 18:13
50000 руб./за проект