Как взаимодействовать с приложением программно

Быстрый указатель - Javascript интерпретируется построчно. Значение строки 1 выполняется перед строкой 2.

В вашем случае следующая строка:

document.getElementById('myForm').submit();

выполняется раньше:

$('#myForm').submit(function (e) {
    console.log('A');

    e.preventDefault();

    alert("a");

    $.post("<?php echo $url; ?>", {'data': formxml}, function (data) {
        // callback logic
    });
});

Таким образом, submit() срабатывает задолго до того, как ваш обработчик шанс быть связанным с формой.

Попробуйте поменять их местами. Следующий код работает:

<html>
<form id="myForm" action="<?php echo $url; ?>" method="post">

</form>
<script type="text/javascript">
$(document).ready (function () {
    $('#myForm').submit(function (e) {
        console.log('A');

        e.preventDefault();

        alert("a");

        $.post("<?php echo $url; ?>", {'data': formxml}, function (data) {
            // callback logic
        });
    });

    $('#myForm').submit();
});
</script>
</html>

Дайте мне знать, если это не тот результат, который вы ожидали.

9
задан Mike K 5 January 2009 в 18:51
поделиться

7 ответов

Вы смогли автоматизировать его со сценарием AutoIt. Это - простой язык сценариев, который скрывает некоторые сложности отправки сообщений к окнам и средствам управления.

10
ответ дан 4 December 2019 в 09:38
поделиться

Я думаю, FindWindow и SendMessage являются функциями, которые Вы хотите использовать в целом.

3
ответ дан 4 December 2019 в 09:38
поделиться

Различные приложения позволяют Вам управлять ими программно по-разному. Два самых общих подхода:

1) Некоторые приложения выставляют параметры командной строки. Пример:

c:\> someapp.exe arg1 arg2

Можно назвать такие приложения из программы C++ с вызовом как это:

System("C:\\>someapp.exe arg1 arg2");

2) Другие приложения могут выставить намного более мощные, объектно-ориентированные API. Например, Microsoft Excel позволяет Вам программировать его при помощи самого Приложения как объект в Вашей программе C#:

Excel.Application excelApp = new Excel.App()

После того как у Вас есть объект приложения, можно назвать методы на нем для управления его поведением. Можно, например, открыть новый файл Excel с последующим вызовом как это:

excelApp.Workbooks.Open("\\Somefile.xls", ...);

Для любого приложения сторонних производителей Вы пытаетесь управлять, Вы оказываетесь перед необходимостью читать его документацию относительно того, как оно позволяет Вам, чтобы сделать это. Информация о том, как программировать Excel, например, может быть найдена здесь.

6
ответ дан 4 December 2019 в 09:38
поделиться

Или если Вы хотите быть еще большим количеством "hacky", начните читать память программ и введите данные непосредственно.:P

Но это может быть очень сложно, и часто работа привычки вообще из-за того, как программа использует память.

0
ответ дан 4 December 2019 в 09:38
поделиться

Это может быть очень очень трудно, если приложение не разработано, чтобы взаимодействоваться с. Необходимо будет отправить дразнившие события (для притворства, как будто мышь делала определенные вещи, например). Один способ сделать, который должен записать драйвер мыши, который не соединяется с реальной мышью. Но, поскольку я говорю, это зависит от приложения. Приложения с большими базами пользователей часто имеют API, чтобы позволить программное взаимодействие или иметь встроенную поддержку сценариев (таким образом, можно отчасти подать заявку использовать код вместо этого).

3
ответ дан 4 December 2019 в 09:38
поделиться

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

0
ответ дан 4 December 2019 в 09:38
поделиться

Я однажды сделал что-то вроде этого, где приложением Windows управляло веб-приложение. Я использовал много Win32 API для этого. Если Ваше приложение является подобным, то ищите дистанционный контроллер Winamp с открытым исходным кодом для начинающих.

0
ответ дан 4 December 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: