如何在不同的程式之間提供和傳遞輸入?

如何在不同的程式之間提供和傳遞輸入?

有很多單獨的、有用的程式沒有原始碼,其中一些可以完美地相互整合!唯一的問題是我不知道如何讓不同的程式在 Windows 7 中相互互動。

我了解 C++/C#/XAML;了解如何使用命令列將啟動參數傳遞給程序,以及如何製作批次檔... 但是,一旦程式運行,如何以非手動方式控制它們?

我還知道如何處理 Windows 輸入,例如滑鼠移動或單擊,但這只允許與作業系統直接交互,而不允許與當時打開的特定程式交互。
我希望能夠在做其他事情的同時將輸入傳遞給各個程式。


這是我試圖解決的一個範例問題:

我有一個程序,我稱之為“會員擷取器”,提取我網站會員的聯絡資訊;儘管該程式只能透過其 GUI 進行控制;並且尚不具備匯出資料的能力。(因此,每個訊息,例如電子郵件、電話號碼等,都必須是逐一複製到剪貼板,然後貼到新的 “微軟Excel”文件).

一旦資訊被複製並以有組織的方式保存,我需要將該數據逐一導入到多個新的“聯絡方式「由」生成通用聯絡人管理器” 的延伸 “Google Chrome 網頁瀏覽器”

  • 這一切都需要透過某種腳本自動完成,當我正在處理其他事情時,該腳本可以在後台運行。

如何做呢?


我想我需要的是多個虛擬剪貼簿......但還有什麼呢?

答案1

如果您可以手動完成,則可以使用巨集軟體輕鬆自動化。我選擇的武器是自動熱鍵, 具體來說自動熱鍵_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++
}

相關內容