有很多單獨的、有用的程式沒有原始碼,其中一些可以完美地相互整合!唯一的問題是我不知道如何讓不同的程式在 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++
}