Как передавать входные данные между отдельными программами?

Как передавать входные данные между отдельными программами?

Существует так много отдельных полезных программ, исходный код которых недоступен, но некоторые из них прекрасно интегрируются друг с другом!Единственная проблема в том, что я не знаю, как разрешить разным программам взаимодействовать друг с другом в Windows 7.

Я знаю C++/C#/XAML; понимаю, как использовать командную строку для передачи аргументов запуска программам и как создавать пакетные файлы... Но как можно управлять запущенными программами без ручного управления?

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


Вот пример проблемы, которую я пытаюсь решить:

У меня есть программа, которую я называю "Экстрактор членов", которая извлекает контактную информацию участников моего сайта; хотя программой можно управлять только через ее графический интерфейс; и пока не имеет возможности экспортировать данные. (поэтому каждый фрагмент информации, такой как адрес электронной почты, номер телефона и т. д., должен быть скопирован в буфер обмена по одному и вставлен в новый "Майкрософт Эксель"документ).

После того, как информация скопирована и сохранена в организованном виде, мне нужно импортировать эти данные по одному в несколько новых "Профили контактов"сгенерировано "Универсальный менеджер контактов"расширение «Веб-браузер Google Chrome»

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

Как это можно сделать?


Я бы предположил, что мне понадобится несколько виртуальных буферов обмена... но что еще?

решение1

Если вы можете сделать это вручную, вы можете легко автоматизировать это с помощью макропрограммного обеспечения. Мое оружие выбора -AutoHotkey, конкретноAutoHotkey_L.

Документация

Исходя из вашего примера, следующее будет полезно:

Например, логика вашего скрипта может выглядеть так*:
*Возможны незначительные ошибки, но суть вы уловили!

;Note: find Control and Window names using AutoIt3 Window Spy

Name := []
Email := []
;etc...

members = 100

while (members > 0)
{
    Clipboard = 
    ControlSend, MemberExtrControl, ^a^c, MemberExtrWindow
    ClipWait
    Name.Insert(Clipboard)
    
    Clipboard = 
    ControlSend, MemberExtrControl, Tab^a^c, MemberExtrWindow
    Clipwait
    Email.Insert(Clipboard)
    
    ;etc...

    members--   
}

index = 1

Loop % Names.MaxIndex()
{
    name := Name.Remove(index)
    email := Email.Remove(index)
    ;etc...
    
    ControlSend, ContactMgrControl, %name%, ContactMgrWindow
    ControlSend, ContactMgrControl, Tab%email%, ContactMgrWindow
    
    ;etc...
    
    index++
}

Связанный контент